changelog.rst 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. .. _changelog:
  2. Changelog
  3. =========
  4. V0.3.0-dev
  5. ----------
  6. This is release version ``0.3.0`` of N100 SDK, which is still in development.
  7. .. note::
  8. - Fix bug in RTOS porting for task sp alignment requirement
  9. * OS
  10. - Bugfix for correct task stack pointer alignment(16 bytes for non-ilp32e, and 4 bytes for ilp32e) on FreeRTOS/UCOSII/RT-Thread RTOS porting, see https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/301374e92976e298e676e7129a6212926b2299ce/riscv-cc.adoc?plain=1#L245-L259
  11. V0.2.1
  12. -------
  13. .. note::
  14. - Please use Nuclei N100 SDK with **Nuclei Studio 2025.02**, get it from https://nucleisys.com/download.php#tools
  15. - For Terapines ZCC toolchain, please download it from https://www.terapines.com/products/zcc and replace
  16. Nuclei Studio IDE ``toolchain/zcc`` folder existing content
  17. This is release version ``0.2.1`` of N100 SDK.
  18. * SoC
  19. - Fix missing return for IRQC_Register_IRQ for evalsoc
  20. - Add NMI exception support for evalsoc, exception code is ``0xFFF``
  21. - Support ``zcmt`` extension in evalsoc linker script file
  22. - Fix wrong npk dependency described in ``npk.yml`` file which cause wrongly depends on nuclei sdk
  23. * Tools
  24. - Add filter configuration feature in nsdk_cli tools, you can filter certain arches which you dont want to run via ``SDK_IGNORED_EXTS`` environment variable
  25. V0.2.0
  26. -------
  27. .. note::
  28. - Please use Nuclei N100 SDK with **Nuclei Studio 2025.02**, get it from https://nucleisys.com/download.php#tools
  29. - This version of N100 SDK only support latest n100/ns100 cpu core.
  30. This is release version ``0.2.0`` of N100 SDK.
  31. * Application
  32. - Add an empty project for n100 sdk
  33. - Add an macro ``TIMER_RELOAD`` to control ``demo_timer`` timer interrupt reload via TIME or TIMECMP
  34. - reset cycle and instret when start to do benchmark
  35. * NMSIS
  36. - Add ``__set_rv_instret`` and ``__set_rv_cycle`` API for N100 NMSIS Core
  37. - Fix ``SysTick_Config`` API by using ``SysTick_Reload`` instead of directly set MTIMECMP register to avoid easy 24b overflow
  38. - Remove ``IRQC_SetPendingIRQ`` and ``IRQC_ClearPendingIRQ`` API due to N100 only support level interrupt
  39. - Update ``CSR_MCAUSE_Type/CSR_MSTATUS_Type/CSR_MSTATUSH_Type`` union member
  40. * SoC
  41. - Merge newlib stub code files into one stub code file
  42. - Add ``CODESIZE`` make variable to reduce application code size
  43. - Modify startup code for both gcc and iar startup code and linker script to support
  44. new startup and exception rules, see :ref:`design_soc_evalsoc_usage`
  45. - Now only ``sram`` linker script is provided for reference, you can always modify
  46. startup and linker script code to match your real cpu design
  47. - Fix ``delay_1ms`` API may work wrongly due to TIME register overflow
  48. - N100 evalsoc external interrupt number changed from 30 to 16
  49. - N100 exception entry alignment changed to 4bytes to match n100 design
  50. * Build System
  51. - Add ``nuclei_llvm`` and ``terapines`` toolchain supported, required Nuclei Studio 2025.02
  52. - Fix IAR prebuild projects build issues
  53. V0.1.0
  54. ------
  55. This is release version ``0.1.0`` of N100 SDK.
  56. .. note::
  57. - Please use Nuclei N100 SDK with **Nuclei Studio 2024.06**, get it from https://nucleisys.com/download.php#tools
  58. - Nuclei N100 SDK is modified based on Nuclei SDK **0.5.0** release, and will not merge back to Nuclei SDK in the future.
  59. - 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/
  60. * Application
  61. - Added baremetal/freertos/ucosii/rtthread examples.
  62. - Baremetal examples contains helloworld, demo_irqc, demo_timer, demo_extirq, lowpower cases to show cpu interrupt and timer usage.
  63. - Baremetal examples also contains benchmark examples such as coremark, dhrystone, whetstone which can demostrate the performance of Nuclei CPU.
  64. - RTOS examples contains different samples to show how to use FreeRTOS, UCOSII and RT-Thread on Nuclei N100.
  65. * Build System
  66. - Support Nuclei 100 series RISC-V CPU Cores.
  67. - Support Nuclei RISC-V GCC toolchain, IAR Compiler and Terapines ZCC toolchain.
  68. * NMSIS
  69. - NMSIS in N100 SDK is **not compatible with** standard NMSIS, this is modified to match Nuclei 100 series CPU.
  70. - Most of the APIs in this **modified NMSIS** are similar to standard NMSIS, but some APIs have been changed or added.
  71. - Please refer to the header files in ``NMSIS/Core/Include`` directory for more details.
  72. * SoC
  73. - **Only Nuclei Evaluation SoC for 100 series is supported by this SDK**.
  74. - If you want to port to your own SoC, you modify based on this ``evalsoc`` implementation.
  75. - This SDK will also be generated by 100 series ``nuclei_gen`` tool, please take a look at the ``evalsoc.memory``, ``openocd_evalsoc.cfg``, ``cpufeature.h`` and ``cpufeature.mk``,
  76. for IAR projects, you need to also check the linker script inside it.
  77. - Only ``sram`` and ``flashxip`` download modes are supported in this SDK, and the linker script is quite different to normal Nuclei SDK,
  78. please take care, especially the vector table and exception entry address are RTL configurable which means when your RTL configuration
  79. is different to our ``evalsoc``, you need to modify the linker script to match your rtl configuration.
  80. - 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.
  81. * RTOS
  82. - FreeRTOS/UCOSII/RT-Thread port for 100 series CPU are added in this SDK.
  83. - IAR compiler port and gcc/clang port are also supported by these RTOSes.
  84. * IDE support
  85. - **Nuclei Studio 2024.06** will support this Nuclei N100 SDK via NPK solution just like Nuclei SDK.
  86. - IAR Workbench support is also done in this SDK, please take a try with it in ``ideprojects/iar`` folder.
  87. * Documentation
  88. - The documentation is modified based on Nuclei SDK.
  89. - 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.