Skip to content

Releases: Nuclei-Software/nuclei-sdk

Nuclei embedded Software Development Kit, Release 0.3.6

28 Feb 06:14
Compare
Choose a tag to compare

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
  • Build

    • Add experimental run_xlspike and run_qemu make target support
    • SIMU=xlspike or SIMU=qemu passed in make will auto exit xlspike/qemu if main function returned
  • 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

25 Jan 07:27
Compare
Choose a tag to compare

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 in Build/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 to DSP_ENABLE=ON, ARCH_EXT=v equal to VECTOR_ENABLE=ON.

    • demo_dsp application no need to set include and libraries for NMSIS DSP library, just use NMSIS_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
    • 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
      for riscv_math.h now, it is now auto-defined in riscv_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 otherwise medany 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 and nuclei-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

15 Oct 09:53
Compare
Choose a tag to compare

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
  • 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.
  • NPK

    • add -x assembler-with-cpp in npk.yml for ssp

For detailed changes, please check commit histories since 0.3.3 release.

Nuclei embedded Software Development Kit, Release 0.3.3

19 Aug 03:47
Compare
Choose a tag to compare

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

16 Aug 01:22
Compare
Choose a tag to compare

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
        into Components folder, such as Components/tjpgd or Components/fatfs, and you can include
        this component using make variable MIDDLEWARE in application Makefile, such as MIDDLEWARE := fatfs,
        or MIDDLEWARE := 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 use DOWNLOAD_MODE to handle the vector table location, instead
        we defined a new macro called VECTOR_TABLE_REMAPPED to stand for whether the vector table's vma != lma.
        If VECTOR_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.
    • 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 by EXTRA_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 from riscv_encoding.h, user can define
      different DOWNLOAD_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 in system_<Device>.c
    • DOWNLOAD_MODE_xxx now is used in startup_<Device>.S to control the vector table location,
      instead a new macro called VECTOR_TABLE_REMAPPED is used, and it should be defined in SoC/<SOC>/build.mk
      if the vector table's LMA and VMA are different.
  • 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

19 Apr 02:05
Compare
Choose a tag to compare

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 name hbird.
  • The hbird SoC is renamed to demosoc, so the SoC/hbird folder is renamed to SoC/demosoc,
    and the SoC/hbird/Board/hbird_eval is renamed to SoC/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 to demosoc, and hbird_eval is renamed to nuclei_fpga_eval

      • Please use SOC=demosoc BOARD=nuclei_fpga_eval to replace SOC=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)
  • 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
  • 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

18 Dec 02:45
Compare
Choose a tag to compare

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
  • 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
  • Build

    • Add setup.ps1 for setting up environment in windows powershell

Nuclei embedded Software Development Kit, Release 0.2.9

20 Oct 02:26
Compare
Choose a tag to compare

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 this ftdi_device_desc "Dual RS232-HS" line.
      If you want to select specified JTAG, you can add this ftdi_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
  • 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

07 Sep 07:39
Compare
Choose a tag to compare

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.
  • Misc

    • Update platformio package json file according to latest platformio requirements

Nuclei embedded Software Development Kit, Release 0.2.7

04 Sep 01:18
Compare
Choose a tag to compare

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.
  • 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