0.3.5
版本发布时间: 2022-01-25 15:27:45
Nuclei-Software/nuclei-sdk最新发布版本:0.6.0(2024-07-01 10:42:53)
This is release version 0.3.5
of Nuclei SDK.
!!!Caution!!!
- This version introduce a lot of new featues, and required Nuclei GNU Toolchain 2022.01
- If you want to import as NPK zip package into Nuclei Studio, 2022.01 version is required.
- If you want to have smaller code size for Nuclei RISC-V 32bit processors, please define
STDCLIB=libncrt_small
in your application Makefile, or change STDCLIB defined inBuild/Makefile.base
to make it available globally.
-
Application
-
DSP_ENABLE and VECTOR_ENABLE are deprecated now in demo_dsp application, please use ARCH_EXT to replace it.
ARCH_EXT=p
equal toDSP_ENABLE=ON
,ARCH_EXT=v
equal toVECTOR_ENABLE=ON
. -
demo_dsp
application no need to set include and libraries for NMSIS DSP library, just useNMSIS_LIB = nmsis_dsp
to select NMSIS DSP library and set include directory. -
Update coremark compile options for different Nuclei cpu series, currently 900 series options and 200/300/600 series options are provided, and can be selected by
CPU_SERIES
.-
CPU_SERIES=900
: the compiler options for Nuclei 900 series will be selected. - otherwise, the compiler options for Nuclei 200/300/600 series will be selected, which is by default for 300
-
-
Fix
whetstone
application compiling issue when compiled with v extension present
-
-
SoC
- Provide better Nuclei Studio NPK Feature, required Nuclei Studio 2022.01 version.
- Provide correct gd32vf103.svd, the previous one content is messed up.
-
putchar/getchar
newlib stub are required to be implemented for RT-Thread porting - Added support for newly introduced nuclei c runtime library(libncrt).
- Rearrange stub function folder for gd32vf103 and demosoc to support different c runtime library.
- A lot changes happened in link scripts under SoC folder
- heap section is added for libncrt, size controlled by
__HEAP_SIZE
- heap start and end ld symbols are
__heap_start
and__heap_end
- stub function
sbrk
now using new heap start and end ld symbols - tdata/tbss section is added for for libncrt, thread local storage supported
- heap section is added for libncrt, size controlled by
- For flash download mode, vector table are now placed in
.vtable
section now instead of.vtable_ilm
,VECTOR_TABLE_REMAPPED
macro is still required in DOWNLOAD=flash mode - flash program algo used in openocd for demosoc changed to nuspi, see changes in openocd_demosoc.cfg
-
NMSIS
- Update NMSIS Core/DSP/NN to version 1.0.3, see NMSIS 1.0.3 Changelog
- Update prebuilt NMSIS DSP/NN library to version 1.0.3 built by risc-v gcc 10.2
- For NMSIS Core 1.0.3, no need to define
__RISCV_FEATURE_DSP
and__RISCV_FEATURE_VECTOR
forriscv_math.h
now, it is now auto-defined inriscv_math_types.h
-
OS
- Change RT-Thread porting to support libncrt and newlibc, mainly using putchar and getchar
-
Build System
- Introduce STDCLIB makefile variable to support different c library.
- NEWLIB and PFLOAT variable is deprecated in this release.
- Introduce ARCH_EXT makefile variable to support b/p/v extension.
- Only link
-lstdc++
library when using STDCLIB=newlib_xxx -
RISCV_CMODEL variable is added to choose code model, medlow or medany can be chosen,
default is
medlow
for RV32 otherwisemedany
for RV64. -
RISCV_TUNE variable is added to select riscv tune model, for Nuclei CPU, we added
nuclei-200-series
,nuclei-300-series
,nuclei-600-series
andnuclei-900-series
in Nuclei RISC-V GNU toolchain >= 2021.12
-
Contribution
- Update contribution guide due to runtime library choices provided now.
-
NPK
-
newlibsel configuration variable changed to stdclib, and is not compatiable.
- newlibsel=normal change to stdclib=newlib_full
- newlibsel=nano_with_printfloat changed to stdclib=newlib_small
- newlibsel=nano changed to stdclib=newlib_nano
-
stdclib has more options, please see
SoC/demosoc/Common/npk.yml
-
nuclei_archext is added as new configuration variable, see
SoC/demosoc/Common/npk.yml
-
-
tools
- generate benchmark values in csv files when running nsdk_bench.py or nsdk_execute.py
- fix xl_spike processes not really killed in linux environment when running nsdk_bench.py
For detailed changes, please check commit histories since 0.3.4 release.