Changelog
V0.2.0
Note
Please use Nuclei N100 SDK with Nuclei Studio 2025.02, get it from https://nucleisys.com/download.php#tools
This version of N100 SDK only support latest n100/ns100 cpu core.
This is release version 0.2.0
of N100 SDK.
Application
Add an empty project for n100 sdk
Add an macro
TIMER_RELOAD
to controldemo_timer
timer interrupt reload via TIME or TIMECMPreset cycle and instret when start to do benchmark
NMSIS
Add
__set_rv_instret
and__set_rv_cycle
API for N100 NMSIS CoreFix
SysTick_Config
API by usingSysTick_Reload
instead of directly set MTIMECMP register to avoid easy 24b overflowRemove
IRQC_SetPendingIRQ
andIRQC_ClearPendingIRQ
API due to N100 only support level interruptUpdate
CSR_MCAUSE_Type/CSR_MSTATUS_Type/CSR_MSTATUSH_Type
union member
SoC
Merge newlib stub code files into one stub code file
Add
CODESIZE
make variable to reduce application code sizeModify startup code for both gcc and iar startup code and linker script to support new startup and exception rules, see Usage
Now only
sram
linker script is provided for reference, you can always modify startup and linker script code to match your real cpu designFix
delay_1ms
API may work wrongly due to TIME register overflowN100 evalsoc external interrupt number changed from 30 to 16
N100 exception entry alignment changed to 4bytes to match n100 design
Build System
Add
nuclei_llvm
andterapines
toolchain supported, required Nuclei Studio 2025.02Fix IAR prebuild projects build issues
V0.1.0
This is release version 0.1.0
of N100 SDK.
Note
Please use Nuclei N100 SDK with Nuclei Studio 2024.06, get it from https://nucleisys.com/download.php#tools
Nuclei N100 SDK is modified based on Nuclei SDK 0.5.0 release, and will not merge back to Nuclei SDK in the future.
This SDK is not compatible with Nuclei SDK for 200/300/600/900/1000 series, if you want SDK for these series, please switch to master or develop branch, see https://doc.nucleisys.com/nuclei_sdk/
Application
Added baremetal/freertos/ucosii/rtthread examples.
Baremetal examples contains helloworld, demo_irqc, demo_timer, demo_extirq, lowpower cases to show cpu interrupt and timer usage.
Baremetal examples also contains benchmark examples such as coremark, dhrystone, whetstone which can demostrate the performance of Nuclei CPU.
RTOS examples contains different samples to show how to use FreeRTOS, UCOSII and RT-Thread on Nuclei N100.
Build System
Support Nuclei 100 series RISC-V CPU Cores.
Support Nuclei RISC-V GCC toolchain, IAR Compiler and Terapines ZCC toolchain.
NMSIS
NMSIS in N100 SDK is not compatible with standard NMSIS, this is modified to match Nuclei 100 series CPU.
Most of the APIs in this modified NMSIS are similar to standard NMSIS, but some APIs have been changed or added.
Please refer to the header files in
NMSIS/Core/Include
directory for more details.
SoC
Only Nuclei Evaluation SoC for 100 series is supported by this SDK.
If you want to port to your own SoC, you modify based on this
evalsoc
implementation.This SDK will also be generated by 100 series
nuclei_gen
tool, please take a look at theevalsoc.memory
,openocd_evalsoc.cfg
,cpufeature.h
andcpufeature.mk
, for IAR projects, you need to also check the linker script inside it.Only
sram
andflashxip
download modes are supported in this SDK, and the linker script is quite different to normal Nuclei SDK, please take care, especially the vector table and exception entry address are RTL configurable which means when your RTL configuration is different to ourevalsoc
, you need to modify the linker script to match your rtl configuration.IAR support is also added in this SDK, and linker and startup/exception code are different from GCC, please take care when you port to your own SoC.
RTOS
FreeRTOS/UCOSII/RT-Thread port for 100 series CPU are added in this SDK.
IAR compiler port and gcc/clang port are also supported by these RTOSes.
IDE support
Nuclei Studio 2024.06 will support this Nuclei N100 SDK via NPK solution just like Nuclei SDK.
IAR Workbench support is also done in this SDK, please take a try with it in
ideprojects/iar
folder.
Documentation
The documentation is modified based on Nuclei SDK.
We have go through the whole documentation and modified it to match Nuclei N100 SDK, maybe some of them are not perfect, please feel free to correct me if you find any mistakes.