Releases: Nuclei-Software/nuclei-sdk
Nuclei embedded Software Development Kit, Release 0.3.6
This is release version 0.3.6
of Nuclei SDK.
-
Application
- update coremark benchmark options for n900/nx900, which can provide better score number
- benchmark value will be print in float even printf with float is not supported in c library
- baremetal applications will exit with an return value in main
-
NMSIS
- add
__CCM_PRESENT
macro in NMSIS-Core, if CCM hardware unit is present in your CPU,
__CCM_PRESENT
macro need to be set to 1 in<Device>.h
- Fixed mtvec related api comment in
core_feature_eclic.h
- Add safely write mtime/mtimecmp register for 32bit risc-v processor
- rearrage #include header files for all NMSIS Core header files
- removed some not good #pragma gcc diagnostic lines in
nmsis_gcc.h
- add
-
Build
- Add experimental
run_xlspike
andrun_qemu
make target support SIMU=xlspike
orSIMU=qemu
passed in make will auto exit xlspike/qemu if main function returned
- Add experimental
-
SoC
- Add xlspike/qemu auto-exit support for gd32vf103 and demosoc, required next version after Nuclei QEMU 2022.01
For detailed changes, please check commit histories since 0.3.5 release.
Nuclei embedded Software Development Kit, Release 0.3.5
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 byCPU_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 ismedlow
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.
Nuclei embedded Software Development Kit, Release 0.3.4
V0.3.4
This is release version 0.3.4
of Nuclei SDK.
-
CI
- Fix gitlab ci fail during install required software
-
Build System
- build asm with -x assembler-with-cpp
-
Tools
- Fix
tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu.json
description issue for dsp enabled build configs - Generate html report when run
tools/scripts/nsdk_cli/nsdk_bench.py
- nsdk_builder.py: modify qemu select cpu args,change
p
to,ext=p
- Fix
-
SoC
- For demosoc, if you choose ilm and ddr download mode, then the data section's LMA is equal to VMA now, and there
will be no data copy for data section, bss section still need to set to zero. - For demosoc, if you choose ilm and ddr download mode, The rodata section are now also placed in data section.
- For demosoc, if you choose ilm and ddr download mode, then the data section's LMA is equal to VMA now, and there
-
NPK
- add
-x assembler-with-cpp
in npk.yml for ssp
- add
For detailed changes, please check commit histories since 0.3.3 release.
Nuclei embedded Software Development Kit, Release 0.3.3
V0.3.3
This is release version 0.3.3
of Nuclei SDK.
-
NPK
- Fix NPK issues related to QEMU for demosoc and gd32vf103, and RTOS macro definitions in NPK
- This SDK release required Nuclei Studio 2021.09-ENG1, 2021.08.18 build version
For detailed changes, please check commit histories since 0.3.2 release.
Nuclei embedded Software Development Kit, Release 0.3.2
This is release version 0.3.2
of Nuclei SDK.
-
Build
-
Important changes about build system:
- The SoC and RTOS related makefiles are moving to its own folder, and controlled By
build.mk inside in in the SoC/ or OS/ folders. - Middlware component build system is also available now, you can add you own middleware or library
intoComponents
folder, such asComponents/tjpgd
orComponents/fatfs
, and you can include
this component using make variableMIDDLEWARE
in application Makefile, such asMIDDLEWARE := fatfs
,
orMIDDLEWARE := tjpgd fatfs
. - Each middleware component folder should create a
build.mk
, which is used to control
the component build settings and source code management. - An extra
DOWNLOAD_MODE_STRING
macro is passed to represent the DOWNLOAD mode string. - In
startup_<Device>.S
now, we don't useDOWNLOAD_MODE
to handle the vector table location, instead
we defined a new macro calledVECTOR_TABLE_REMAPPED
to stand for whether the vector table's vma != lma.
IfVECTOR_TABLE_REMAPPED
is defined, the vector table is placed in.vtable_ilm
, which means the vector
table is placed in flash and copy to ilm when startup.
- The SoC and RTOS related makefiles are moving to its own folder, and controlled By
-
Change openocd
--pipe
option to-c "gdb_port pipe; log_output openocd.log"
-
Remove
-ex "monitor flash protect 0 0 last off"
when upload or debug program to avoid error
when openocd configuration file didn't configure a flash -
Add
cleanall
target in <NUCLEI_SDK_ROOT>/Makefile, you can clean all the applications
defined byEXTRA_APP_ROOTDIRS
variable -
Fix
size
target of build system
-
-
Tools
-
Add
nsdk_cli
tools in Nuclei SDK which support run applications- tools/scripts/nsdk_cli/requirements.txt: python module requirement file
- tools/scripts/nsdk_cli/configs: sample configurations used by scripts below
- tools/scripts/nsdk_cli/nsdk_bench.py: nsdk bench runner script
- tools/scripts/nsdk_cli/nsdk_execute.py: nsdk execute runner script
-
-
SoC
- Add general bit operations and memory access APIs in
<Device>.h
, eg._REG32(p, i)
,FLIP_BIT(regval, bitofs)
DOWNLOAD_MODE_xxx
macros are now placed in<Device>.h
, which is removed fromriscv_encoding.h
, user can define
differentDOWNLOAD_MODE_xxx
according to its device/board settings.DOWNLOAD_MODE_STRING
are now used to show the download mode string, which should be passed eg.-DOWNLOAD_MODE_STRING=\"flash\"
,
it is used insystem_<Device>.c
DOWNLOAD_MODE_xxx
now is used instartup_<Device>.S
to control the vector table location,
instead a new macro calledVECTOR_TABLE_REMAPPED
is used, and it should be defined inSoC/<SOC>/build.mk
if the vector table's LMA and VMA are different.
- Add general bit operations and memory access APIs in
-
NMSIS
- Bump NMSIS to version 1.0.2
-
OS
- Fix OS task switch bug in RT-Thread
For detailed changes, please check commit histories since 0.3.1 release.
Nuclei embedded Software Development Kit, Release 0.3.1
This is official version 0.3.1
of Nuclei SDK.
- We are using
demosoc
to represent the Nuclei Evaluation SoC for customer to replace the old namehbird
.- The
hbird
SoC is renamed todemosoc
, so theSoC/hbird
folder is renamed toSoC/demosoc
,
and theSoC/hbird/Board/hbird_eval
is renamed toSoC/demosoc/Board/nuclei_fpga_eval
.
-
SoC
-
board: Add support for TTGO T-Display-GD32, contributed by
tuupola
_ -
Add definitions for the Interface Association Descriptor of USB for GD32VF103, contributed by
michahoiting
_. -
IMPORTANT:
hbird
SoC is renamed todemosoc
, andhbird_eval
is renamed tonuclei_fpga_eval
- Please use
SOC=demosoc BOARD=nuclei_fpga_eval
to replaceSOC=hbird BOARD=hbird_eval
- The changes are done to not using the name already used in opensource Hummingbird E203 SoC.
- Now
demosoc
is used to represent the Nuclei Demo SoC for evaluation on Nuclei FPGA evaluation Board(MCU200T/DDR200T)
- Please use
-
-
Documentation
- Update
msh
application documentation - Add basic documentation for TTGO T-Display-GD32
- Add Platformio user guide(written in Chinese) link in get started guide contributed by Maker Young
- Update
-
Application
- Increase idle and finsh thread stack for RT-Thread, due to stack size is not enough for RISC-V 64bit
- Set rt-thread example tick hz to 100, and ucosii example tick hz to 50
-
Build
- Format Makefile space to tab
- Add $(TARGET).dasm into clean targets which are missing before
-
Code style
- Format source files located in application, OS, SoC, test using astyle tool
Nuclei embedded Software Development Kit, Release 0.3.0
This is official version 0.3.0
of Nuclei SDK.
-
SoC
- Add more newlib stub functions for all SoC support packages
- Dump extra csr
mdcause
in default exception handler for hbird - Add Sipeed Longan Nano as new supported board
- Add gd32vf103c_longan_nano board support, contributed by tuupola and RomanBuchert
-
Documentation
- Add
demo_nice
application documentation - Add
msh
application documentation - Update get started guide
- Add gd32vf103c_longan_nano board documentation
- Update board documentation structure levels
- Add
-
Application
- Cleanup unused comments in dhrystone
- Add new
demo_nice
application to show Nuclei NICE feature - Add new
msh
application to show RT-Thread MSH shell compoment usage
-
NMSIS
- Fix typo in CLICINFO_Type._reserved0 bits
- Fix
__STRBT
,__STRHT
,__STRT
and__USAT
macros
-
OS
- Add
msh
compoment source code into RT-Thread RTOS source code - Add
rt_hw_console_getchar
implementation
- Add
-
Build
- Add
setup.ps1
for setting up environment in windows powershell
- Add
Nuclei embedded Software Development Kit, Release 0.2.9
This is official version 0.2.9
of Nuclei SDK.
-
SoC
- Remove
ftdi_device_desc "Dual RS232-HS"
line in openocd configuration.
Newer version of RVSTAR and Hummingbird Debugger have changed the FTDI description
from "Dual RS232-HS" to "USB <-> JTAG-DEBUGGER", to be back-compatiable with older
version, we just removed thisftdi_device_desc "Dual RS232-HS"
line.
If you want to select specified JTAG, you can add thisftdi_device_desc
according
to your description. - Fix typos in system_<Device>.c
- Fix gpio driver implementation bugs of hbird
- Enable more CSR(micfg_info, mdcfg_info, mcfg_info) show in gdb debug
- Remove
-
Documentation
- Add more faqs
-
Build System
- Remove unnecessary upload gdb command
- Remove upload successfully message for
make upload
Nuclei embedded Software Development Kit, Release 0.2.8
This is the official release version 0.2.8
of Nuclei SDK.
-
SoC
- Fixed implementation for
_read
newlib stub function, now scanf
can be used correctly for both gd32vf103 and hbird SoCs.
- Fixed implementation for
-
Misc
- Update platformio package json file according to latest platformio requirements
Nuclei embedded Software Development Kit, Release 0.2.7
This is the official release version 0.2.7
of Nuclei SDK.
-
OS
- Important: Fix OS portable code, configKERNEL_INTERRUPT_PRIORITY should
set to default 0, not 1. 0 is the lowest abs interrupt level.
- Important: Fix OS portable code, configKERNEL_INTERRUPT_PRIORITY should
-
Application
- Fix configKERNEL_INTERRUPT_PRIORITY in FreeRTOSConfig.h to 0
-
NMSIS
- Change timer abs irq level setting in function SysTick_Config from 1 to 0