Тайлбар байхгүй

Huaqi Fang dad247817d misc: bump n100 sdk to 0.3.0-dev version 3 сар өмнө
.ci 790f6ba494 ci: limit ftp mirror parallel to 2 4 жил өмнө
.github b75c12cbee ci: bump github ci to use 2025.10 tools 3 сар өмнө
Build 41fea48a20 Build: add zicsr extension to clang options for llvm 19 11 сар өмнө
Components 19b0b268b7 Components: create a empty directory for middleware components 4 жил өмнө
NMSIS fdf87c5634 NMSIS/Core: update CSR_MCAUSE_Type/CSR_MSTATUS_Type/CSR_MSTATUSH_Type union 1 жил өмнө
OS 8169524844 OS: bugfix on stack sp alignment for rtos porting 5 сар өмнө
SoC 6c7f21edcc SoC/evalsoc: Fix gdb not correct when toolchain choose Terapines ZCC 3 сар өмнө
application 2af17817fe misc: Fix wrong npk dependency rules for n100 sdk 6 сар өмнө
doc dad247817d misc: bump n100 sdk to 0.3.0-dev version 3 сар өмнө
ideprojects 332557739b misc: Fix typos reported by felixonmars 1 жил өмнө
test 11fc37a6f2 test/core: remove removed irq related API test cases 1 жил өмнө
tools 4d620fce3e tools: add filter cases via SDK_SUPPORT_ARCH environment variable in nsdk_cli 6 сар өмнө
.astylerc b50ffa74f3 env: Add add --add-one-line-braces for astyle 4 жил өмнө
.clang-format 48ca0ea6f6 misc: Initial commit of Nuclei SDK for Nuclei N/NX processors 6 жил өмнө
.editorconfig 0bfaef018a env: Fix wrong editorconfig format 6 жил өмнө
.gitignore d8020edb42 env: ignore iar related generated files 2 жил өмнө
.gitlab-ci.yml b7cd113b83 ci: no need to install apt and pip package now 3 сар өмнө
LICENSE 48ca0ea6f6 misc: Initial commit of Nuclei SDK for Nuclei N/NX processors 6 жил өмнө
Makefile 36fece17b8 build: only support gnu gcc for n100 cpu 2 жил өмнө
NMSIS_VERSION 3526920301 misc: bump NMSIS Core for N100 to version 1.1.0 1 жил өмнө
README.md 15ecdc8a68 doc: optimize n100 sdk README.md 9 сар өмнө
SConscript 54e5326e28 misc: update changelog and start 0.2.1 n100-sdk development 7 сар өмнө
npk.yml dad247817d misc: bump n100 sdk to 0.3.0-dev version 3 сар өмнө
package.json dad247817d misc: bump n100 sdk to 0.3.0-dev version 3 сар өмнө
setup.bat 3ffdffe61d misc: update setup.* scripts 1 жил өмнө
setup.ps1 3ffdffe61d misc: update setup.* scripts 1 жил өмнө
setup.sh 3ffdffe61d misc: update setup.* scripts 1 жил өмнө

README.md

N100 Software Development Kit

[!NOTE] If you want to develop and run program on Nuclei 200/300/600/900/1000 series RISC-V CPU, please switch to develop or master branch.

This N100 SDK is modified based on the Nuclei SDK framework, NMSIS is also a modified version to support limited feature provided by Nuclei 100 series processor.

We also integrated some RTOSes into Nuclei SDK, which are FreeRTOS, UCOSII and RTThread, you can easily find it in the OS folder.

Nuclei RISC-V GCC/Clang, IAR compiler and Terapines ZCC are supported in Nuclei N100 SDK.

Quick Startup

Wanner to take a try with Nuclei N100 SDK for Nuclei 100 series CPU, click Quick Start with Nuclei N100 SDK to start up.

Wanner to take a try with Nuclei SDK for Nuclei 200/300/600/900/1000 series CPU, click Quick Start with Nuclei SDK to start up.

Requirements

  • Ubuntu Linux >=20.04 LTS or Windows >=10
  • Nuclei Studio >= 2025.02
    • Nuclei Studio can support import Nuclei SDK NPK package to provide IDE project wizard create/build/debug.
    • Nuclei Studio also contains same release of Nuclei Toolchain/QEMU/OpenOCD, so just download IDE is enough.

How to use

  1. Create and modify your own setup config, see comments in setup.bat or setup.sh
    • For Linux, create setup_config.sh in $NUCLEI_SDK_ROOT.
    • For Windows, create setup_config.bat in %NUCLEI_SDK_ROOT%.
  2. Source the environment script right in NUCLEI_SDK_ROOT
    • For Linux: source setup.sh
    • For Windows: setup.bat
  3. Build and run application.

    • Note: By default, the SoC and Board is set to evalsoc and nuclei_fpga_eval, if you don't pass any SOC and BOARD variable in Make command, it will use the default SoC and Board.
    • Assume that you will run this application -> application/baremetal/helloworld/.
    • cd application/baremetal/helloworld/
    • you can run make help to show help message.
    • We provided different Nuclei Core configurations(CORE=) we supported, see Build/Makefile.core.
      • such as CORE=n100m
    • We support several download modes(DOWNLOAD=) for different applications.
      • sram: Program will be downloaded into ram and run directly in ram, program lost when poweroff
    • For example, if you want to build your application for CORE=n100m DOWNLOAD=sram, you can easily run this command:

      make CORE=n100m DOWNLOAD=sram all
      
    • If you want to upload your application for CORE=n100m DOWNLOAD=sram, you can easily run this command:

      make CORE=n100m DOWNLOAD=sram upload
      
    • (Option 1)If you want to debug your application for CORE=n100m DOWNLOAD=sram:

      • First open a new terminal in the same application folder and run: make CORE=n100m DOWNLOAD=sram run_openocd
      • Then run this command make CORE=n100m DOWNLOAD=sram run_gdb in the existing terminal, then you can debug it using gdb, if you want to load your program, you need to type load to achieve it.
      • Notice: Since version 0.2.4, you can also pass extra GDB_PORT=<portno>, to change to use new gdb port other than default 3333, for example, make CORE=n100m DOWNLOAD=sram GDB_PORT=3344 run_openocd and make CORE=n100m DOWNLOAD=sram GDB_PORT=3344 run_gdb
    • (Option 2)If you want to debug your application for CORE=n100m DOWNLOAD=sram:

      make CORE=n100m DOWNLOAD=sram debug
      
    • If you want to use UART terminal tool to view the UART message, you can choose screen or minicom in Linux, teraterm in Windows, the default UART baudrate we use is 115200.

    Knowledge book

    • N100 SDK only support Nuclei RISC-V Toolchain >= 2025.02, and toolchain prefix is riscv64-unknown-elf-.

    • N100 SDK is modified based on Nuclei SDK, so the user experience are similiar to Nuclei SDK, and directory structure is also similar, if you have experience in using Nuclei SDK, it will be easy to use N100 SDK.