Skip to content

Nuclei embedded Software Development Kit, Release 0.3.2

Compare
Choose a tag to compare
@fanghuaqi fanghuaqi released this 16 Aug 01:22
· 1389 commits to master since this release

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.