FPGALover e96d8140f8 | ||
---|---|---|
docs | ||
rtl | ||
sim | ||
sw | ||
CHANGELOG.md | ||
CITATION.cff | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
do.py |
README.md
neorv32
neorv32 with Makefiles compatible with MSYS2 64 on Windows(ONLY ASSEMBLY) and Linux(ASSEMBLY, C, and CPP).
Windows Installation
You must download the latest RISCV precompiled binaries for your platform from: https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/
in this case the architecture x64 for windows binaries(https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v13.2.0-2/xpack-riscv-none-elf-gcc-13.2.0-2-darwin-x64.tar.gz), then extract these under the folder C:\riscv_precompiled
-
clone or download this repository on your windows machine.
$ git clone https://gitea.squirrelnut.synology.me:5001/FPGALover/neorv32
-
download and install MSYS2(msys2-x86_64-20240113.exe) --> https://www.msys2.org/
-
once MSYS2 is installed, run MSYS2, and run the command(pacman -S mingw-w64-ucrt-x86_64-gcc)
$ pacman -S mingw-w64-ucrt-x86_64-gcc
-
Select ALL dependencies by pressing Enter and select Y[yes].
resolving dependencies... looking for conflicting packages... Packages (15) mingw-w64-ucrt-x86_64-binutils-2.41-2 mingw-w64-ucrt-x86_64-crt-git-11.0.0.r216.gffe883434-1 mingw-w64-ucrt-x86_64-gcc-libs-13.2.0-2 mingw-w64-ucrt-x86_64-gmp-6.3.0-2 mingw-w64-ucrt-x86_64-headers-git-11.0.0.r216.gffe883434-1 mingw-w64-ucrt-x86_64-isl-0.26-1 mingw-w64-ucrt-x86_64-libiconv-1.17-3 mingw-w64-ucrt-x86_64-libwinpthread-git-11.0.0.r216.gffe883434-1 mingw-w64-ucrt-x86_64-mpc-1.3.1-2 mingw-w64-ucrt-x86_64-mpfr-4.2.1-2 mingw-w64-ucrt-x86_64-windows-default-manifest-6.4-4 mingw-w64-ucrt-x86_64-winpthreads-git-11.0.0.r216.gffe883434-1 mingw-w64-ucrt-x86_64-zlib-1.3-1 mingw-w64-ucrt-x86_64-zstd-1.5.5-1 mingw-w64-ucrt-x86_64-gcc-13.2.0-2 Total Download Size: 49.38 MiB Total Installed Size: 418.82 MiB :: Proceed with installation? [Y/n] [... downloading and installation continues ...]
-
after the installation is completed, add the Path "C:\msys64\ucrt64\bin" under the enviroments variable on Windows.
-
open a cmd and run the command (gcc --version)
$ gcc --version gcc.exe (Rev2, Built by MSYS2 project) 13.2.0
-
go to the folder C:\msys64\ucrt64\bin make a copy of the file mingw32-make.exe and name it make.exe
-
go to the directory where you cloned or donwloaded this repository to the directory neorv32\sw\example\demo_blink_led_asm
$ cd neorv32\sw\example\demo_blink_led_asm
-
run the command make all (make sure all antivirus are disabled)
$ make all "Memory utilization:" text data bss dec hex filename 432 0 0 432 1b0 main.elf "Generationg APP BIN" "OK - APP BIN" "Generationg APP IMG VHD" "OK - APP IMG VHD" "Generationg RAW HEX" "OK - RAW HEX" "Generationg RAW BIN" "OK - RAW BIN" "Generationg BOOT IMG VHD" "OK - BOOT IMG VHD" "Memories Generated"
-
list the generated files and you will see
$ ls -l -rw-rw-rw- 1 adriz 0 6781 2024-02-24 01:45 main.asm -rw-rw-rw- 1 adriz 0 432 2024-02-24 01:45 main.bin -rw-rw-rw- 1 adriz 0 8708 2024-02-24 01:45 main.elf -rw-rw-rw- 1 adriz 0 5456 2024-02-23 16:14 main.S -rw-rw-rw- 1 adriz 0 2764 2024-02-24 01:45 main.S.o -rw-rw-rw- 1 adriz 0 274 2024-02-24 01:16 makefile -rw-rw-rw- 1 adriz 0 1882 2024-02-24 01:45 neorv32_application_image.vhd -rw-rw-rw- 1 adriz 0 1878 2024-02-24 01:45 neorv32_bootloader_image.vhd -rw-rw-rw- 1 adriz 0 444 2024-02-24 01:45 neorv32_exe.bin -rw-rw-rw- 1 adriz 0 432 2024-02-24 01:45 neorv32_raw_exe.bin -rw-rw-rw- 1 adriz 0 972 2024-02-24 01:45 neorv32_raw_exe.hex
-
you have been able to compiled assembly for the RISCV on windows.
Linux Installation
-
Open shell and run:
sudo apt-get update sudo apt-get install autoconf automake autotools-dev curl python3 python3-pip libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev ninja-build git cmake libglib2.0-dev git clone https://github.com/riscv/riscv-gnu-toolchain cd riscv-gnu-toolchain/ mkdir build/ cd build sudo mkdir /opt/riscv32im sudo chown $USER /opt/riscv32im ./configure --with-arch=rv32im --prefix=/opt/riscv32im make -j$(nproc)
-
clone this repository.
-
go to the directory where you cloned or donwloaded this repository to the directory neorv32\sw\example\demo_blink_led_asm
$ cd neorv32\sw\example\demo_blink_led
-
run the command make all
$ make all Memory utilization: text data bss dec hex filename 1012 0 0 1012 3f4 main.elf Executable (neorv32_exe.bin) size in bytes: 1024 Installing application image to ../../../rtl/core/neorv32_application_image.vhd
-
list the generated files and you will see
$ ls -l -rw-r--r-- 1 adrizcorp adrizcorp 18160 Feb 24 01:54 main.asm -rw-r--r-- 1 adrizcorp adrizcorp 1012 Feb 24 01:54 main.bin -rw-r--r-- 1 adrizcorp adrizcorp 4314 Feb 23 15:08 main.c -rw-r--r-- 1 adrizcorp adrizcorp 7696 Feb 24 01:54 main.c.o -rwxr-xr-x 1 adrizcorp adrizcorp 42856 Feb 24 01:54 main.elf -rw-r--r-- 1 adrizcorp adrizcorp 141 Feb 23 15:08 makefile -rw-r--r-- 1 adrizcorp adrizcorp 3704 Feb 24 01:54 neorv32_application_image.vhd -rw-r--r-- 1 adrizcorp adrizcorp 1024 Feb 24 01:54 neorv32_exe.bin -rw-r--r-- 1 adrizcorp adrizcorp 1012 Feb 24 01:54 neorv32_raw_exe.bin -rw-r--r-- 1 adrizcorp adrizcorp 2277 Feb 24 01:54 neorv32_raw_exe.hex