Procházet zdrojové kódy

[BSP] 添加raspberry-rp2350适配

hydevcode před 1 měsícem
rodič
revize
5347500f33
98 změnil soubory, kde provedl 3494 přidání a 5 odebrání
  1. 2 1
      .github/ALL_BSP_COMPILE.json
  2. 0 1
      .github/workflows/bsp_buildings.yml
  3. 0 0
      bsp/raspberry-pico/Drivers/SConscript
  4. 0 0
      bsp/raspberry-pico/Drivers/drv_adc.c
  5. 0 0
      bsp/raspberry-pico/Drivers/drv_adc.h
  6. 0 0
      bsp/raspberry-pico/Drivers/drv_flash.c
  7. 0 0
      bsp/raspberry-pico/Drivers/drv_flash.h
  8. 0 0
      bsp/raspberry-pico/Drivers/drv_gpio.c
  9. 0 0
      bsp/raspberry-pico/Drivers/drv_gpio.h
  10. 0 0
      bsp/raspberry-pico/Drivers/drv_hwtimer.c
  11. 0 0
      bsp/raspberry-pico/Drivers/drv_hwtimer.h
  12. 0 0
      bsp/raspberry-pico/Drivers/drv_i2c.c
  13. 0 0
      bsp/raspberry-pico/Drivers/drv_i2c.h
  14. 0 0
      bsp/raspberry-pico/Drivers/drv_pwm.c
  15. 0 0
      bsp/raspberry-pico/Drivers/drv_pwm.h
  16. 0 0
      bsp/raspberry-pico/Drivers/drv_rtc.c
  17. 0 0
      bsp/raspberry-pico/Drivers/drv_soft_i2c.c
  18. 0 0
      bsp/raspberry-pico/Drivers/drv_soft_i2c.h
  19. 0 0
      bsp/raspberry-pico/Drivers/drv_soft_spi.c
  20. 0 0
      bsp/raspberry-pico/Drivers/drv_soft_spi.h
  21. 0 0
      bsp/raspberry-pico/Drivers/drv_spi.c
  22. 0 0
      bsp/raspberry-pico/Drivers/drv_spi.h
  23. 0 0
      bsp/raspberry-pico/Drivers/drv_uart.c
  24. 0 1
      bsp/raspberry-pico/Drivers/drv_uart.h
  25. 0 0
      bsp/raspberry-pico/Drivers/drv_wdt.c
  26. 0 0
      bsp/raspberry-pico/Drivers/drv_wdt.h
  27. 0 0
      bsp/raspberry-pico/RP2040/.ci/attachconfig/ci.attachconfig.yml
  28. 0 0
      bsp/raspberry-pico/RP2040/.config
  29. 45 0
      bsp/raspberry-pico/RP2040/.gitignore
  30. 1 1
      bsp/raspberry-pico/RP2040/Kconfig
  31. 0 0
      bsp/raspberry-pico/RP2040/README.md
  32. 0 0
      bsp/raspberry-pico/RP2040/SConscript
  33. 3 1
      bsp/raspberry-pico/RP2040/SConstruct
  34. 0 0
      bsp/raspberry-pico/RP2040/applications/SConscript
  35. 0 0
      bsp/raspberry-pico/RP2040/applications/arduino_main.cpp
  36. 0 0
      bsp/raspberry-pico/RP2040/applications/arduino_pinout/README.md
  37. 0 0
      bsp/raspberry-pico/RP2040/applications/arduino_pinout/SConscript
  38. 0 0
      bsp/raspberry-pico/RP2040/applications/arduino_pinout/images/Pico-R3-Pinout-1719757322245-1.svg
  39. 0 0
      bsp/raspberry-pico/RP2040/applications/arduino_pinout/pins_arduino.c
  40. 0 0
      bsp/raspberry-pico/RP2040/applications/arduino_pinout/pins_arduino.h
  41. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/README.md
  42. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/README_zh.md
  43. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/SConscript
  44. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/demo/SConscript
  45. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/demo/lv_demo.c
  46. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/img/1.png
  47. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/img/2.png
  48. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/img/3.png
  49. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/img/4.png
  50. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/img/5.png
  51. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/img_en/1.png
  52. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/img_en/2.png
  53. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/img_en/3.png
  54. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/img_en/4.png
  55. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/img_en/5.png
  56. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/lv_conf.h
  57. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/lv_port_disp.c
  58. 0 0
      bsp/raspberry-pico/RP2040/applications/lvgl/lv_port_indev.c
  59. 0 0
      bsp/raspberry-pico/RP2040/applications/main.c
  60. 0 0
      bsp/raspberry-pico/RP2040/board/Kconfig
  61. 0 0
      bsp/raspberry-pico/RP2040/board/SConscript
  62. 0 0
      bsp/raspberry-pico/RP2040/board/board.c
  63. 0 0
      bsp/raspberry-pico/RP2040/board/board.h
  64. 0 0
      bsp/raspberry-pico/RP2040/board/ports/SConscript
  65. 0 0
      bsp/raspberry-pico/RP2040/board/ports/lcd/SConscript
  66. 0 0
      bsp/raspberry-pico/RP2040/board/ports/lcd/drv_lcd.c
  67. 0 0
      bsp/raspberry-pico/RP2040/board/ports/lcd/drv_lcd.h
  68. 0 0
      bsp/raspberry-pico/RP2040/figures/Pico-R3-Pinout.svg
  69. 0 0
      bsp/raspberry-pico/RP2040/figures/elf2uf2.png
  70. 0 0
      bsp/raspberry-pico/RP2040/libcpu/SConscript
  71. 0 0
      bsp/raspberry-pico/RP2040/libcpu/context_gcc.S
  72. 0 0
      bsp/raspberry-pico/RP2040/libcpu/cpuport.c
  73. 0 0
      bsp/raspberry-pico/RP2040/libcpu/cpuport.h
  74. 0 0
      bsp/raspberry-pico/RP2040/link.ld
  75. 0 0
      bsp/raspberry-pico/RP2040/rtconfig.h
  76. 0 0
      bsp/raspberry-pico/RP2040/rtconfig.py
  77. 0 0
      bsp/raspberry-pico/RP2040/tools/elf2uf2
  78. 0 0
      bsp/raspberry-pico/RP2040/tools/elf2uf2.exe
  79. 1430 0
      bsp/raspberry-pico/RP2350/.config
  80. 44 0
      bsp/raspberry-pico/RP2350/.gitignore
  81. 26 0
      bsp/raspberry-pico/RP2350/.vscode/launch.json
  82. 25 0
      bsp/raspberry-pico/RP2350/.vscode/settings.json
  83. 21 0
      bsp/raspberry-pico/RP2350/Kconfig
  84. 83 0
      bsp/raspberry-pico/RP2350/README.md
  85. 12 0
      bsp/raspberry-pico/RP2350/SConscript
  86. 42 0
      bsp/raspberry-pico/RP2350/SConstruct
  87. 15 0
      bsp/raspberry-pico/RP2350/applications/SConscript
  88. 30 0
      bsp/raspberry-pico/RP2350/applications/main.c
  89. 813 0
      bsp/raspberry-pico/RP2350/board/Kconfig
  90. 20 0
      bsp/raspberry-pico/RP2350/board/SConscript
  91. 68 0
      bsp/raspberry-pico/RP2350/board/board.c
  92. 21 0
      bsp/raspberry-pico/RP2350/board/board.h
  93. binární
      bsp/raspberry-pico/RP2350/figures/elf2uf2.png
  94. binární
      bsp/raspberry-pico/RP2350/figures/rp2350.png
  95. 308 0
      bsp/raspberry-pico/RP2350/link.ld
  96. 416 0
      bsp/raspberry-pico/RP2350/rtconfig.h
  97. 69 0
      bsp/raspberry-pico/RP2350/rtconfig.py
  98. binární
      bsp/raspberry-pico/RP2350/tools/picotool

+ 2 - 1
.github/ALL_BSP_COMPILE.json

@@ -20,7 +20,8 @@
       "RTT_BSP": "RTduino_Arduino Libraries (Raspberry Pico)",
       "RTT_TOOL_CHAIN": "sourcery-arm",
       "SUB_RTT_BSP": [
-        "raspberry-pico"
+        "raspberry-pico/RP2040",
+        "raspberry-pico/RP2350"
       ]
     },
     {

+ 0 - 1
.github/workflows/bsp_buildings.yml

@@ -91,7 +91,6 @@ jobs:
         uses: actions/setup-python@main
         with:
           python-version: 3.8
-
       - name: Install Tools
         shell: bash
         run: |

+ 0 - 0
bsp/raspberry-pico/drivers/SConscript → bsp/raspberry-pico/Drivers/SConscript


+ 0 - 0
bsp/raspberry-pico/drivers/drv_adc.c → bsp/raspberry-pico/Drivers/drv_adc.c


+ 0 - 0
bsp/raspberry-pico/drivers/drv_adc.h → bsp/raspberry-pico/Drivers/drv_adc.h


+ 0 - 0
bsp/raspberry-pico/drivers/drv_flash.c → bsp/raspberry-pico/Drivers/drv_flash.c


+ 0 - 0
bsp/raspberry-pico/drivers/drv_flash.h → bsp/raspberry-pico/Drivers/drv_flash.h


+ 0 - 0
bsp/raspberry-pico/drivers/drv_gpio.c → bsp/raspberry-pico/Drivers/drv_gpio.c


+ 0 - 0
bsp/raspberry-pico/drivers/drv_gpio.h → bsp/raspberry-pico/Drivers/drv_gpio.h


+ 0 - 0
bsp/raspberry-pico/drivers/drv_hwtimer.c → bsp/raspberry-pico/Drivers/drv_hwtimer.c


+ 0 - 0
bsp/raspberry-pico/drivers/drv_hwtimer.h → bsp/raspberry-pico/Drivers/drv_hwtimer.h


+ 0 - 0
bsp/raspberry-pico/drivers/drv_i2c.c → bsp/raspberry-pico/Drivers/drv_i2c.c


+ 0 - 0
bsp/raspberry-pico/drivers/drv_i2c.h → bsp/raspberry-pico/Drivers/drv_i2c.h


+ 0 - 0
bsp/raspberry-pico/drivers/drv_pwm.c → bsp/raspberry-pico/Drivers/drv_pwm.c


+ 0 - 0
bsp/raspberry-pico/drivers/drv_pwm.h → bsp/raspberry-pico/Drivers/drv_pwm.h


+ 0 - 0
bsp/raspberry-pico/drivers/drv_rtc.c → bsp/raspberry-pico/Drivers/drv_rtc.c


+ 0 - 0
bsp/raspberry-pico/drivers/drv_soft_i2c.c → bsp/raspberry-pico/Drivers/drv_soft_i2c.c


+ 0 - 0
bsp/raspberry-pico/drivers/drv_soft_i2c.h → bsp/raspberry-pico/Drivers/drv_soft_i2c.h


+ 0 - 0
bsp/raspberry-pico/drivers/drv_soft_spi.c → bsp/raspberry-pico/Drivers/drv_soft_spi.c


+ 0 - 0
bsp/raspberry-pico/drivers/drv_soft_spi.h → bsp/raspberry-pico/Drivers/drv_soft_spi.h


+ 0 - 0
bsp/raspberry-pico/drivers/drv_spi.c → bsp/raspberry-pico/Drivers/drv_spi.c


+ 0 - 0
bsp/raspberry-pico/drivers/drv_spi.h → bsp/raspberry-pico/Drivers/drv_spi.h


+ 0 - 0
bsp/raspberry-pico/drivers/drv_uart.c → bsp/raspberry-pico/Drivers/drv_uart.c


+ 0 - 1
bsp/raspberry-pico/drivers/drv_uart.h → bsp/raspberry-pico/Drivers/drv_uart.h

@@ -13,7 +13,6 @@
 #define __DRV_UART_H__
 
 #include <rthw.h>
-#include <rtthread.h>
 
 #ifdef RT_USING_SERIAL
 int rt_hw_uart_init(void);

+ 0 - 0
bsp/raspberry-pico/drivers/drv_wdt.c → bsp/raspberry-pico/Drivers/drv_wdt.c


+ 0 - 0
bsp/raspberry-pico/drivers/drv_wdt.h → bsp/raspberry-pico/Drivers/drv_wdt.h


+ 0 - 0
bsp/raspberry-pico/.ci/attachconfig/ci.attachconfig.yml → bsp/raspberry-pico/RP2040/.ci/attachconfig/ci.attachconfig.yml


+ 0 - 0
bsp/raspberry-pico/.config → bsp/raspberry-pico/RP2040/.config


+ 45 - 0
bsp/raspberry-pico/RP2040/.gitignore

@@ -0,0 +1,45 @@
+*.pyc
+*.map
+*.dblite
+*.uf2
+*.elf
+*.bin
+*.hex
+*.axf
+*.exe
+*.pdb
+*.idb
+*.ilk
+*.old
+build
+Debug
+documentation/html
+packages/
+*~
+*.o
+*.obj
+*.out
+*.bak
+*.dep
+*.lib
+*.i
+*.d
+.DS_Stor*
+.config 3
+.config 4
+.config 5
+Midea-X1
+*.uimg
+GPATH
+GRTAGS
+GTAGS
+.vscode
+JLinkLog.txt
+JLinkSettings.ini
+DebugConfig/
+RTE/
+settings/
+*.uvguix*
+cconfig.h
+!.vscode
+!elf2uf2.exe

+ 1 - 1
bsp/raspberry-pico/Kconfig → bsp/raspberry-pico/RP2040/Kconfig

@@ -2,7 +2,7 @@ mainmenu "RT-Thread Configuration"
 
 BSP_DIR := .
 
-RTT_DIR := ../..
+RTT_DIR := ../../..
 
 PKGS_DIR := packages
 

+ 0 - 0
bsp/raspberry-pico/README.md → bsp/raspberry-pico/RP2040/README.md


+ 0 - 0
bsp/raspberry-pico/SConscript → bsp/raspberry-pico/RP2040/SConscript


+ 3 - 1
bsp/raspberry-pico/SConstruct → bsp/raspberry-pico/RP2040/SConstruct

@@ -5,7 +5,7 @@ import rtconfig
 if os.getenv('RTT_ROOT'):
     RTT_ROOT = os.getenv('RTT_ROOT')
 else:
-    RTT_ROOT = os.path.normpath(os.getcwd() + '/../..')
+    RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
 
 sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
 from building import *
@@ -38,5 +38,7 @@ os.chdir(ocwd)
 
 objs.extend(SConscript(os.path.join(os.getcwd(), 'board', 'ports', 'SConscript')))
 
+objs.extend(SConscript(os.path.join(os.getcwd(), '..', 'Drivers', 'SConscript')))
+
 # make a building
 DoBuilding(TARGET, objs)

+ 0 - 0
bsp/raspberry-pico/applications/SConscript → bsp/raspberry-pico/RP2040/applications/SConscript


+ 0 - 0
bsp/raspberry-pico/applications/arduino_main.cpp → bsp/raspberry-pico/RP2040/applications/arduino_main.cpp


+ 0 - 0
bsp/raspberry-pico/applications/arduino_pinout/README.md → bsp/raspberry-pico/RP2040/applications/arduino_pinout/README.md


+ 0 - 0
bsp/raspberry-pico/applications/arduino_pinout/SConscript → bsp/raspberry-pico/RP2040/applications/arduino_pinout/SConscript


+ 0 - 0
bsp/raspberry-pico/applications/arduino_pinout/images/Pico-R3-Pinout-1719757322245-1.svg → bsp/raspberry-pico/RP2040/applications/arduino_pinout/images/Pico-R3-Pinout-1719757322245-1.svg


+ 0 - 0
bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.c → bsp/raspberry-pico/RP2040/applications/arduino_pinout/pins_arduino.c


+ 0 - 0
bsp/raspberry-pico/applications/arduino_pinout/pins_arduino.h → bsp/raspberry-pico/RP2040/applications/arduino_pinout/pins_arduino.h


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/README.md → bsp/raspberry-pico/RP2040/applications/lvgl/README.md


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/README_zh.md → bsp/raspberry-pico/RP2040/applications/lvgl/README_zh.md


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/SConscript → bsp/raspberry-pico/RP2040/applications/lvgl/SConscript


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/demo/SConscript → bsp/raspberry-pico/RP2040/applications/lvgl/demo/SConscript


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/demo/lv_demo.c → bsp/raspberry-pico/RP2040/applications/lvgl/demo/lv_demo.c


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/img/1.png → bsp/raspberry-pico/RP2040/applications/lvgl/img/1.png


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/img/2.png → bsp/raspberry-pico/RP2040/applications/lvgl/img/2.png


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/img/3.png → bsp/raspberry-pico/RP2040/applications/lvgl/img/3.png


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/img/4.png → bsp/raspberry-pico/RP2040/applications/lvgl/img/4.png


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/img/5.png → bsp/raspberry-pico/RP2040/applications/lvgl/img/5.png


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/img_en/1.png → bsp/raspberry-pico/RP2040/applications/lvgl/img_en/1.png


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/img_en/2.png → bsp/raspberry-pico/RP2040/applications/lvgl/img_en/2.png


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/img_en/3.png → bsp/raspberry-pico/RP2040/applications/lvgl/img_en/3.png


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/img_en/4.png → bsp/raspberry-pico/RP2040/applications/lvgl/img_en/4.png


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/img_en/5.png → bsp/raspberry-pico/RP2040/applications/lvgl/img_en/5.png


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/lv_conf.h → bsp/raspberry-pico/RP2040/applications/lvgl/lv_conf.h


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/lv_port_disp.c → bsp/raspberry-pico/RP2040/applications/lvgl/lv_port_disp.c


+ 0 - 0
bsp/raspberry-pico/applications/lvgl/lv_port_indev.c → bsp/raspberry-pico/RP2040/applications/lvgl/lv_port_indev.c


+ 0 - 0
bsp/raspberry-pico/applications/main.c → bsp/raspberry-pico/RP2040/applications/main.c


+ 0 - 0
bsp/raspberry-pico/board/Kconfig → bsp/raspberry-pico/RP2040/board/Kconfig


+ 0 - 0
bsp/raspberry-pico/board/SConscript → bsp/raspberry-pico/RP2040/board/SConscript


+ 0 - 0
bsp/raspberry-pico/board/board.c → bsp/raspberry-pico/RP2040/board/board.c


+ 0 - 0
bsp/raspberry-pico/board/board.h → bsp/raspberry-pico/RP2040/board/board.h


+ 0 - 0
bsp/raspberry-pico/board/ports/SConscript → bsp/raspberry-pico/RP2040/board/ports/SConscript


+ 0 - 0
bsp/raspberry-pico/board/ports/lcd/SConscript → bsp/raspberry-pico/RP2040/board/ports/lcd/SConscript


+ 0 - 0
bsp/raspberry-pico/board/ports/lcd/drv_lcd.c → bsp/raspberry-pico/RP2040/board/ports/lcd/drv_lcd.c


+ 0 - 0
bsp/raspberry-pico/board/ports/lcd/drv_lcd.h → bsp/raspberry-pico/RP2040/board/ports/lcd/drv_lcd.h


+ 0 - 0
bsp/raspberry-pico/figures/Pico-R3-Pinout.svg → bsp/raspberry-pico/RP2040/figures/Pico-R3-Pinout.svg


+ 0 - 0
bsp/raspberry-pico/figures/elf2uf2.png → bsp/raspberry-pico/RP2040/figures/elf2uf2.png


+ 0 - 0
bsp/raspberry-pico/libcpu/SConscript → bsp/raspberry-pico/RP2040/libcpu/SConscript


+ 0 - 0
bsp/raspberry-pico/libcpu/context_gcc.S → bsp/raspberry-pico/RP2040/libcpu/context_gcc.S


+ 0 - 0
bsp/raspberry-pico/libcpu/cpuport.c → bsp/raspberry-pico/RP2040/libcpu/cpuport.c


+ 0 - 0
bsp/raspberry-pico/libcpu/cpuport.h → bsp/raspberry-pico/RP2040/libcpu/cpuport.h


+ 0 - 0
bsp/raspberry-pico/link.ld → bsp/raspberry-pico/RP2040/link.ld


+ 0 - 0
bsp/raspberry-pico/rtconfig.h → bsp/raspberry-pico/RP2040/rtconfig.h


+ 0 - 0
bsp/raspberry-pico/rtconfig.py → bsp/raspberry-pico/RP2040/rtconfig.py


+ 0 - 0
bsp/raspberry-pico/tools/elf2uf2 → bsp/raspberry-pico/RP2040/tools/elf2uf2


+ 0 - 0
bsp/raspberry-pico/tools/elf2uf2.exe → bsp/raspberry-pico/RP2040/tools/elf2uf2.exe


+ 1430 - 0
bsp/raspberry-pico/RP2350/.config

@@ -0,0 +1,1430 @@
+CONFIG_SOC_RP2350=y
+
+#
+# RT-Thread Kernel
+#
+
+#
+# klibc options
+#
+
+#
+# rt_vsnprintf options
+#
+# CONFIG_RT_KLIBC_USING_LIBC_VSNPRINTF is not set
+# CONFIG_RT_KLIBC_USING_VSNPRINTF_LONGLONG is not set
+# CONFIG_RT_KLIBC_USING_VSNPRINTF_STANDARD is not set
+# end of rt_vsnprintf options
+
+#
+# rt_vsscanf options
+#
+# CONFIG_RT_KLIBC_USING_LIBC_VSSCANF is not set
+# end of rt_vsscanf options
+
+#
+# rt_memset options
+#
+# CONFIG_RT_KLIBC_USING_USER_MEMSET is not set
+# CONFIG_RT_KLIBC_USING_LIBC_MEMSET is not set
+# CONFIG_RT_KLIBC_USING_TINY_MEMSET is not set
+# end of rt_memset options
+
+#
+# rt_memcpy options
+#
+# CONFIG_RT_KLIBC_USING_USER_MEMCPY is not set
+# CONFIG_RT_KLIBC_USING_LIBC_MEMCPY is not set
+# CONFIG_RT_KLIBC_USING_TINY_MEMCPY is not set
+# end of rt_memcpy options
+
+#
+# rt_memmove options
+#
+# CONFIG_RT_KLIBC_USING_USER_MEMMOVE is not set
+# CONFIG_RT_KLIBC_USING_LIBC_MEMMOVE is not set
+# end of rt_memmove options
+
+#
+# rt_memcmp options
+#
+# CONFIG_RT_KLIBC_USING_USER_MEMCMP is not set
+# CONFIG_RT_KLIBC_USING_LIBC_MEMCMP is not set
+# end of rt_memcmp options
+
+#
+# rt_strstr options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRSTR is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRSTR is not set
+# end of rt_strstr options
+
+#
+# rt_strcasecmp options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRCASECMP is not set
+# end of rt_strcasecmp options
+
+#
+# rt_strncpy options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRNCPY is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRNCPY is not set
+# end of rt_strncpy options
+
+#
+# rt_strcpy options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRCPY is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRCPY is not set
+# end of rt_strcpy options
+
+#
+# rt_strncmp options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRNCMP is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRNCMP is not set
+# end of rt_strncmp options
+
+#
+# rt_strcmp options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRCMP is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRCMP is not set
+# end of rt_strcmp options
+
+#
+# rt_strlen options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRLEN is not set
+# CONFIG_RT_KLIBC_USING_LIBC_STRLEN is not set
+# end of rt_strlen options
+
+#
+# rt_strnlen options
+#
+# CONFIG_RT_KLIBC_USING_USER_STRNLEN is not set
+# end of rt_strnlen options
+
+# CONFIG_RT_UTEST_TC_USING_KLIBC is not set
+# end of klibc options
+
+CONFIG_RT_NAME_MAX=8
+# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
+# CONFIG_RT_USING_NANO is not set
+# CONFIG_RT_USING_SMART is not set
+# CONFIG_RT_USING_AMP is not set
+# CONFIG_RT_USING_SMP is not set
+CONFIG_RT_CPUS_NR=1
+CONFIG_RT_ALIGN_SIZE=8
+# CONFIG_RT_THREAD_PRIORITY_8 is not set
+CONFIG_RT_THREAD_PRIORITY_32=y
+# CONFIG_RT_THREAD_PRIORITY_256 is not set
+CONFIG_RT_THREAD_PRIORITY_MAX=32
+CONFIG_RT_TICK_PER_SECOND=100
+CONFIG_RT_USING_OVERFLOW_CHECK=y
+CONFIG_RT_USING_HOOK=y
+CONFIG_RT_HOOK_USING_FUNC_PTR=y
+# CONFIG_RT_USING_HOOKLIST is not set
+CONFIG_RT_USING_IDLE_HOOK=y
+CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
+CONFIG_IDLE_THREAD_STACK_SIZE=256
+# CONFIG_RT_USING_TIMER_SOFT is not set
+# CONFIG_RT_USING_CPU_USAGE_TRACER is not set
+
+#
+# kservice options
+#
+# CONFIG_RT_USING_TINY_FFS is not set
+# end of kservice options
+
+# CONFIG_RT_USING_DEBUG is not set
+# CONFIG_RT_USING_CI_ACTION is not set
+
+#
+# Inter-Thread communication
+#
+CONFIG_RT_USING_SEMAPHORE=y
+CONFIG_RT_USING_MUTEX=y
+CONFIG_RT_USING_EVENT=y
+CONFIG_RT_USING_MAILBOX=y
+CONFIG_RT_USING_MESSAGEQUEUE=y
+# CONFIG_RT_USING_MESSAGEQUEUE_PRIORITY is not set
+# CONFIG_RT_USING_SIGNALS is not set
+# end of Inter-Thread communication
+
+#
+# Memory Management
+#
+CONFIG_RT_USING_MEMPOOL=y
+CONFIG_RT_USING_SMALL_MEM=y
+# CONFIG_RT_USING_SLAB is not set
+# CONFIG_RT_USING_MEMHEAP is not set
+CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
+# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set
+# CONFIG_RT_USING_SLAB_AS_HEAP is not set
+# CONFIG_RT_USING_USERHEAP is not set
+# CONFIG_RT_USING_NOHEAP is not set
+# CONFIG_RT_USING_MEMTRACE is not set
+# CONFIG_RT_USING_HEAP_ISR is not set
+CONFIG_RT_USING_HEAP=y
+# end of Memory Management
+
+CONFIG_RT_USING_DEVICE=y
+# CONFIG_RT_USING_DEVICE_OPS is not set
+# CONFIG_RT_USING_INTERRUPT_INFO is not set
+# CONFIG_RT_USING_THREADSAFE_PRINTF is not set
+CONFIG_RT_USING_CONSOLE=y
+CONFIG_RT_CONSOLEBUF_SIZE=128
+CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
+CONFIG_RT_VER_NUM=0x50201
+# CONFIG_RT_USING_STDC_ATOMIC is not set
+CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32
+# end of RT-Thread Kernel
+
+CONFIG_RT_USING_HW_ATOMIC=y
+CONFIG_RT_USING_CPU_FFS=y
+CONFIG_ARCH_ARM=y
+CONFIG_ARCH_ARM_CORTEX_M=y
+CONFIG_ARCH_ARM_CORTEX_SECURE=y
+CONFIG_ARCH_ARM_CORTEX_M33=y
+
+#
+# RT-Thread Components
+#
+CONFIG_RT_USING_COMPONENTS_INIT=y
+CONFIG_RT_USING_USER_MAIN=y
+CONFIG_RT_MAIN_THREAD_STACK_SIZE=1024
+CONFIG_RT_MAIN_THREAD_PRIORITY=10
+# CONFIG_RT_USING_LEGACY is not set
+CONFIG_RT_USING_MSH=y
+CONFIG_RT_USING_FINSH=y
+CONFIG_FINSH_USING_MSH=y
+CONFIG_FINSH_THREAD_NAME="tshell"
+CONFIG_FINSH_THREAD_PRIORITY=20
+CONFIG_FINSH_THREAD_STACK_SIZE=2048
+CONFIG_FINSH_USING_HISTORY=y
+CONFIG_FINSH_HISTORY_LINES=5
+CONFIG_FINSH_USING_SYMTAB=y
+CONFIG_FINSH_CMD_SIZE=80
+CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
+CONFIG_FINSH_USING_DESCRIPTION=y
+# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
+# CONFIG_FINSH_USING_AUTH is not set
+CONFIG_FINSH_ARG_MAX=10
+CONFIG_FINSH_USING_OPTION_COMPLETION=y
+
+#
+# DFS: device virtual file system
+#
+# CONFIG_RT_USING_DFS is not set
+# end of DFS: device virtual file system
+
+# CONFIG_RT_USING_FAL is not set
+
+#
+# Device Drivers
+#
+# CONFIG_RT_USING_DM is not set
+# CONFIG_RT_USING_DEV_BUS is not set
+CONFIG_RT_USING_DEVICE_IPC=y
+CONFIG_RT_UNAMED_PIPE_NUMBER=64
+# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
+CONFIG_RT_USING_SERIAL=y
+CONFIG_RT_USING_SERIAL_V1=y
+# CONFIG_RT_USING_SERIAL_V2 is not set
+CONFIG_RT_SERIAL_USING_DMA=y
+CONFIG_RT_SERIAL_RB_BUFSZ=64
+# CONFIG_RT_USING_SERIAL_BYPASS is not set
+# CONFIG_RT_USING_CAN is not set
+# CONFIG_RT_USING_CPUTIME is not set
+# CONFIG_RT_USING_I2C is not set
+# CONFIG_RT_USING_PHY is not set
+# CONFIG_RT_USING_PHY_V2 is not set
+# CONFIG_RT_USING_ADC is not set
+# CONFIG_RT_USING_DAC is not set
+# CONFIG_RT_USING_NULL is not set
+# CONFIG_RT_USING_ZERO is not set
+# CONFIG_RT_USING_RANDOM is not set
+# CONFIG_RT_USING_PWM is not set
+# CONFIG_RT_USING_PULSE_ENCODER is not set
+# CONFIG_RT_USING_INPUT_CAPTURE is not set
+# CONFIG_RT_USING_MTD_NOR is not set
+# CONFIG_RT_USING_MTD_NAND is not set
+# CONFIG_RT_USING_PM is not set
+# CONFIG_RT_USING_RTC is not set
+# CONFIG_RT_USING_SDIO is not set
+# CONFIG_RT_USING_SPI is not set
+# CONFIG_RT_USING_WDT is not set
+# CONFIG_RT_USING_AUDIO is not set
+# CONFIG_RT_USING_SENSOR is not set
+# CONFIG_RT_USING_TOUCH is not set
+# CONFIG_RT_USING_LCD is not set
+# CONFIG_RT_USING_HWCRYPTO is not set
+# CONFIG_RT_USING_WIFI is not set
+# CONFIG_RT_USING_BLK is not set
+# CONFIG_RT_USING_VIRTIO is not set
+CONFIG_RT_USING_PIN=y
+# CONFIG_RT_USING_KTIME is not set
+# CONFIG_RT_USING_HWTIMER is not set
+# CONFIG_RT_USING_CHERRYUSB is not set
+# end of Device Drivers
+
+#
+# C/C++ and POSIX layer
+#
+
+#
+# ISO-ANSI C layer
+#
+
+#
+# Timezone and Daylight Saving Time
+#
+# CONFIG_RT_LIBC_USING_FULL_TZ_DST is not set
+CONFIG_RT_LIBC_USING_LIGHT_TZ_DST=y
+CONFIG_RT_LIBC_TZ_DEFAULT_HOUR=8
+CONFIG_RT_LIBC_TZ_DEFAULT_MIN=0
+CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
+# end of Timezone and Daylight Saving Time
+# end of ISO-ANSI C layer
+
+#
+# POSIX (Portable Operating System Interface) layer
+#
+# CONFIG_RT_USING_POSIX_FS is not set
+# CONFIG_RT_USING_POSIX_DELAY is not set
+# CONFIG_RT_USING_POSIX_CLOCK is not set
+# CONFIG_RT_USING_POSIX_TIMER is not set
+# CONFIG_RT_USING_PTHREADS is not set
+# CONFIG_RT_USING_MODULE is not set
+
+#
+# Interprocess Communication (IPC)
+#
+# CONFIG_RT_USING_POSIX_PIPE is not set
+# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set
+# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set
+
+#
+# Socket is in the 'Network' category
+#
+# end of Interprocess Communication (IPC)
+# end of POSIX (Portable Operating System Interface) layer
+
+# CONFIG_RT_USING_CPLUSPLUS is not set
+# end of C/C++ and POSIX layer
+
+#
+# Network
+#
+# CONFIG_RT_USING_SAL is not set
+# CONFIG_RT_USING_NETDEV is not set
+# CONFIG_RT_USING_LWIP is not set
+# CONFIG_RT_USING_AT is not set
+# end of Network
+
+#
+# Memory protection
+#
+# CONFIG_RT_USING_MEM_PROTECTION is not set
+# CONFIG_RT_USING_HW_STACK_GUARD is not set
+# end of Memory protection
+
+#
+# Utilities
+#
+# CONFIG_RT_USING_RYM is not set
+# CONFIG_RT_USING_ULOG is not set
+# CONFIG_RT_USING_UTEST is not set
+# CONFIG_RT_USING_VAR_EXPORT is not set
+# CONFIG_RT_USING_RESOURCE_ID is not set
+# CONFIG_RT_USING_ADT is not set
+# CONFIG_RT_USING_RT_LINK is not set
+# end of Utilities
+
+# CONFIG_RT_USING_VBUS is not set
+
+#
+# Using USB legacy version
+#
+# CONFIG_RT_USING_USB_HOST is not set
+# CONFIG_RT_USING_USB_DEVICE is not set
+# end of Using USB legacy version
+
+# CONFIG_RT_USING_FDT is not set
+# end of RT-Thread Components
+
+#
+# RT-Thread Utestcases
+#
+# CONFIG_RT_USING_UTESTCASES is not set
+# end of RT-Thread Utestcases
+
+#
+# RT-Thread online packages
+#
+
+#
+# IoT - internet of things
+#
+# CONFIG_PKG_USING_LORAWAN_DRIVER is not set
+# CONFIG_PKG_USING_PAHOMQTT is not set
+# CONFIG_PKG_USING_UMQTT is not set
+# CONFIG_PKG_USING_WEBCLIENT is not set
+# CONFIG_PKG_USING_WEBNET is not set
+# CONFIG_PKG_USING_MONGOOSE is not set
+# CONFIG_PKG_USING_MYMQTT is not set
+# CONFIG_PKG_USING_KAWAII_MQTT is not set
+# CONFIG_PKG_USING_BC28_MQTT is not set
+# CONFIG_PKG_USING_WEBTERMINAL is not set
+# CONFIG_PKG_USING_FREEMODBUS is not set
+# CONFIG_PKG_USING_NANOPB is not set
+# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set
+# CONFIG_PKG_USING_ESP_HOSTED is not set
+
+#
+# Wi-Fi
+#
+
+#
+# Marvell WiFi
+#
+# CONFIG_PKG_USING_WLANMARVELL is not set
+# end of Marvell WiFi
+
+#
+# Wiced WiFi
+#
+# CONFIG_PKG_USING_WLAN_WICED is not set
+# end of Wiced WiFi
+
+# CONFIG_PKG_USING_RW007 is not set
+
+#
+# CYW43012 WiFi
+#
+# CONFIG_PKG_USING_WLAN_CYW43012 is not set
+# end of CYW43012 WiFi
+
+#
+# BL808 WiFi
+#
+# CONFIG_PKG_USING_WLAN_BL808 is not set
+# end of BL808 WiFi
+
+#
+# CYW43439 WiFi
+#
+# CONFIG_PKG_USING_WLAN_CYW43439 is not set
+# end of CYW43439 WiFi
+# end of Wi-Fi
+
+# CONFIG_PKG_USING_COAP is not set
+# CONFIG_PKG_USING_NOPOLL is not set
+# CONFIG_PKG_USING_NETUTILS is not set
+# CONFIG_PKG_USING_CMUX is not set
+# CONFIG_PKG_USING_PPP_DEVICE is not set
+# CONFIG_PKG_USING_AT_DEVICE is not set
+# CONFIG_PKG_USING_ATSRV_SOCKET is not set
+# CONFIG_PKG_USING_WIZNET is not set
+# CONFIG_PKG_USING_ZB_COORDINATOR is not set
+
+#
+# IoT Cloud
+#
+# CONFIG_PKG_USING_ONENET is not set
+# CONFIG_PKG_USING_GAGENT_CLOUD is not set
+# CONFIG_PKG_USING_ALI_IOTKIT is not set
+# CONFIG_PKG_USING_AZURE is not set
+# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set
+# CONFIG_PKG_USING_JIOT-C-SDK is not set
+# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
+# CONFIG_PKG_USING_JOYLINK is not set
+# CONFIG_PKG_USING_IOTSHARP_SDK is not set
+# end of IoT Cloud
+
+# CONFIG_PKG_USING_NIMBLE is not set
+# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
+# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
+# CONFIG_PKG_USING_IPMSG is not set
+# CONFIG_PKG_USING_LSSDP is not set
+# CONFIG_PKG_USING_AIRKISS_OPEN is not set
+# CONFIG_PKG_USING_LIBRWS is not set
+# CONFIG_PKG_USING_TCPSERVER is not set
+# CONFIG_PKG_USING_PROTOBUF_C is not set
+# CONFIG_PKG_USING_DLT645 is not set
+# CONFIG_PKG_USING_QXWZ is not set
+# CONFIG_PKG_USING_SMTP_CLIENT is not set
+# CONFIG_PKG_USING_ABUP_FOTA is not set
+# CONFIG_PKG_USING_LIBCURL2RTT is not set
+# CONFIG_PKG_USING_CAPNP is not set
+# CONFIG_PKG_USING_AGILE_TELNET is not set
+# CONFIG_PKG_USING_NMEALIB is not set
+# CONFIG_PKG_USING_PDULIB is not set
+# CONFIG_PKG_USING_BTSTACK is not set
+# CONFIG_PKG_USING_BT_CYW43012 is not set
+# CONFIG_PKG_USING_CYW43XX is not set
+# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
+# CONFIG_PKG_USING_WAYZ_IOTKIT is not set
+# CONFIG_PKG_USING_MAVLINK is not set
+# CONFIG_PKG_USING_BSAL is not set
+# CONFIG_PKG_USING_AGILE_MODBUS is not set
+# CONFIG_PKG_USING_AGILE_FTP is not set
+# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
+# CONFIG_PKG_USING_RT_LINK_HW is not set
+# CONFIG_PKG_USING_RYANMQTT is not set
+# CONFIG_PKG_USING_RYANW5500 is not set
+# CONFIG_PKG_USING_LORA_PKT_FWD is not set
+# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
+# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
+# CONFIG_PKG_USING_HM is not set
+# CONFIG_PKG_USING_SMALL_MODBUS is not set
+# CONFIG_PKG_USING_NET_SERVER is not set
+# CONFIG_PKG_USING_ZFTP is not set
+# CONFIG_PKG_USING_WOL is not set
+# CONFIG_PKG_USING_ZEPHYR_POLLING is not set
+# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
+# CONFIG_PKG_USING_LHC_MODBUS is not set
+# CONFIG_PKG_USING_QMODBUS is not set
+# CONFIG_PKG_USING_PNET is not set
+# CONFIG_PKG_USING_OPENER is not set
+# CONFIG_PKG_USING_FREEMQTT is not set
+# end of IoT - internet of things
+
+#
+# security packages
+#
+# CONFIG_PKG_USING_MBEDTLS is not set
+# CONFIG_PKG_USING_LIBSODIUM is not set
+# CONFIG_PKG_USING_LIBHYDROGEN is not set
+# CONFIG_PKG_USING_TINYCRYPT is not set
+# CONFIG_PKG_USING_TFM is not set
+# CONFIG_PKG_USING_YD_CRYPTO is not set
+# end of security packages
+
+#
+# language packages
+#
+
+#
+# JSON: JavaScript Object Notation, a lightweight data-interchange format
+#
+# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_LJSON is not set
+# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
+# CONFIG_PKG_USING_RAPIDJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
+# CONFIG_PKG_USING_AGILE_JSMN is not set
+# CONFIG_PKG_USING_PARSON is not set
+# CONFIG_PKG_USING_RYAN_JSON is not set
+# end of JSON: JavaScript Object Notation, a lightweight data-interchange format
+
+#
+# XML: Extensible Markup Language
+#
+# CONFIG_PKG_USING_SIMPLE_XML is not set
+# CONFIG_PKG_USING_EZXML is not set
+# end of XML: Extensible Markup Language
+
+# CONFIG_PKG_USING_LUATOS_SOC is not set
+# CONFIG_PKG_USING_LUA is not set
+# CONFIG_PKG_USING_JERRYSCRIPT is not set
+# CONFIG_PKG_USING_MICROPYTHON is not set
+# CONFIG_PKG_USING_PIKASCRIPT is not set
+# CONFIG_PKG_USING_RTT_RUST is not set
+# end of language packages
+
+#
+# multimedia packages
+#
+
+#
+# LVGL: powerful and easy-to-use embedded GUI library
+#
+# CONFIG_PKG_USING_LVGL is not set
+# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
+# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
+# end of LVGL: powerful and easy-to-use embedded GUI library
+
+#
+# u8g2: a monochrome graphic library
+#
+# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
+# CONFIG_PKG_USING_U8G2 is not set
+# end of u8g2: a monochrome graphic library
+
+# CONFIG_PKG_USING_OPENMV is not set
+# CONFIG_PKG_USING_MUPDF is not set
+# CONFIG_PKG_USING_STEMWIN is not set
+# CONFIG_PKG_USING_WAVPLAYER is not set
+# CONFIG_PKG_USING_TJPGD is not set
+# CONFIG_PKG_USING_PDFGEN is not set
+# CONFIG_PKG_USING_HELIX is not set
+# CONFIG_PKG_USING_AZUREGUIX is not set
+# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
+# CONFIG_PKG_USING_NUEMWIN is not set
+# CONFIG_PKG_USING_MP3PLAYER is not set
+# CONFIG_PKG_USING_TINYJPEG is not set
+# CONFIG_PKG_USING_UGUI is not set
+# CONFIG_PKG_USING_MCURSES is not set
+# CONFIG_PKG_USING_TERMBOX is not set
+# CONFIG_PKG_USING_VT100 is not set
+# CONFIG_PKG_USING_QRCODE is not set
+# CONFIG_PKG_USING_GUIENGINE is not set
+# CONFIG_PKG_USING_3GPP_AMRNB is not set
+# end of multimedia packages
+
+#
+# tools packages
+#
+# CONFIG_PKG_USING_CMBACKTRACE is not set
+# CONFIG_PKG_USING_EASYFLASH is not set
+# CONFIG_PKG_USING_EASYLOGGER is not set
+# CONFIG_PKG_USING_SYSTEMVIEW is not set
+# CONFIG_PKG_USING_SEGGER_RTT is not set
+# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set
+# CONFIG_PKG_USING_RDB is not set
+# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
+# CONFIG_PKG_USING_LOGMGR is not set
+# CONFIG_PKG_USING_ADBD is not set
+# CONFIG_PKG_USING_COREMARK is not set
+# CONFIG_PKG_USING_DHRYSTONE is not set
+# CONFIG_PKG_USING_MEMORYPERF is not set
+# CONFIG_PKG_USING_NR_MICRO_SHELL is not set
+# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
+# CONFIG_PKG_USING_LUNAR_CALENDAR is not set
+# CONFIG_PKG_USING_BS8116A is not set
+# CONFIG_PKG_USING_GPS_RMC is not set
+# CONFIG_PKG_USING_URLENCODE is not set
+# CONFIG_PKG_USING_UMCN is not set
+# CONFIG_PKG_USING_LWRB2RTT is not set
+# CONFIG_PKG_USING_CPU_USAGE is not set
+# CONFIG_PKG_USING_GBK2UTF8 is not set
+# CONFIG_PKG_USING_VCONSOLE is not set
+# CONFIG_PKG_USING_KDB is not set
+# CONFIG_PKG_USING_WAMR is not set
+# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set
+# CONFIG_PKG_USING_LWLOG is not set
+# CONFIG_PKG_USING_ANV_TRACE is not set
+# CONFIG_PKG_USING_ANV_MEMLEAK is not set
+# CONFIG_PKG_USING_ANV_TESTSUIT is not set
+# CONFIG_PKG_USING_ANV_BENCH is not set
+# CONFIG_PKG_USING_DEVMEM is not set
+# CONFIG_PKG_USING_REGEX is not set
+# CONFIG_PKG_USING_MEM_SANDBOX is not set
+# CONFIG_PKG_USING_SOLAR_TERMS is not set
+# CONFIG_PKG_USING_GAN_ZHI is not set
+# CONFIG_PKG_USING_FDT is not set
+# CONFIG_PKG_USING_CBOX is not set
+# CONFIG_PKG_USING_SNOWFLAKE is not set
+# CONFIG_PKG_USING_HASH_MATCH is not set
+# CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
+# CONFIG_PKG_USING_VOFA_PLUS is not set
+# CONFIG_PKG_USING_ZDEBUG is not set
+# CONFIG_PKG_USING_RVBACKTRACE is not set
+# CONFIG_PKG_USING_HPATCHLITE is not set
+# CONFIG_PKG_USING_THREAD_METRIC is not set
+# end of tools packages
+
+#
+# system packages
+#
+
+#
+# enhanced kernel services
+#
+# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
+# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
+# end of enhanced kernel services
+
+# CONFIG_PKG_USING_AUNITY is not set
+
+#
+# acceleration: Assembly language or algorithmic acceleration packages
+#
+# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
+# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
+# CONFIG_PKG_USING_QFPLIB_M3 is not set
+# end of acceleration: Assembly language or algorithmic acceleration packages
+
+#
+# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+#
+# CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_CORE is not set
+# CONFIG_PKG_USING_CMSIS_NN is not set
+# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
+# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
+# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
+
+#
+# Micrium: Micrium software products porting for RT-Thread
+#
+# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
+# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
+# CONFIG_PKG_USING_UC_CRC is not set
+# CONFIG_PKG_USING_UC_CLK is not set
+# CONFIG_PKG_USING_UC_COMMON is not set
+# CONFIG_PKG_USING_UC_MODBUS is not set
+# end of Micrium: Micrium software products porting for RT-Thread
+
+# CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
+# CONFIG_PKG_USING_LITEOS_SDK is not set
+# CONFIG_PKG_USING_TZ_DATABASE is not set
+# CONFIG_PKG_USING_CAIRO is not set
+# CONFIG_PKG_USING_PIXMAN is not set
+# CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_PERF_COUNTER is not set
+# CONFIG_PKG_USING_FILEX is not set
+# CONFIG_PKG_USING_LEVELX is not set
+# CONFIG_PKG_USING_FLASHDB is not set
+# CONFIG_PKG_USING_SQLITE is not set
+# CONFIG_PKG_USING_RTI is not set
+# CONFIG_PKG_USING_DFS_YAFFS is not set
+# CONFIG_PKG_USING_LITTLEFS is not set
+# CONFIG_PKG_USING_DFS_JFFS2 is not set
+# CONFIG_PKG_USING_DFS_UFFS is not set
+# CONFIG_PKG_USING_LWEXT4 is not set
+# CONFIG_PKG_USING_THREAD_POOL is not set
+# CONFIG_PKG_USING_ROBOTS is not set
+# CONFIG_PKG_USING_EV is not set
+# CONFIG_PKG_USING_SYSWATCH is not set
+# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
+# CONFIG_PKG_USING_PLCCORE is not set
+# CONFIG_PKG_USING_RAMDISK is not set
+# CONFIG_PKG_USING_MININI is not set
+# CONFIG_PKG_USING_QBOOT is not set
+# CONFIG_PKG_USING_PPOOL is not set
+# CONFIG_PKG_USING_OPENAMP is not set
+# CONFIG_PKG_USING_RPMSG_LITE is not set
+# CONFIG_PKG_USING_LPM is not set
+# CONFIG_PKG_USING_TLSF is not set
+# CONFIG_PKG_USING_EVENT_RECORDER is not set
+# CONFIG_PKG_USING_ARM_2D is not set
+# CONFIG_PKG_USING_MCUBOOT is not set
+# CONFIG_PKG_USING_TINYUSB is not set
+# CONFIG_PKG_USING_KMULTI_RTIMER is not set
+# CONFIG_PKG_USING_TFDB is not set
+# CONFIG_PKG_USING_QPC is not set
+# CONFIG_PKG_USING_AGILE_UPGRADE is not set
+# CONFIG_PKG_USING_FLASH_BLOB is not set
+# CONFIG_PKG_USING_MLIBC is not set
+# CONFIG_PKG_USING_TASK_MSG_BUS is not set
+# CONFIG_PKG_USING_UART_FRAMEWORK is not set
+# CONFIG_PKG_USING_SFDB is not set
+# CONFIG_PKG_USING_RTP is not set
+# CONFIG_PKG_USING_REB is not set
+# CONFIG_PKG_USING_RMP is not set
+# CONFIG_PKG_USING_R_RHEALSTONE is not set
+# CONFIG_PKG_USING_HEARTBEAT is not set
+# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set
+# end of system packages
+
+#
+# peripheral libraries and drivers
+#
+
+#
+# HAL & SDK Drivers
+#
+
+#
+# STM32 HAL & SDK Drivers
+#
+# CONFIG_PKG_USING_STM32F0_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32F0_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32F1_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32F1_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32F2_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32F2_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32F3_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32F3_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32F4_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32F4_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32F7_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32F7_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32G0_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32G0_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32G4_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32G4_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32H5_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32H5_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32H7_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32H7_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32H7RS_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32H7RS_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32L0_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32L0_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32L4_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32L4_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32L5_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32L5_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32U5_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32U5_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32WB55_SDK is not set
+# CONFIG_PKG_USING_STM32_SDIO is not set
+# CONFIG_PKG_USING_STM32WL_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32WL_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32WB_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32WB_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_STM32MP1_M4_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32MP1_M4_CMSIS_DRIVER is not set
+# end of STM32 HAL & SDK Drivers
+
+#
+# Infineon HAL Packages
+#
+# CONFIG_PKG_USING_INFINEON_CAT1CM0P is not set
+# CONFIG_PKG_USING_INFINEON_CMSIS is not set
+# CONFIG_PKG_USING_INFINEON_CORE_LIB is not set
+# CONFIG_PKG_USING_INFINEON_MTB_HAL_CAT1 is not set
+# CONFIG_PKG_USING_INFINEON_MTB_PDL_CAT1 is not set
+# CONFIG_PKG_USING_INFINEON_RETARGET_IO is not set
+# CONFIG_PKG_USING_INFINEON_CAPSENSE is not set
+# CONFIG_PKG_USING_INFINEON_CSDIDAC is not set
+# CONFIG_PKG_USING_INFINEON_SERIAL_FLASH is not set
+# CONFIG_PKG_USING_INFINEON_USBDEV is not set
+# end of Infineon HAL Packages
+
+# CONFIG_PKG_USING_BLUETRUM_SDK is not set
+# CONFIG_PKG_USING_EMBARC_BSP is not set
+# CONFIG_PKG_USING_ESP_IDF is not set
+
+#
+# Kendryte SDK
+#
+# CONFIG_PKG_USING_K210_SDK is not set
+# CONFIG_PKG_USING_KENDRYTE_SDK is not set
+# end of Kendryte SDK
+
+# CONFIG_PKG_USING_NRF5X_SDK is not set
+# CONFIG_PKG_USING_NRFX is not set
+CONFIG_PKG_USING_RASPBERRYPI_PICO_RP2350_SDK=y
+CONFIG_PKG_RASPBERRYPI_PICO_RP2350_SDK_PATH="/packages/peripherals/hal-sdk/raspberrypi-pico-rp2350-sdk"
+CONFIG_PKG_USING_RASPBERRYPI_PICO_RP2350_SDK_LATEST_VERSION=y
+CONFIG_PKG_RASPBERRYPI_PICO_RP2350_SDK_VER="latest"
+# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
+# CONFIG_PKG_USING_MM32 is not set
+
+#
+# WCH HAL & SDK Drivers
+#
+# CONFIG_PKG_USING_CH32V20x_SDK is not set
+# CONFIG_PKG_USING_CH32V307_SDK is not set
+# end of WCH HAL & SDK Drivers
+
+#
+# AT32 HAL & SDK Drivers
+#
+# CONFIG_PKG_USING_AT32A403A_HAL_DRIVER is not set
+# CONFIG_PKG_USING_AT32A403A_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_AT32A423_HAL_DRIVER is not set
+# CONFIG_PKG_USING_AT32A423_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_AT32F45x_HAL_DRIVER is not set
+# CONFIG_PKG_USING_AT32F45x_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_AT32F402_405_HAL_DRIVER is not set
+# CONFIG_PKG_USING_AT32F402_405_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_AT32F403A_407_HAL_DRIVER is not set
+# CONFIG_PKG_USING_AT32F403A_407_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_AT32F413_HAL_DRIVER is not set
+# CONFIG_PKG_USING_AT32F413_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_AT32F415_HAL_DRIVER is not set
+# CONFIG_PKG_USING_AT32F415_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_AT32F421_HAL_DRIVER is not set
+# CONFIG_PKG_USING_AT32F421_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_AT32F423_HAL_DRIVER is not set
+# CONFIG_PKG_USING_AT32F423_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_AT32F425_HAL_DRIVER is not set
+# CONFIG_PKG_USING_AT32F425_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_AT32F435_437_HAL_DRIVER is not set
+# CONFIG_PKG_USING_AT32F435_437_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_AT32M412_416_HAL_DRIVER is not set
+# CONFIG_PKG_USING_AT32M412_416_CMSIS_DRIVER is not set
+# end of AT32 HAL & SDK Drivers
+
+#
+# HC32 DDL Drivers
+#
+# CONFIG_PKG_USING_HC32F3_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_HC32F3_SERIES_DRIVER is not set
+# CONFIG_PKG_USING_HC32F4_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_HC32F4_SERIES_DRIVER is not set
+# end of HC32 DDL Drivers
+
+#
+# NXP HAL & SDK Drivers
+#
+# CONFIG_PKG_USING_NXP_MCX_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_NXP_MCX_SERIES_DRIVER is not set
+# CONFIG_PKG_USING_NXP_LPC_DRIVER is not set
+# CONFIG_PKG_USING_NXP_LPC55S_DRIVER is not set
+# CONFIG_PKG_USING_NXP_IMX6SX_DRIVER is not set
+# CONFIG_PKG_USING_NXP_IMX6UL_DRIVER is not set
+# CONFIG_PKG_USING_NXP_IMXRT_DRIVER is not set
+# end of NXP HAL & SDK Drivers
+
+#
+# NUVOTON Drivers
+#
+# CONFIG_PKG_USING_NUVOTON_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_NUVOTON_SERIES_DRIVER is not set
+# CONFIG_PKG_USING_NUVOTON_ARM926_LIB is not set
+# end of NUVOTON Drivers
+
+#
+# GD32 Drivers
+#
+# CONFIG_PKG_USING_GD32_ARM_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_GD32_ARM_SERIES_DRIVER is not set
+# end of GD32 Drivers
+# end of HAL & SDK Drivers
+
+#
+# sensors drivers
+#
+# CONFIG_PKG_USING_LSM6DSM is not set
+# CONFIG_PKG_USING_LSM6DSL is not set
+# CONFIG_PKG_USING_LPS22HB is not set
+# CONFIG_PKG_USING_HTS221 is not set
+# CONFIG_PKG_USING_LSM303AGR is not set
+# CONFIG_PKG_USING_BME280 is not set
+# CONFIG_PKG_USING_BME680 is not set
+# CONFIG_PKG_USING_BMA400 is not set
+# CONFIG_PKG_USING_BMI160_BMX160 is not set
+# CONFIG_PKG_USING_SPL0601 is not set
+# CONFIG_PKG_USING_MS5805 is not set
+# CONFIG_PKG_USING_DA270 is not set
+# CONFIG_PKG_USING_DF220 is not set
+# CONFIG_PKG_USING_HSHCAL001 is not set
+# CONFIG_PKG_USING_BH1750 is not set
+# CONFIG_PKG_USING_MPU6XXX is not set
+# CONFIG_PKG_USING_AHT10 is not set
+# CONFIG_PKG_USING_AP3216C is not set
+# CONFIG_PKG_USING_TSL4531 is not set
+# CONFIG_PKG_USING_DS18B20 is not set
+# CONFIG_PKG_USING_DHT11 is not set
+# CONFIG_PKG_USING_DHTXX is not set
+# CONFIG_PKG_USING_GY271 is not set
+# CONFIG_PKG_USING_GP2Y10 is not set
+# CONFIG_PKG_USING_SGP30 is not set
+# CONFIG_PKG_USING_HDC1000 is not set
+# CONFIG_PKG_USING_BMP180 is not set
+# CONFIG_PKG_USING_BMP280 is not set
+# CONFIG_PKG_USING_SHTC1 is not set
+# CONFIG_PKG_USING_BMI088 is not set
+# CONFIG_PKG_USING_HMC5883 is not set
+# CONFIG_PKG_USING_MAX6675 is not set
+# CONFIG_PKG_USING_MAX31855 is not set
+# CONFIG_PKG_USING_TMP1075 is not set
+# CONFIG_PKG_USING_SR04 is not set
+# CONFIG_PKG_USING_CCS811 is not set
+# CONFIG_PKG_USING_PMSXX is not set
+# CONFIG_PKG_USING_RT3020 is not set
+# CONFIG_PKG_USING_MLX90632 is not set
+# CONFIG_PKG_USING_MLX90382 is not set
+# CONFIG_PKG_USING_MLX90393 is not set
+# CONFIG_PKG_USING_MLX90392 is not set
+# CONFIG_PKG_USING_MLX90394 is not set
+# CONFIG_PKG_USING_MLX90397 is not set
+# CONFIG_PKG_USING_MS5611 is not set
+# CONFIG_PKG_USING_MAX31865 is not set
+# CONFIG_PKG_USING_VL53L0X is not set
+# CONFIG_PKG_USING_INA260 is not set
+# CONFIG_PKG_USING_MAX30102 is not set
+# CONFIG_PKG_USING_INA226 is not set
+# CONFIG_PKG_USING_LIS2DH12 is not set
+# CONFIG_PKG_USING_HS300X is not set
+# CONFIG_PKG_USING_ZMOD4410 is not set
+# CONFIG_PKG_USING_ISL29035 is not set
+# CONFIG_PKG_USING_MMC3680KJ is not set
+# CONFIG_PKG_USING_QMP6989 is not set
+# CONFIG_PKG_USING_BALANCE is not set
+# CONFIG_PKG_USING_SHT2X is not set
+# CONFIG_PKG_USING_SHT3X is not set
+# CONFIG_PKG_USING_SHT4X is not set
+# CONFIG_PKG_USING_AD7746 is not set
+# CONFIG_PKG_USING_ADT74XX is not set
+# CONFIG_PKG_USING_MAX17048 is not set
+# CONFIG_PKG_USING_AS7341 is not set
+# CONFIG_PKG_USING_CW2015 is not set
+# CONFIG_PKG_USING_ICM20608 is not set
+# CONFIG_PKG_USING_PAJ7620 is not set
+# CONFIG_PKG_USING_STHS34PF80 is not set
+# CONFIG_PKG_USING_P3T1755 is not set
+# CONFIG_PKG_USING_QMI8658 is not set
+# CONFIG_PKG_USING_ICM20948 is not set
+# end of sensors drivers
+
+#
+# touch drivers
+#
+# CONFIG_PKG_USING_GT9147 is not set
+# CONFIG_PKG_USING_GT1151 is not set
+# CONFIG_PKG_USING_GT917S is not set
+# CONFIG_PKG_USING_GT911 is not set
+# CONFIG_PKG_USING_FT6206 is not set
+# CONFIG_PKG_USING_FT5426 is not set
+# CONFIG_PKG_USING_FT6236 is not set
+# CONFIG_PKG_USING_XPT2046_TOUCH is not set
+# CONFIG_PKG_USING_CST816X is not set
+# CONFIG_PKG_USING_CST812T is not set
+# end of touch drivers
+
+# CONFIG_PKG_USING_REALTEK_AMEBA is not set
+# CONFIG_PKG_USING_BUTTON is not set
+# CONFIG_PKG_USING_PCF8574 is not set
+# CONFIG_PKG_USING_SX12XX is not set
+# CONFIG_PKG_USING_SIGNAL_LED is not set
+# CONFIG_PKG_USING_LEDBLINK is not set
+# CONFIG_PKG_USING_LITTLED is not set
+# CONFIG_PKG_USING_LKDGUI is not set
+# CONFIG_PKG_USING_INFRARED is not set
+# CONFIG_PKG_USING_MULTI_INFRARED is not set
+# CONFIG_PKG_USING_AGILE_BUTTON is not set
+# CONFIG_PKG_USING_AGILE_LED is not set
+# CONFIG_PKG_USING_AT24CXX is not set
+# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set
+# CONFIG_PKG_USING_PCA9685 is not set
+# CONFIG_PKG_USING_ILI9341 is not set
+# CONFIG_PKG_USING_I2C_TOOLS is not set
+# CONFIG_PKG_USING_NRF24L01 is not set
+# CONFIG_PKG_USING_RPLIDAR is not set
+# CONFIG_PKG_USING_AS608 is not set
+# CONFIG_PKG_USING_RC522 is not set
+# CONFIG_PKG_USING_WS2812B is not set
+# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
+# CONFIG_PKG_USING_MULTI_RTIMER is not set
+# CONFIG_PKG_USING_MAX7219 is not set
+# CONFIG_PKG_USING_BEEP is not set
+# CONFIG_PKG_USING_EASYBLINK is not set
+# CONFIG_PKG_USING_PMS_SERIES is not set
+# CONFIG_PKG_USING_CAN_YMODEM is not set
+# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
+# CONFIG_PKG_USING_QLED is not set
+# CONFIG_PKG_USING_AGILE_CONSOLE is not set
+# CONFIG_PKG_USING_LD3320 is not set
+# CONFIG_PKG_USING_WK2124 is not set
+# CONFIG_PKG_USING_LY68L6400 is not set
+# CONFIG_PKG_USING_DM9051 is not set
+# CONFIG_PKG_USING_SSD1306 is not set
+# CONFIG_PKG_USING_QKEY is not set
+# CONFIG_PKG_USING_RS485 is not set
+# CONFIG_PKG_USING_RS232 is not set
+# CONFIG_PKG_USING_NES is not set
+# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
+# CONFIG_PKG_USING_VDEVICE is not set
+# CONFIG_PKG_USING_SGM706 is not set
+# CONFIG_PKG_USING_RDA58XX is not set
+# CONFIG_PKG_USING_LIBNFC is not set
+# CONFIG_PKG_USING_MFOC is not set
+# CONFIG_PKG_USING_TMC51XX is not set
+# CONFIG_PKG_USING_TCA9534 is not set
+# CONFIG_PKG_USING_KOBUKI is not set
+# CONFIG_PKG_USING_ROSSERIAL is not set
+# CONFIG_PKG_USING_MICRO_ROS is not set
+# CONFIG_PKG_USING_MCP23008 is not set
+# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
+# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
+# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set
+# CONFIG_PKG_USING_SOFT_SERIAL is not set
+# CONFIG_PKG_USING_MB85RS16 is not set
+# CONFIG_PKG_USING_RFM300 is not set
+# CONFIG_PKG_USING_IO_INPUT_FILTER is not set
+# CONFIG_PKG_USING_LRF_NV7LIDAR is not set
+# CONFIG_PKG_USING_AIP650 is not set
+# CONFIG_PKG_USING_FINGERPRINT is not set
+# CONFIG_PKG_USING_BT_ECB02C is not set
+# CONFIG_PKG_USING_UAT is not set
+# CONFIG_PKG_USING_ST7789 is not set
+# CONFIG_PKG_USING_VS1003 is not set
+# CONFIG_PKG_USING_X9555 is not set
+# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
+# CONFIG_PKG_USING_BT_MX01 is not set
+# CONFIG_PKG_USING_RGPOWER is not set
+# CONFIG_PKG_USING_BT_MX02 is not set
+# CONFIG_PKG_USING_GC9A01 is not set
+# CONFIG_PKG_USING_IK485 is not set
+# CONFIG_PKG_USING_SERVO is not set
+# CONFIG_PKG_USING_SEAN_WS2812B is not set
+# CONFIG_PKG_USING_IC74HC165 is not set
+# CONFIG_PKG_USING_IST8310 is not set
+# CONFIG_PKG_USING_ST7789_SPI is not set
+# CONFIG_PKG_USING_SPI_TOOLS is not set
+# end of peripheral libraries and drivers
+
+#
+# AI packages
+#
+# CONFIG_PKG_USING_LIBANN is not set
+# CONFIG_PKG_USING_NNOM is not set
+# CONFIG_PKG_USING_ONNX_BACKEND is not set
+# CONFIG_PKG_USING_ONNX_PARSER is not set
+# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
+# CONFIG_PKG_USING_ELAPACK is not set
+# CONFIG_PKG_USING_ULAPACK is not set
+# CONFIG_PKG_USING_QUEST is not set
+# CONFIG_PKG_USING_NAXOS is not set
+# CONFIG_PKG_USING_R_TINYMAIX is not set
+# CONFIG_PKG_USING_LLMCHAT is not set
+# end of AI packages
+
+#
+# Signal Processing and Control Algorithm Packages
+#
+# CONFIG_PKG_USING_APID is not set
+# CONFIG_PKG_USING_FIRE_PID_CURVE is not set
+# CONFIG_PKG_USING_QPID is not set
+# CONFIG_PKG_USING_UKAL is not set
+# CONFIG_PKG_USING_DIGITALCTRL is not set
+# CONFIG_PKG_USING_KISSFFT is not set
+# CONFIG_PKG_USING_CMSIS_DSP is not set
+# end of Signal Processing and Control Algorithm Packages
+
+#
+# miscellaneous packages
+#
+
+#
+# project laboratory
+#
+# end of project laboratory
+
+#
+# samples: kernel and components samples
+#
+# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
+# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
+# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
+# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
+# end of samples: kernel and components samples
+
+#
+# entertainment: terminal games and other interesting software packages
+#
+# CONFIG_PKG_USING_CMATRIX is not set
+# CONFIG_PKG_USING_SL is not set
+# CONFIG_PKG_USING_CAL is not set
+# CONFIG_PKG_USING_ACLOCK is not set
+# CONFIG_PKG_USING_THREES is not set
+# CONFIG_PKG_USING_2048 is not set
+# CONFIG_PKG_USING_SNAKE is not set
+# CONFIG_PKG_USING_TETRIS is not set
+# CONFIG_PKG_USING_DONUT is not set
+# CONFIG_PKG_USING_COWSAY is not set
+# CONFIG_PKG_USING_MORSE is not set
+# CONFIG_PKG_USING_TINYSQUARE is not set
+# end of entertainment: terminal games and other interesting software packages
+
+# CONFIG_PKG_USING_LIBCSV is not set
+# CONFIG_PKG_USING_OPTPARSE is not set
+# CONFIG_PKG_USING_FASTLZ is not set
+# CONFIG_PKG_USING_MINILZO is not set
+# CONFIG_PKG_USING_QUICKLZ is not set
+# CONFIG_PKG_USING_LZMA is not set
+# CONFIG_PKG_USING_RALARAM is not set
+# CONFIG_PKG_USING_MULTIBUTTON is not set
+# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
+# CONFIG_PKG_USING_CANFESTIVAL is not set
+# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_MINIZIP is not set
+# CONFIG_PKG_USING_HEATSHRINK is not set
+# CONFIG_PKG_USING_DSTR is not set
+# CONFIG_PKG_USING_TINYFRAME is not set
+# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
+# CONFIG_PKG_USING_UPACKER is not set
+# CONFIG_PKG_USING_UPARAM is not set
+# CONFIG_PKG_USING_HELLO is not set
+# CONFIG_PKG_USING_VI is not set
+# CONFIG_PKG_USING_KI is not set
+# CONFIG_PKG_USING_ARMv7M_DWT is not set
+# CONFIG_PKG_USING_CRCLIB is not set
+# CONFIG_PKG_USING_LIBCRC is not set
+# CONFIG_PKG_USING_LWGPS is not set
+# CONFIG_PKG_USING_STATE_MACHINE is not set
+# CONFIG_PKG_USING_DESIGN_PATTERN is not set
+# CONFIG_PKG_USING_CONTROLLER is not set
+# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
+# CONFIG_PKG_USING_MFBD is not set
+# CONFIG_PKG_USING_SLCAN2RTT is not set
+# CONFIG_PKG_USING_SOEM is not set
+# CONFIG_PKG_USING_QPARAM is not set
+# CONFIG_PKG_USING_CorevMCU_CLI is not set
+# CONFIG_PKG_USING_DRMP is not set
+# end of miscellaneous packages
+
+#
+# Arduino libraries
+#
+# CONFIG_PKG_USING_RTDUINO is not set
+
+#
+# Projects and Demos
+#
+# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set
+# CONFIG_PKG_USING_ARDUINO_SKETCH_LOADER_DEMO is not set
+# CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set
+# CONFIG_PKG_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD is not set
+# CONFIG_PKG_USING_ARDUINO_NINEINONE_SENSOR_SHIELD is not set
+# CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set
+# CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set
+# end of Projects and Demos
+
+#
+# Sensors
+#
+# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSORLAB is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31855 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS0 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP280 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADT7410 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME680 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9808 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4728 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA219 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR390 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL345 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DHT is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9600 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM6DS is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO055 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX1704X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMC56X3 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90393 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90395 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ICM20X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DPS310 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTS221 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT4X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT31 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL343 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME280 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS726X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AMG88XX is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2320 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2315 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR329_LTR303 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085_UNIFIED is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183_UNIFIED is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP3XX is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MS8607 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3MDL is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90640 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMA8451 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MSA301 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL115A2 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X_RVC is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS2MDL is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303DLH_MAG is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LC709203F is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CAP1188 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CCS811 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_NAU7802 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS331 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS2X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS35HW is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303_ACCEL is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3DH is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8591 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL3115A2 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPR121 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPRLS is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPU6050 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCT2075 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PM25AQI is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_EMC2101 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXAS21002C is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SCD30 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXOS8700 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HMC5883_UNIFIED is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP30 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP006 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TLA202X is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCS34725 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI7021 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI1145 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP40 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHTC3 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HDC1000 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU21DF is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS7341 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU31D is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA260 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP007_LIBRARY is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_L3GD20 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP117 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSC2007 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2561 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2591_LIBRARY is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VCNL4040 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6070 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6075 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML7700 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_LIS3DHTR is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_DHT is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL335 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL345 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_BME280 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_BMP280 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_H3LIS331DL is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_MMA7660 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_TSL2561 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_PAJ7620 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_VL53L0X is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_ITG3200 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_SHT31 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_HP20X is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_DRV2605L is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_BBM150 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_HMC5883L is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_LSM303DLH is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_TCS3414CS is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_MP503 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_BMP085 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_HIGHTEMP is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_VEML6070 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_SI1145 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_SHT35 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_AT42QT1070 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set
+# CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set
+# CONFIG_PKG_USING_ARDUINO_JARZEBSKI_MPU6050 is not set
+# end of Sensors
+
+#
+# Display
+#
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
+# CONFIG_PKG_USING_ARDUINO_U8G2 is not set
+# CONFIG_PKG_USING_ARDUINO_TFT_ESPI is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set
+# CONFIG_PKG_USING_SEEED_TM1637 is not set
+# end of Display
+
+#
+# Timing
+#
+# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
+# CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
+# CONFIG_PKG_USING_ARDUINO_TICKER is not set
+# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
+# end of Timing
+
+#
+# Data Processing
+#
+# CONFIG_PKG_USING_ARDUINO_KALMANFILTER is not set
+# CONFIG_PKG_USING_ARDUINO_ARDUINOJSON is not set
+# CONFIG_PKG_USING_ARDUINO_TENSORFLOW_LITE_MICRO is not set
+# CONFIG_PKG_USING_ARDUINO_RUNNINGMEDIAN is not set
+# end of Data Processing
+
+#
+# Data Storage
+#
+
+#
+# Communication
+#
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PN532 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI4713 is not set
+# end of Communication
+
+#
+# Device Control
+#
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set
+# CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set
+# end of Device Control
+
+#
+# Other
+#
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set
+# end of Other
+
+#
+# Signal IO
+#
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BUSIO is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCA8418 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP23017 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADS1X15 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AW9523 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP3008 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4725 is not set
+# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BD3491FS is not set
+# end of Signal IO
+
+#
+# Uncategorized
+#
+# end of Arduino libraries
+# end of RT-Thread online packages
+
+#
+# Hardware Drivers Config
+#
+
+#
+# Onboard Peripheral Drivers
+#
+# CONFIG_BSP_USING_ARDUINO is not set
+# CONFIG_BSP_USING_LVGL is not set
+# end of Onboard Peripheral Drivers
+
+#
+# On-chip Peripheral Drivers
+#
+CONFIG_BSP_USING_PIN=y
+CONFIG_BSP_USING_UART=y
+CONFIG_BSP_USING_UART0=y
+CONFIG_BSP_UART0_TX_PIN_0=y
+# CONFIG_BSP_UART0_TX_PIN_12 is not set
+# CONFIG_BSP_UART0_TX_PIN_16 is not set
+CONFIG_BSP_UART0_TX_PIN=0
+CONFIG_BSP_UART0_RX_PIN_1=y
+# CONFIG_BSP_UART0_RX_PIN_13 is not set
+# CONFIG_BSP_UART0_RX_PIN_17 is not set
+CONFIG_BSP_UART0_RX_PIN=1
+# CONFIG_BSP_USING_UART1 is not set
+# CONFIG_BSP_USING_SOFT_I2C is not set
+# CONFIG_BSP_USING_SOFT_SPI is not set
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_WDT is not set
+# CONFIG_BSP_USING_RTC is not set
+# CONFIG_BSP_USING_SPI is not set
+# CONFIG_BSP_USING_PWM is not set
+# CONFIG_BSP_USING_HWTIMER is not set
+# CONFIG_BSP_USING_I2C is not set
+# CONFIG_BSP_USING_ON_CHIP_FLASH is not set
+# end of On-chip Peripheral Drivers
+# end of Hardware Drivers Config

+ 44 - 0
bsp/raspberry-pico/RP2350/.gitignore

@@ -0,0 +1,44 @@
+*.pyc
+*.map
+*.dblite
+*.uf2
+*.elf
+*.bin
+*.hex
+*.axf
+*.exe
+*.pdb
+*.idb
+*.ilk
+*.old
+build
+Debug
+documentation/html
+packages/
+*~
+*.o
+*.obj
+*.out
+*.bak
+*.dep
+*.lib
+*.i
+*.d
+.DS_Stor*
+.config 3
+.config 4
+.config 5
+Midea-X1
+*.uimg
+GPATH
+GRTAGS
+GTAGS
+.vscode
+JLinkLog.txt
+JLinkSettings.ini
+DebugConfig/
+RTE/
+settings/
+*.uvguix*
+cconfig.h
+!.vscode

+ 26 - 0
bsp/raspberry-pico/RP2350/.vscode/launch.json

@@ -0,0 +1,26 @@
+{
+    "version": "0.2.0",
+    "configurations": [
+        
+        {
+            "name": "Pico Debug",
+            "cwd": "${workspaceRoot}",
+            "executable": "rtthread-pico.elf",
+            "request": "launch",
+            "type": "cortex-debug",
+            "servertype": "openocd",
+            "gdbPath" : "gdb-multiarch",
+            "device": "RP2350",
+            "configFiles": [
+                "interface/cmsis-dap.cfg",
+                "target/rp2350.cfg"
+            ],
+            "svdFile": "packages/raspberrypi-pico-rp2350-sdk-latest/src/rp2350/hardware_regs/RP2350.svd",
+            "runToEntryPoint": "platform_entry",
+            "postRestartCommands": [
+                "break platform_entry",
+                "continue"
+            ]
+        }
+    ]
+}

+ 25 - 0
bsp/raspberry-pico/RP2350/.vscode/settings.json

@@ -0,0 +1,25 @@
+{
+    // These settings tweaks to the cmake plugin will ensure
+    // that you debug using cortex-debug instead of trying to launch
+    // a Pico binary on the host
+    "cmake.statusbar.advanced": {
+        "debug": {
+            "visibility": "hidden"
+        },
+        "launch": {
+            "visibility": "hidden"
+        },
+        "build": {
+            "visibility": "hidden"
+        },
+        "buildTarget": {
+            "visibility": "hidden"
+        }
+    },
+    "cmake.buildBeforeRun": true,
+    "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
+    "files.associations": {
+        "functional": "c"
+    },
+    "cortex-debug.variableUseNaturalFormat": false
+}

+ 21 - 0
bsp/raspberry-pico/RP2350/Kconfig

@@ -0,0 +1,21 @@
+mainmenu "RT-Thread Configuration"
+
+BSP_DIR := .
+
+RTT_DIR := ../../..
+
+PKGS_DIR := packages
+
+config SOC_RP2350
+    bool
+    select ARCH_ARM_CORTEX_M33
+    select ARCH_ARM_CORTEX_SECURE
+    select RT_USING_COMPONENTS_INIT
+    select RT_USING_USER_MAIN
+    select SOC_SERIES_RP2350_PICO
+    select PKG_USING_RASPBERRYPI_PICO_RP2350_SDK
+    default y
+
+source "$(RTT_DIR)/Kconfig"
+osource "$PKGS_DIR/Kconfig"
+rsource "board/Kconfig"

+ 83 - 0
bsp/raspberry-pico/RP2350/README.md

@@ -0,0 +1,83 @@
+# Raspberry RP2350
+
+## 产品介绍
+
+
+
+<img src="./figures/rp2350.png" alt="image-20250804204324351" style="zoom:50%;" />
+
+
+
+- 高性能树莓派RP2350芯片
+  - 双核双架构设计,可选择Arm Cortex-M33或Hazard3 RISC-V内核
+  - 150MHz主频
+  - 520KB RAM,2MB flash
+- 高度集成,超小尺寸
+  - 尺寸仅25*20.5mm
+  - 集成锂电池充电管理、电池电压监测
+  - 引出11个IO
+- 低功耗,休眠功耗仅25uA
+- 支持C/C++、MicroPython编程
+- 单面布局,半孔工艺,可用于贴片生产
+
+
+
+## 程序烧写
+
+- 注意:当前bsp需要在linux环境下才能编译
+
+- 测试环境:Ubuntu21
+
+### Step 1: 下载sdk
+
+```bash
+menuconfig
+pkgs --update
+```
+
+### Step 2: 编译
+
+```bash
+scons -c
+scons
+```
+
+**gcc version >= 6.x.x**
+
+### Step 3: 烧写
+
+编译会生成uf2文件
+
+按住boot键,再短按重启进入u盘烧写模式,此时将rp2350插入电脑会显示一个u盘
+
+![elf2uf2](figures/elf2uf2.png)
+
+- 复制 rtthread-pico.uf2 文件到u盘中
+- 自动重启运行
+
+或者进入boot模式后输入以下命令烧写
+
+```bash
+picotool load rtthread-pico.uf2
+picotool reboot
+```
+
+## 运行结果
+
+输出的信息如下
+
+```bash
+ \ | /
+- RT -     Thread Operating System
+ / | \     4.0.3 build Jan 28 2021
+ 2006 - 2021 Copyright by rt-thread team
+Hello, RT-Thread!
+msh >
+```
+
+## 支持的外设
+
+| Drive | Support | Remark  |
+| ----- | ------- | ------- |
+| UART  | Support | UART0/1 |
+| GPIO  | Support | 0-29    |

+ 12 - 0
bsp/raspberry-pico/RP2350/SConscript

@@ -0,0 +1,12 @@
+from building import *
+
+cwd  = GetCurrentDir()
+objs = []
+list = os.listdir(cwd)
+
+for d in list:
+    path = os.path.join(cwd, d)
+    if os.path.isfile(os.path.join(path, 'SConscript')):
+        objs = objs + SConscript(os.path.join(d, 'SConscript'))
+
+Return('objs')

+ 42 - 0
bsp/raspberry-pico/RP2350/SConstruct

@@ -0,0 +1,42 @@
+import os
+import sys
+import rtconfig
+
+if os.getenv('RTT_ROOT'):
+    RTT_ROOT = os.getenv('RTT_ROOT')
+else:
+    RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
+
+sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
+from building import *
+
+TARGET = 'rtthread-pico.' + rtconfig.TARGET_EXT
+
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+    AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+    CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
+    CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+    AR = rtconfig.AR, ARFLAGS = '-rc',
+    LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
+env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
+
+Export('RTT_ROOT')
+Export('rtconfig')
+
+# prepare building environment
+objs = PrepareBuilding(env, RTT_ROOT)
+
+ocwd = os.getcwd()
+os.chdir('packages/raspberrypi-pico-rp2350-sdk-latest')
+print("Enter " + os.getcwd())
+if GetOption('clean'):
+    os.system("scons -c")
+else:
+    os.system("scons")
+os.chdir(ocwd)
+
+objs.extend(SConscript(os.path.join(os.getcwd(), '..', 'Drivers', 'SConscript')))
+
+# make a building
+DoBuilding(TARGET, objs)

+ 15 - 0
bsp/raspberry-pico/RP2350/applications/SConscript

@@ -0,0 +1,15 @@
+from building import *
+import os
+
+cwd     = GetCurrentDir()
+CPPPATH = [cwd]
+src     = Glob('*.c')
+
+group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
+
+list = os.listdir(cwd)
+for item in list:
+    if os.path.isfile(os.path.join(cwd, item, 'SConscript')):
+        group = group + SConscript(os.path.join(item, 'SConscript'))
+
+Return('group')

+ 30 - 0
bsp/raspberry-pico/RP2350/applications/main.c

@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author         Notes
+ * 2025-08-04     hydevcode       first version
+ */
+#include "rtthread.h"
+#include <rtdevice.h>
+
+#define LED_PIN 25
+
+int main() {
+
+    rt_kprintf("Hello, RT-Thread!\n");
+
+    rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);
+
+    while (1)
+    {
+        rt_pin_write(LED_PIN, 1);
+        rt_thread_mdelay(1000);
+        rt_pin_write(LED_PIN, 0);
+        rt_thread_mdelay(1000);
+    }
+    return 0;
+
+}

+ 813 - 0
bsp/raspberry-pico/RP2350/board/Kconfig

@@ -0,0 +1,813 @@
+menu "Hardware Drivers Config"
+
+menu "Onboard Peripheral Drivers"
+
+    config BSP_USING_ARDUINO
+        bool "Compatible with Arduino Ecosystem (RTduino)"
+        select PKG_USING_RTDUINO
+        select BSP_USING_UART1
+        select BSP_USING_GPIO
+        select BSP_USING_ADC
+        select BSP_USING_ADC0
+        select BSP_USING_ADC1
+        select BSP_USING_ADC2
+        select BSP_USING_PWM
+        select BSP_USING_PWM0
+        select BSP_USING_PWM1
+        select BSP_USING_PWM2
+        select BSP_USING_PWM3
+        select BSP_USING_PWM4
+        select BSP_USING_PWM5
+        select BSP_USING_PWM6
+        select BSP_USING_PWM7
+        select BSP_USING_I2C
+        select BSP_USING_I2C0
+        select BSP_USING_SPI
+        select BSP_USING_SPI0
+        select RTDUINO_USING_WIRE
+        select RTDUINO_USING_SPI
+        imply RTDUINO_USING_SERVO
+        default n
+
+    config BSP_USING_LVGL
+        bool "Enable LVGL for LCD"
+        select PKG_USING_LVGL
+        select BSP_USING_SPI_LCD
+        default n
+
+    config BSP_USING_LVGL_DEMO
+        depends on BSP_USING_LVGL
+        bool "Enable LVGL demo"
+        select PKG_USING_LV_MUSIC_DEMO
+        default y
+
+endmenu
+
+menu "On-chip Peripheral Drivers"
+
+    config BSP_USING_PIN
+        bool "Enable GPIO"
+        select RT_USING_PIN
+        default y
+
+    menuconfig BSP_USING_UART
+        bool "Enable UART"
+        select RT_USING_SERIAL
+        default y
+        if BSP_USING_UART
+            config BSP_USING_UART0
+                bool "Enable UART0"
+                default y
+            if BSP_USING_UART0
+                choice
+                    prompt "uart0 tx pin number (GP)"
+                    depends on BSP_USING_UART0
+                    default BSP_UART0_TX_PIN_0
+                    config BSP_UART0_TX_PIN_0
+                        bool "0"
+                    config BSP_UART0_TX_PIN_12
+                        bool "12"
+                    config BSP_UART0_TX_PIN_16
+                        bool "16"
+                endchoice
+                config BSP_UART0_TX_PIN
+                    int
+                    default 0 if BSP_UART0_TX_PIN_0
+                    default 12 if BSP_UART0_TX_PIN_12
+                    default 16 if BSP_UART0_TX_PIN_16
+
+                choice
+                    prompt "uart0 rx pin number (GP)"
+                    depends on BSP_USING_UART0
+                    default BSP_UART0_RX_PIN_1
+                    config BSP_UART0_RX_PIN_1
+                        bool "1"
+                    config BSP_UART0_RX_PIN_13
+                        bool "13"
+                    config BSP_UART0_RX_PIN_17
+                        bool "17"
+                endchoice
+                config BSP_UART0_RX_PIN
+                    int
+                    default 1 if BSP_UART0_RX_PIN_1
+                    default 13 if BSP_UART0_RX_PIN_13
+                    default 17 if BSP_UART0_RX_PIN_17
+            endif
+
+            config BSP_USING_UART1
+                bool "Enable UART1"
+                default n
+            if BSP_USING_UART1
+                choice
+                    prompt "uart1 tx pin number (GP)"
+                    depends on BSP_USING_UART1
+                    default BSP_UART1_TX_PIN_8
+                    config BSP_UART1_TX_PIN_4
+                        bool "4"
+                    config BSP_UART1_TX_PIN_8
+                        bool "8"
+                endchoice
+                config BSP_UART1_TX_PIN
+                    int
+                    default 4 if BSP_UART1_TX_PIN_4
+                    default 8 if BSP_UART1_TX_PIN_8
+
+                choice
+                    prompt "uart1 rx pin number (GP)"
+                    depends on BSP_USING_UART1
+                    default BSP_UART1_RX_PIN_9
+                    config BSP_UART1_RX_PIN_5
+                        bool "5"
+                    config BSP_UART1_RX_PIN_9
+                        bool "9"
+                endchoice
+                config BSP_UART1_RX_PIN
+                    int
+                    default 5 if BSP_UART1_RX_PIN_5
+                    default 9 if BSP_UART1_RX_PIN_9
+            endif
+        endif
+
+    menuconfig BSP_USING_SOFT_I2C
+        bool "Enable I2C BUS (software simulation)"
+        default n
+        select RT_USING_I2C
+        select RT_USING_I2C_BITOPS
+        select RT_USING_PIN
+        if BSP_USING_SOFT_I2C
+            config BSP_USING_SOFT_I2C1
+                bool "Enable I2C1 Bus (software simulation)"
+                default n
+                if BSP_USING_SOFT_I2C1
+                    config BSP_SOFT_I2C1_SCL_PIN
+                        int "i2c1 scl pin number (GP)"
+                        range 0 28
+                        default 2
+                    config BSP_SOFT_I2C1_SDA_PIN
+                        int "I2C1 sda pin number (GP)"
+                        range 0 28
+                        default 3
+                endif
+        endif
+
+    menuconfig BSP_USING_SOFT_SPI
+        bool "Enable soft SPI BUS"
+        default n
+        select RT_USING_PIN
+        select RT_USING_SOFT_SPI
+        select RT_USING_SPI
+        if BSP_USING_SOFT_SPI
+            config BSP_USING_SOFT_SPI0
+                bool "Enable SPI0 Bus (software simulation)"
+                default n
+                if BSP_USING_SOFT_SPI0
+                    config BSP_S_SPI0_SCK_PIN
+                        int "spi0 SCK pin number (GP)"
+                        range 0 28
+                        default 6
+                    config BSP_S_SPI0_MOSI_PIN
+                        int "spi0 MOSI pin number (GP)"
+                        range 0 28
+                        default 7
+                    config BSP_S_SPI0_MISO_PIN
+                        int "spi0 MISO pin number (GP)"
+                        range 0 28
+                        default 4
+                endif
+            config BSP_USING_SOFT_SPI1
+                bool "Enable SPI1 Bus (software simulation)"
+                default n
+                if BSP_USING_SOFT_SPI1
+                    config BSP_S_SPI1_SCK_PIN
+                        int "spi1 SCK pin number (GP)"
+                        range 0 28
+                        default 10
+                    config BSP_S_SPI1_MOSI_PIN
+                        int "spi1 MOSI pin number (GP)"
+                        range 0 28
+                        default 11
+                    config BSP_S_SPI1_MISO_PIN
+                        int "spi1 MISO pin number (GP)"
+                        range 0 28
+                        default 12
+                endif
+        endif
+
+    menuconfig BSP_USING_ADC
+        bool "Enable ADC"
+        default n
+        select RT_USING_ADC
+        if BSP_USING_ADC
+            config BSP_USING_ADC0
+                bool "Enable ADC0 (GP26)"
+                default n
+            config BSP_USING_ADC1
+                bool "Enable ADC1 (GP27)"
+                default n
+            config BSP_USING_ADC2
+                bool "Enable ADC2 (GP28)"
+                default n
+        endif
+
+    config BSP_USING_WDT
+        bool "Enable WDT"
+        select RT_USING_WDT
+        default n
+
+
+    config BSP_USING_RTC
+        bool "Enable RTC"
+        select RT_USING_RTC
+        default n
+
+    menuconfig BSP_USING_SPI
+        bool "Enable SPI"
+        select RT_USING_SPI
+        default n
+
+        if BSP_USING_SPI
+            config BSP_USING_SPI0
+                bool "Enable SPI0"
+                default n
+            if BSP_USING_SPI0
+                choice
+                    prompt "spi0 MOSI pin number (GP)"
+                    depends on BSP_USING_SPI0
+                    default BSP_SPI0_MOSI_PIN_19 if BSP_USING_ARDUINO
+                    config BSP_SPI0_MOSI_PIN_19
+                        bool "19"
+                    config BSP_SPI0_MOSI_PIN_3
+                        bool "3"
+                    config BSP_SPI0_MOSI_PIN_7
+                        bool "7"
+                endchoice
+                config BSP_SPI0_MOSI_PIN
+                    int
+                    default 3 if BSP_SPI0_MOSI_PIN_3
+                    default 7 if BSP_SPI0_MOSI_PIN_7
+                    default 19 if BSP_SPI0_MOSI_PIN_19
+
+                choice
+                    prompt "spi0 MISO pin number (GP)"
+                    depends on BSP_USING_SPI0
+                    default BSP_SPI0_MISO_PIN_16 if BSP_USING_ARDUINO
+                    config BSP_SPI0_MISO_PIN_16
+                        bool "16"
+                    config BSP_SPI0_MISO_PIN_0
+                        bool "0"
+                    config BSP_SPI0_MISO_PIN_4
+                        bool "4"
+                endchoice
+                config BSP_SPI0_MISO_PIN
+                    int
+                    default 0 if BSP_SPI0_MISO_PIN_0
+                    default 4 if BSP_SPI0_MISO_PIN_4
+                    default 16 if BSP_SPI0_MISO_PIN_16
+
+                choice
+                    prompt "spi0 SCK pin number (GP)"
+                    depends on BSP_USING_SPI0
+                    default BSP_SPI0_SCK_PIN_18 if BSP_USING_ARDUINO
+                    config BSP_SPI0_SCK_PIN_18
+                        bool "18"
+                    config BSP_SPI0_SCK_PIN_2
+                        bool "2"
+                    config BSP_SPI0_SCK_PIN_6
+                        bool "6"
+                endchoice
+                config BSP_SPI0_SCK_PIN
+                    int
+                    default 2 if BSP_SPI0_SCK_PIN_2
+                    default 6 if BSP_SPI0_SCK_PIN_6
+                    default 18 if BSP_SPI0_SCK_PIN_18
+
+                choice
+                    prompt "spi0 CS pin number (GP)"
+                    depends on BSP_USING_SPI0
+                    default BSP_SPI0_CS_PIN_17 if BSP_USING_ARDUINO
+                    config BSP_SPI0_CS_PIN_17
+                        bool "17"
+                    config BSP_SPI0_CS_PIN_1
+                        bool "1"
+                    config BSP_SPI0_CS_PIN_5
+                        bool "5"
+                endchoice
+                config BSP_SPI0_CS_PIN
+                    int
+                    default 1 if BSP_SPI0_CS_PIN_1
+                    default 5 if BSP_SPI0_CS_PIN_5
+                    default 17 if BSP_SPI0_CS_PIN_17
+            endif
+
+            config BSP_USING_SPI1
+                bool "Enable SPI1"
+                default n
+            if BSP_USING_SPI1
+                choice
+                    prompt "spi1 MOSI pin number (GP)"
+                    depends on BSP_USING_SPI1
+                    default BSP_SPI1_MOSI_PIN_15 if BSP_USING_ARDUINO
+                    config BSP_SPI1_MOSI_PIN_15
+                        bool "15"
+                    config BSP_SPI1_MOSI_PIN_11
+                        bool "11"
+                endchoice
+                config BSP_SPI1_MOSI_PIN
+                    int
+                    default 11 if BSP_SPI1_MOSI_PIN_11
+                    default 15 if BSP_SPI1_MOSI_PIN_15
+
+                choice
+                    prompt "spi1 MISO pin number (GP)"
+                    depends on BSP_USING_SPI1
+                    default BSP_SPI1_MISO_PIN_12 if BSP_USING_ARDUINO
+                    config BSP_SPI1_MISO_PIN_12
+                        bool "12"
+                    config BSP_SPI1_MISO_PIN_8
+                        bool "8"
+                endchoice
+                config BSP_SPI1_MISO_PIN
+                    int
+                    default 8 if BSP_SPI1_MISO_PIN_8
+                    default 12 if BSP_SPI1_MISO_PIN_12
+
+                choice
+                    prompt "spi1 SCK pin number (GP)"
+                    depends on BSP_USING_SPI1
+                    default BSP_SPI1_SCK_PIN_14 if BSP_USING_ARDUINO
+                    config BSP_SPI1_SCK_PIN_14
+                        bool "14"
+                    config BSP_SPI1_SCK_PIN_10
+                        bool "10"
+                endchoice
+                config BSP_SPI1_SCK_PIN
+                    int
+                    default 10 if BSP_SPI1_SCK_PIN_10
+                    default 14 if BSP_SPI1_SCK_PIN_14
+
+                choice
+                    prompt "spi1 CS pin number (GP)"
+                    depends on BSP_USING_SPI1
+                    default BSP_SPI1_CS_PIN_13 if BSP_USING_ARDUINO
+                    config BSP_SPI1_CS_PIN_13
+                        bool "13"
+                    config BSP_SPI1_CS_PIN_9
+                        bool "9"
+                endchoice
+                config BSP_SPI1_CS_PIN
+                    int
+                    default 9 if BSP_SPI1_CS_PIN_9
+                    default 13 if BSP_SPI1_CS_PIN_13
+            endif
+        endif
+
+    menuconfig BSP_USING_PWM
+        bool "Enable PWM(A:CH_0 B:CH_1)"
+        default n
+        select RT_USING_PWM
+        if BSP_USING_PWM
+            config BSP_USING_PWM0
+                bool "Enable PWM0"
+                default n
+                if BSP_USING_PWM0
+                    choice
+                        prompt "pwm slice A pin number (GP)"
+                        depends on BSP_USING_PWM0
+                        default BSP_PWM0_A_PIN_16
+                        config BSP_PWM0_A_PIN_0
+                            bool "0"
+                        config BSP_PWM0_A_PIN_16
+                            bool "16"
+                    endchoice
+                    config BSP_PWM0_A_PIN
+                        int
+                        default 0 if BSP_PWM0_A_PIN_0
+                        default 16 if BSP_PWM0_A_PIN_16
+                    choice
+                        prompt "pwm slice B pin number (GP)"
+                        depends on BSP_USING_PWM0
+                        default BSP_PWM0_B_PIN_17
+                        config BSP_PWM0_B_PIN_1
+                            bool "1"
+                        config BSP_PWM0_B_PIN_17
+                            bool "17"
+                    endchoice
+                    config BSP_PWM0_B_PIN
+                        int
+                        default 1 if BSP_PWM0_B_PIN_1
+                        default 17 if BSP_PWM0_B_PIN_17
+                    config BSP_PWM0_A_ALL
+                        bool "pwm slice use all A pin"
+                        default n
+                    config BSP_PWM0_B_ALL
+                        bool "pwm slice use all B pin"
+                        default n
+                endif
+
+            config BSP_USING_PWM1
+                bool "Enable PWM1"
+                default n
+                if BSP_USING_PWM1
+                    choice
+                        prompt "pwm slice A pin number (GP)"
+                        depends on BSP_USING_PWM1
+                        default BSP_PWM1_A_PIN_18
+                        config BSP_PWM1_A_PIN_2
+                            bool "2"
+                        config BSP_PWM1_A_PIN_18
+                            bool "18"
+                    endchoice
+                    config BSP_PWM1_A_PIN
+                        int
+                        default 2 if BSP_PWM1_A_PIN_2
+                        default 18 if BSP_PWM1_A_PIN_18
+                    choice
+                        prompt "pwm slice B pin number (GP)"
+                        depends on BSP_USING_PWM1
+                        default BSP_PWM1_B_PIN_19
+                        config BSP_PWM1_B_PIN_3
+                            bool "3"
+                        config BSP_PWM1_B_PIN_19
+                            bool "19"
+                    endchoice
+                    config BSP_PWM1_B_PIN
+                        int
+                        default 3 if BSP_PWM1_B_PIN_3
+                        default 19 if BSP_PWM1_B_PIN_19
+                    config BSP_PWM1_A_ALL
+                        bool "pwm slice use all A pin"
+                        default n
+                    config BSP_PWM1_B_ALL
+                        bool "pwm slice use all B pin"
+                        default n
+                endif
+
+            config BSP_USING_PWM2
+                bool "Enable PWM2"
+                default n
+                if BSP_USING_PWM2
+                    choice
+                        prompt "pwm slice A pin number (GP)"
+                        depends on BSP_USING_PWM2
+                        default BSP_PWM2_A_PIN_20
+                        config BSP_PWM2_A_PIN_4
+                            bool "4"
+                        config BSP_PWM2_A_PIN_20
+                            bool "20"
+                    endchoice
+                    config BSP_PWM2_A_PIN
+                        int
+                        default 4 if BSP_PWM2_A_PIN_4
+                        default 20 if BSP_PWM2_A_PIN_20
+                    choice
+                        prompt "pwm slice B pin number (GP)"
+                        depends on BSP_USING_PWM2
+                        default BSP_PWM2_B_PIN_21
+                        config BSP_PWM2_B_PIN_5
+                            bool "5"
+                        config BSP_PWM2_B_PIN_21
+                            bool "21"
+                    endchoice
+                    config BSP_PWM2_B_PIN
+                        int
+                        default 5 if BSP_PWM2_B_PIN_5
+                        default 21 if BSP_PWM2_B_PIN_21
+                    config BSP_PWM2_A_ALL
+                        bool "pwm slice use all A pin"
+                        default n
+                    config BSP_PWM2_B_ALL
+                        bool "pwm slice use all B pin"
+                        default n
+                endif
+
+            config BSP_USING_PWM3
+                bool "Enable PWM3"
+                default n
+                if BSP_USING_PWM3
+                    choice
+                        prompt "pwm slice A pin number (GP)"
+                        depends on BSP_USING_PWM3
+                        default BSP_PWM3_A_PIN_22
+                        config BSP_PWM3_A_PIN_6
+                            bool "6"
+                        config BSP_PWM3_A_PIN_22
+                            bool "22"
+                    endchoice
+                    config BSP_PWM3_A_PIN
+                        int
+                        default 6 if BSP_PWM3_A_PIN_6
+                        default 22 if BSP_PWM3_A_PIN_22
+                    choice
+                        prompt "pwm slice B pin number (GP)"
+                        depends on BSP_USING_PWM3
+                        default BSP_PWM3_B_PIN_23
+                        config BSP_PWM3_B_PIN_7
+                            bool "7"
+                        config BSP_PWM3_B_PIN_23
+                            bool "23"
+                    endchoice
+                    config BSP_PWM3_B_PIN
+                        int
+                        default 7 if BSP_PWM3_B_PIN_7
+                        default 23 if BSP_PWM3_B_PIN_23
+                    config BSP_PWM3_A_ALL
+                        bool "pwm slice use all A pin"
+                        default n
+                    config BSP_PWM3_B_ALL
+                        bool "pwm slice use all B pin"
+                        default n
+                endif
+
+            config BSP_USING_PWM4
+                bool "Enable PWM4"
+                default n
+                if BSP_USING_PWM4
+                    choice
+                        prompt "pwm slice A pin number (GP)"
+                        depends on BSP_USING_PWM4
+                        default BSP_PWM4_A_PIN_24
+                        config BSP_PWM4_A_PIN_8
+                            bool "8"
+                        config BSP_PWM4_A_PIN_24
+                            bool "24"
+                    endchoice
+                    config BSP_PWM4_A_PIN
+                        int
+                        default 8 if BSP_PWM4_A_PIN_8
+                        default 24 if BSP_PWM4_A_PIN_24
+                    choice
+                        prompt "pwm slice B pin number (GP)"
+                        depends on BSP_USING_PWM4
+                        default BSP_PWM4_B_PIN_25
+                        config BSP_PWM4_B_PIN_9
+                            bool "9"
+                        config BSP_PWM4_B_PIN_25
+                            bool "25"
+                    endchoice
+                    config BSP_PWM4_B_PIN
+                        int
+                        default 9 if BSP_PWM4_B_PIN_9
+                        default 25 if BSP_PWM4_B_PIN_25
+                    config BSP_PWM4_A_ALL
+                        bool "pwm slice use all A pin"
+                        default n
+                    config BSP_PWM4_B_ALL
+                        bool "pwm slice use all B pin"
+                        default n
+                endif
+
+            config BSP_USING_PWM5
+                bool "Enable PWM5"
+                default n
+                if BSP_USING_PWM5
+                    choice
+                        prompt "pwm slice A pin number (GP)"
+                        depends on BSP_USING_PWM5
+                        default BSP_PWM5_A_PIN_10
+                        config BSP_PWM5_A_PIN_10
+                            bool "10"
+                        config BSP_PWM5_A_PIN_26
+                            bool "26"
+                    endchoice
+                    config BSP_PWM5_A_PIN
+                        int
+                        default 10 if BSP_PWM5_A_PIN_10
+                        default 26 if BSP_PWM5_A_PIN_26
+                    choice
+                        prompt "pwm slice B pin number (GP)"
+                        depends on BSP_USING_PWM5
+                        default BSP_PWM5_B_PIN_11
+                        config BSP_PWM5_B_PIN_11
+                            bool "11"
+                        config BSP_PWM5_B_PIN_27
+                            bool "27"
+                    endchoice
+                    config BSP_PWM5_B_PIN
+                        int
+                        default 11 if BSP_PWM5_B_PIN_11
+                        default 27 if BSP_PWM5_B_PIN_27
+                    config BSP_PWM5_A_ALL
+                        bool "pwm slice use all A pin"
+                        default n
+                    config BSP_PWM5_B_ALL
+                        bool "pwm slice use all B pin"
+                        default n
+                endif
+
+            config BSP_USING_PWM6
+                bool "Enable PWM6"
+                default n
+                if BSP_USING_PWM6
+                    choice
+                        prompt "pwm slice A pin number (GP)"
+                        depends on BSP_USING_PWM6
+                        default BSP_PWM6_A_PIN_12
+                        config BSP_PWM6_A_PIN_12
+                            bool "12"
+                        config BSP_PWM6_A_PIN_28
+                            bool "28"
+                    endchoice
+                    config BSP_PWM6_A_PIN
+                        int
+                        default 12 if BSP_PWM6_A_PIN_12
+                        default 28 if BSP_PWM6_A_PIN_28
+                    choice
+                        prompt "pwm slice B pin number (GP)"
+                        depends on BSP_USING_PWM6
+                        default BSP_PWM6_B_PIN_13
+                        config BSP_PWM6_B_PIN_13
+                            bool "13"
+                        config BSP_PWM6_B_PIN_29
+                            bool "29"
+                    endchoice
+                    config BSP_PWM6_B_PIN
+                        int
+                        default 13 if BSP_PWM6_B_PIN_13
+                        default 29 if BSP_PWM6_B_PIN_29
+                    config BSP_PWM6_A_ALL
+                        bool "pwm slice use all A pin"
+                        default n
+                    config BSP_PWM6_B_ALL
+                        bool "pwm slice use all B pin"
+                        default n
+                endif
+
+            config BSP_USING_PWM7
+                bool "Enable PWM7"
+                default n
+                if BSP_USING_PWM7
+                    choice
+                        prompt "pwm slice A pin number (GP)"
+                        depends on BSP_USING_PWM7
+                        default BSP_PWM7_A_PIN_14
+                        config BSP_PWM7_A_PIN_14
+                            bool "14"
+                    endchoice
+                    config BSP_PWM7_A_PIN
+                        int
+                        default 14 if BSP_PWM7_A_PIN_14
+                    choice
+                        prompt "pwm slice B pin number (GP)"
+                        depends on BSP_USING_PWM7
+                        default BSP_PWM7_B_PIN_15
+                        config BSP_PWM7_B_PIN_15
+                            bool "15"
+                    endchoice
+                    config BSP_PWM7_B_PIN
+                        int
+                        default 15 if BSP_PWM7_B_PIN_15
+                endif
+        endif
+
+    menuconfig BSP_USING_HWTIMER
+        bool "Enable HWTIMER"
+        default n
+        select RT_USING_HWTIMER
+        if BSP_USING_HWTIMER
+            config BSP_USING_TIMER0
+                bool "Enable HWTIMER0"
+                default n
+
+            config BSP_USING_TIMER1
+                bool "Enable HWTIMER1"
+                default n
+
+            config BSP_USING_TIMER2
+                bool "Enable HWTIMER2"
+                default n
+
+            config BSP_USING_TIMER3
+                bool "Enable HWTIMER3"
+                default n
+        endif
+
+    menuconfig BSP_USING_I2C
+        bool "Enable I2C"
+        select RT_USING_I2C
+        select RT_USING_I2C_BITOPS
+        select RT_USING_PIN
+        default n
+
+        if BSP_USING_I2C
+            config BSP_USING_I2C0
+                bool "Enable I2C0"
+                default n
+                if BSP_USING_I2C0
+                    choice
+                        prompt "i2c0 scl pin number (GP)"
+                        depends on BSP_USING_I2C0
+                        default BSP_I2C0_SCL_PIN_5 if BSP_USING_ARDUINO
+                        config BSP_I2C0_SCL_PIN_5
+                            bool "5"
+                        config BSP_I2C0_SCL_PIN_1
+                            bool "1"
+                        config BSP_I2C0_SCL_PIN_9
+                            bool "9"
+                        config BSP_I2C0_SCL_PIN_13
+                            bool "13"
+                        config BSP_I2C0_SCL_PIN_17
+                            bool "17"
+                        config BSP_I2C0_SCL_PIN_21
+                            bool "21"
+                    endchoice
+                    config BSP_I2C0_SCL_PIN
+                        int
+                        default 1 if BSP_I2C0_SCL_PIN_1
+                        default 5 if BSP_I2C0_SCL_PIN_5
+                        default 9 if BSP_I2C0_SCL_PIN_9
+                        default 13 if BSP_I2C0_SCL_PIN_13
+                        default 17 if BSP_I2C0_SCL_PIN_17
+                        default 21 if BSP_I2C0_SCL_PIN_21
+
+                    choice
+                        prompt "i2c0 sda pin number (GP)"
+                        depends on BSP_USING_I2C0
+                        default BSP_I2C0_SDA_PIN_4 if BSP_USING_ARDUINO
+                        config BSP_I2C0_SDA_PIN_4
+                            bool "4"
+                        config BSP_I2C0_SDA_PIN_0
+                            bool "0"
+                        config BSP_I2C0_SDA_PIN_8
+                            bool "8"
+                        config BSP_I2C0_SDA_PIN_12
+                            bool "12"
+                        config BSP_I2C0_SDA_PIN_16
+                            bool "16"
+                        config BSP_I2C0_SDA_PIN_20
+                            bool "20"
+                    endchoice
+                    config BSP_I2C0_SDA_PIN
+                        int
+                        default 0 if BSP_I2C0_SDA_PIN_0
+                        default 4 if BSP_I2C0_SDA_PIN_4
+                        default 8 if BSP_I2C0_SDA_PIN_8
+                        default 12 if BSP_I2C0_SDA_PIN_12
+                        default 16 if BSP_I2C0_SDA_PIN_16
+                        default 20 if BSP_I2C0_SDA_PIN_20
+                endif
+
+            config BSP_USING_I2C1
+                bool "Enable I2C1"
+                default n
+                if BSP_USING_I2C1
+                    choice
+                        prompt "i2c1 scl pin number (GP)"
+                        depends on BSP_USING_I2C1
+                        config BSP_I2C1_SCL_PIN_3
+                            bool "3"
+                        config BSP_I2C1_SCL_PIN_7
+                            bool "7"
+                        config BSP_I2C1_SCL_PIN_11
+                            bool "11"
+                        config BSP_I2C1_SCL_PIN_15
+                            bool "15"
+                        config BSP_I2C1_SCL_PIN_19
+                            bool "19"
+                        config BSP_I2C1_SCL_PIN_27
+                            bool "27"
+                    endchoice
+                    config BSP_I2C1_SCL_PIN
+                        int
+                        default 3 if BSP_I2C1_SCL_PIN_3
+                        default 7 if BSP_I2C1_SCL_PIN_7
+                        default 11 if BSP_I2C1_SCL_PIN_11
+                        default 15 if BSP_I2C1_SCL_PIN_15
+                        default 19 if BSP_I2C1_SCL_PIN_19
+                        default 27 if BSP_I2C1_SCL_PIN_27
+
+                    choice
+                        prompt "i2c1 sda pin number (GP)"
+                        depends on BSP_USING_I2C1
+                        config BSP_I2C1_SDA_PIN_2
+                            bool "2"
+                        config BSP_I2C1_SDA_PIN_6
+                            bool "6"
+                        config BSP_I2C1_SDA_PIN_10
+                            bool "10"
+                        config BSP_I2C1_SDA_PIN_14
+                            bool "14"
+                        config BSP_I2C1_SDA_PIN_18
+                            bool "18"
+                        config BSP_I2C1_SDA_PIN_26
+                            bool "26"
+                    endchoice
+                    config BSP_I2C1_SDA_PIN
+                        int
+                        default 2 if BSP_I2C1_SDA_PIN_2
+                        default 6 if BSP_I2C1_SDA_PIN_6
+                        default 10 if BSP_I2C1_SDA_PIN_10
+                        default 14 if BSP_I2C1_SDA_PIN_14
+                        default 18 if BSP_I2C1_SDA_PIN_18
+                        default 26 if BSP_I2C1_SDA_PIN_26
+                endif
+        endif
+
+    config BSP_USING_ON_CHIP_FLASH
+        bool "Enable On-Chip FLASH"
+        select FAL_DEBUG_CONFIG
+        select FAL_PART_HAS_TABLE_CFG
+        default n
+
+endmenu
+
+endmenu

+ 20 - 0
bsp/raspberry-pico/RP2350/board/SConscript

@@ -0,0 +1,20 @@
+import os
+import rtconfig
+from building import *
+
+cwd = GetCurrentDir()
+
+# add general drivers
+src = Split('''
+board.c
+''')
+
+path =  [cwd]
+path += [cwd + '/ports/lcd']
+
+if GetDepend(['BSP_USING_LVGL']):
+    path += [cwd + '/ports/lcd']
+
+group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path)
+
+Return('group')

+ 68 - 0
bsp/raspberry-pico/RP2350/board/board.c

@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2006-2023, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author         Notes
+ * 2021-01-28     flybreak       first version
+ * 2023-01-22     rose_man       add RT_USING_SMP
+ * 2025-08-04     hydevcode       first version
+ */
+
+#include <rthw.h>
+#include <rtthread.h>
+#include <stdio.h>
+#include "board.h"
+#include <pico/bootrom.h>
+#include <pico/stdlib.h>
+#include <hardware/clocks.h>
+#include <hardware/structs/systick.h>
+#include <drv_uart.h>
+
+#define PLL_SYS_KHZ (150 * 1000)
+
+void SysTick_Handler(void)
+{
+    rt_interrupt_enter();
+    rt_tick_increase();
+    rt_interrupt_leave();
+}
+
+uint32_t systick_config(uint32_t ticks)
+{
+    if ((ticks - 1UL) > M33_SYST_RVR_RELOAD_BITS)
+    {
+        return (1UL);                                                   /* Reload value impossible */
+    }
+
+    systick_hw->rvr    = (uint32_t)(ticks - 1UL);                         /* set reload register */
+    systick_hw->csr  = M33_SYST_CSR_CLKSOURCE_BITS |
+                    M33_SYST_CSR_TICKINT_BITS   |
+                    M33_SYST_CSR_ENABLE_BITS;                     /* Enable SysTick IRQ and SysTick Timer */
+}
+#include "pico/runtime.h"
+void rt_hw_board_init()
+{
+    #ifdef RT_USING_HEAP
+    rt_system_heap_init(HEAP_BEGIN, HEAP_END);
+    #endif
+    set_sys_clock_khz(PLL_SYS_KHZ, true);
+
+    alarm_pool_init_default();
+    systick_config(clock_get_hz(clk_sys) / RT_TICK_PER_SECOND);
+
+
+#ifdef RT_USING_COMPONENTS_INIT
+    rt_components_board_init();
+#endif
+
+#ifdef RT_USING_SERIAL
+    stdio_init_all();
+    rt_hw_uart_init();
+#endif
+
+#ifdef RT_USING_CONSOLE
+    rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
+#endif
+}

+ 21 - 0
bsp/raspberry-pico/RP2350/board/board.h

@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2006-2023, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author         Notes
+ * 2021-01-28     flybreak       first version
+ */
+
+#ifndef __BOARD_H__
+#define __BOARD_H__
+
+#define PICO_SRAM_SIZE         520
+#define PICO_SRAM_END          (0x20000000 + PICO_SRAM_SIZE * 1024)
+
+extern int _sstack;
+#define HEAP_BEGIN      (&_sstack)
+#define HEAP_END        ((void *)PICO_SRAM_END)
+
+#endif

binární
bsp/raspberry-pico/RP2350/figures/elf2uf2.png


binární
bsp/raspberry-pico/RP2350/figures/rp2350.png


+ 308 - 0
bsp/raspberry-pico/RP2350/link.ld

@@ -0,0 +1,308 @@
+/* Based on GCC ARM embedded samples.
+   Defines the following symbols for use by code:
+    __exidx_start
+    __exidx_end
+    __etext
+    __data_start__
+    __preinit_array_start
+    __preinit_array_end
+    __init_array_start
+    __init_array_end
+    __fini_array_start
+    __fini_array_end
+    __data_end__
+    __bss_start__
+    __bss_end__
+    __end__
+    end
+    __HeapLimit
+    __StackLimit
+    __StackTop
+    __stack (== StackTop)
+*/
+
+MEMORY
+{
+    FLASH(rx) : ORIGIN = 0x10000000, LENGTH = (2 * 1024 * 1024)
+    RAM(rwx) : ORIGIN =  0x20000000, LENGTH = 520k
+    SCRATCH_X(rwx) : ORIGIN = 0x20080000, LENGTH = 4k
+    SCRATCH_Y(rwx) : ORIGIN = 0x20081000, LENGTH = 4k
+}
+
+ENTRY(_entry_point)
+
+SECTIONS
+{
+    .flash_begin : {
+        __flash_binary_start = .;
+    } > FLASH
+
+    .text : {
+        _stext = .;
+        __logical_binary_start = .;
+        KEEP (*(.vectors))
+        KEEP (*(.binary_info_header))
+        __binary_info_header_end = .;
+        KEEP (*(.embedded_block))
+        __embedded_block_end = .;
+        KEEP (*(.reset))
+        /* TODO revisit this now memset/memcpy/float in ROM */
+        /* bit of a hack right now to exclude all floating point and time critical (e.g. memset, memcpy) code from
+         * FLASH ... we will include any thing excluded here in .data below by default */
+        *(.init)
+        *libgcc.a:cmse_nonsecure_call.o
+        *(EXCLUDE_FILE(*libgcc.a: *libc.a:*lib_a-mem*.o *libm.a:) .text*)
+        *(.fini)
+
+
+        . = ALIGN(4);
+        
+        /* Pull all c'tors into .text */
+        *crtbegin.o(.ctors)
+        *crtbegin?.o(.ctors)
+        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
+        *(SORT(.ctors.*))
+        *(.ctors)
+        /* Followed by destructors */
+        *crtbegin.o(.dtors)
+        *crtbegin?.o(.dtors)
+        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
+        *(SORT(.dtors.*))
+        *(.dtors)
+
+        . = ALIGN(4);
+        /* preinit data */
+        PROVIDE_HIDDEN (__preinit_array_start = .);
+        KEEP(*(SORT(.preinit_array.*)))
+        KEEP(*(.preinit_array))
+        PROVIDE_HIDDEN (__preinit_array_end = .);
+
+        . = ALIGN(4);
+        /* init data */
+        PROVIDE_HIDDEN (__init_array_start = .);
+        KEEP(*(SORT(.init_array.*)))
+        KEEP(*(.init_array))
+        PROVIDE_HIDDEN (__init_array_end = .);
+
+        . = ALIGN(4);
+        /* finit data */
+        PROVIDE_HIDDEN (__fini_array_start = .);
+        *(SORT(.fini_array.*))
+        *(.fini_array)
+        PROVIDE_HIDDEN (__fini_array_end = .);
+
+
+        /* section information for utest */
+        . = ALIGN(4);
+        __rt_utest_tc_tab_start = .;
+        KEEP(*(UtestTcTab))
+        __rt_utest_tc_tab_end = .;
+
+        /* section information for finsh shell */
+        . = ALIGN(4);
+        __fsymtab_start = .;
+        KEEP(*(FSymTab))
+        __fsymtab_end = .;
+
+        . = ALIGN(4);
+        __vsymtab_start = .;
+        KEEP(*(VSymTab))
+        __vsymtab_end = .;
+
+        /* section information for initial. */
+        . = ALIGN(4);
+        __rt_init_start = .;
+        KEEP(*(SORT(.rti_fn*)))
+        __rt_init_end = .;
+        *(.eh_frame*)
+        . = ALIGN(4);
+        _etext = .;
+    } > FLASH
+
+    .boot2 : {
+        __boot2_start__ = .;
+        *(.boot2)
+        __boot2_end__ = .;
+    } > FLASH
+
+    ASSERT(__boot2_end__ - __boot2_start__ <= 256,
+        "ERROR: Pico second stage bootloader must be no more than 256 bytes in size")
+
+    .rodata : {
+        *(EXCLUDE_FILE(*libgcc.a: *libc.a:*lib_a-mem*.o *libm.a:) .rodata*)
+        *(.srodata*)
+        . = ALIGN(4);
+        *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.flashdata*)))
+        . = ALIGN(4);
+    } > FLASH
+
+    .ARM.extab :
+    {
+        *(.ARM.extab* .gnu.linkonce.armextab.*)
+    } > FLASH
+
+    __exidx_start = .;
+    .ARM.exidx :
+    {
+        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+    } > FLASH
+    __exidx_end = .;
+
+    /* Machine inspectable binary information */
+    . = ALIGN(4);
+    __binary_info_start = .;
+    .binary_info :
+    {
+        KEEP(*(.binary_info.keep.*))
+        *(.binary_info.*)
+    } > FLASH
+    __binary_info_end = .;
+    . = ALIGN(4);
+
+   .ram_vector_table (NOLOAD): {
+        *(.ram_vector_table)
+    } > RAM
+
+    .uninitialized_data (NOLOAD): {
+        . = ALIGN(4);
+        *(.uninitialized_data*)
+    } > RAM
+
+    .data : {
+        __data_start__ = .;
+        *(vtable)
+
+        *(.time_critical*)
+
+        /* remaining .text and .rodata; i.e. stuff we exclude above because we want it in RAM */
+        *(.text*)
+        . = ALIGN(4);
+        *(.rodata*)
+        . = ALIGN(4);
+
+        *(.data*)
+        *(.sdata*)
+
+        . = ALIGN(4);
+        *(.after_data.*)
+        . = ALIGN(4);
+        /* preinit data */
+        PROVIDE_HIDDEN (__mutex_array_start = .);
+        KEEP(*(SORT(.mutex_array.*)))
+        KEEP(*(.mutex_array))
+        PROVIDE_HIDDEN (__mutex_array_end = .);
+
+        *(.jcr)
+        . = ALIGN(4);
+    } > RAM AT> FLASH
+    /* __etext is (for backwards compatibility) the name of the .data init source pointer (...) */
+
+
+    .tdata : {
+        . = ALIGN(4);
+		*(.tdata .tdata.* .gnu.linkonce.td.*)
+        /* All data end */
+        __tdata_end = .;
+    } > RAM AT> FLASH
+    PROVIDE(__data_end__ = .);
+
+    /* __etext is (for backwards compatibility) the name of the .data init source pointer (...) */
+    __etext = LOADADDR(.data);
+
+    .tbss (NOLOAD) : {
+        . = ALIGN(4);
+        __bss_start__ = .;
+        __tls_base = .;
+        *(.tbss .tbss.* .gnu.linkonce.tb.*)
+        *(.tcommon)
+
+        __tls_end = .;
+
+    } > RAM
+
+
+    .bss (NOLOAD) : {
+        __tbss_end = .;
+        . = ALIGN(4);
+
+
+        *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.bss*)))
+        *(COMMON)
+        PROVIDE(__global_pointer$ = . + 2K);
+        *(.sbss*)
+        . = ALIGN(4);
+        __bss_end__ = .;
+    } > RAM
+
+    .heap (NOLOAD):
+    {
+        _sstack = .;
+        __end__ = .;
+        end = __end__;
+        KEEP(*(.heap*))
+        __HeapLimit = .;
+        _estack = .;
+    } > RAM
+    /* historically on GCC sbrk was growing past __HeapLimit to __StackLimit, however
+       to be more compatible, we now set __HeapLimit explicitly to where the end of the heap is */
+
+
+
+    /* Start and end symbols must be word-aligned */
+    .scratch_x : {
+        __scratch_x_start__ = .;
+        *(.scratch_x.*)
+        . = ALIGN(4);
+        __scratch_x_end__ = .;
+    } > SCRATCH_X AT > FLASH
+    __scratch_x_source__ = LOADADDR(.scratch_x);
+
+    .scratch_y : {
+        __scratch_y_start__ = .;
+        *(.scratch_y.*)
+        . = ALIGN(4);
+        __scratch_y_end__ = .;
+    } > SCRATCH_Y AT > FLASH
+    __scratch_y_source__ = LOADADDR(.scratch_y);
+
+    /* .stack*_dummy section doesn't contains any symbols. It is only
+     * used for linker to calculate size of stack sections, and assign
+     * values to stack symbols later
+     *
+     * stack1 section may be empty/missing if platform_launch_core1 is not used */
+
+    /* by default we put core 0 stack at the end of scratch Y, so that if core 1
+     * stack is not used then all of SCRATCH_X is free.
+     */
+    .stack1_dummy (NOLOAD):
+    {
+        *(.stack1*)
+    } > SCRATCH_X
+    .stack_dummy (NOLOAD):
+    {
+        KEEP(*(.stack*))
+    } > SCRATCH_Y
+
+    .flash_end : {
+        KEEP(*(.embedded_end_block*))
+        PROVIDE(__flash_binary_end = .);
+    } > FLASH =0xaa
+
+    /* stack limit is poorly named, but historically is maximum heap ptr */
+    __StackLimit = ORIGIN(RAM) + LENGTH(RAM);
+    __StackOneTop = ORIGIN(SCRATCH_X) + LENGTH(SCRATCH_X);
+    __StackTop = ORIGIN(SCRATCH_Y) + LENGTH(SCRATCH_Y);
+    __StackOneBottom = __StackOneTop - SIZEOF(.stack1_dummy);
+    __StackBottom = __StackTop - SIZEOF(.stack_dummy);
+    PROVIDE(__stack = __StackTop);
+
+    /* Check if data + heap + stack exceeds RAM limit */
+    ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed")
+
+    ASSERT( __binary_info_header_end - __logical_binary_start <= 1024, "Binary info must be in first 1024 bytes of the binary")
+    ASSERT( __embedded_block_end - __logical_binary_start <= 4096, "Embedded block must be in first 4096 bytes of the binary")
+
+    /* todo assert on extra code */
+
+}
+

+ 416 - 0
bsp/raspberry-pico/RP2350/rtconfig.h

@@ -0,0 +1,416 @@
+#ifndef RT_CONFIG_H__
+#define RT_CONFIG_H__
+
+#define SOC_RP2350
+
+/* RT-Thread Kernel */
+
+/* klibc options */
+
+/* rt_vsnprintf options */
+
+/* end of rt_vsnprintf options */
+
+/* rt_vsscanf options */
+
+/* end of rt_vsscanf options */
+
+/* rt_memset options */
+
+/* end of rt_memset options */
+
+/* rt_memcpy options */
+
+/* end of rt_memcpy options */
+
+/* rt_memmove options */
+
+/* end of rt_memmove options */
+
+/* rt_memcmp options */
+
+/* end of rt_memcmp options */
+
+/* rt_strstr options */
+
+/* end of rt_strstr options */
+
+/* rt_strcasecmp options */
+
+/* end of rt_strcasecmp options */
+
+/* rt_strncpy options */
+
+/* end of rt_strncpy options */
+
+/* rt_strcpy options */
+
+/* end of rt_strcpy options */
+
+/* rt_strncmp options */
+
+/* end of rt_strncmp options */
+
+/* rt_strcmp options */
+
+/* end of rt_strcmp options */
+
+/* rt_strlen options */
+
+/* end of rt_strlen options */
+
+/* rt_strnlen options */
+
+/* end of rt_strnlen options */
+/* end of klibc options */
+#define RT_NAME_MAX 8
+#define RT_CPUS_NR 1
+#define RT_ALIGN_SIZE 8
+#define RT_THREAD_PRIORITY_32
+#define RT_THREAD_PRIORITY_MAX 32
+#define RT_TICK_PER_SECOND 100
+#define RT_USING_OVERFLOW_CHECK
+#define RT_USING_HOOK
+#define RT_HOOK_USING_FUNC_PTR
+#define RT_USING_IDLE_HOOK
+#define RT_IDLE_HOOK_LIST_SIZE 4
+#define IDLE_THREAD_STACK_SIZE 256
+
+/* kservice options */
+
+/* end of kservice options */
+
+/* Inter-Thread communication */
+
+#define RT_USING_SEMAPHORE
+#define RT_USING_MUTEX
+#define RT_USING_EVENT
+#define RT_USING_MAILBOX
+#define RT_USING_MESSAGEQUEUE
+/* end of Inter-Thread communication */
+
+/* Memory Management */
+
+#define RT_USING_MEMPOOL
+#define RT_USING_SMALL_MEM
+#define RT_USING_SMALL_MEM_AS_HEAP
+#define RT_USING_HEAP
+/* end of Memory Management */
+#define RT_USING_DEVICE
+#define RT_USING_CONSOLE
+#define RT_CONSOLEBUF_SIZE 128
+#define RT_CONSOLE_DEVICE_NAME "uart0"
+#define RT_VER_NUM 0x50201
+#define RT_BACKTRACE_LEVEL_MAX_NR 32
+/* end of RT-Thread Kernel */
+#define RT_USING_HW_ATOMIC
+#define RT_USING_CPU_FFS
+#define ARCH_ARM
+#define ARCH_ARM_CORTEX_M
+#define ARCH_ARM_CORTEX_SECURE
+#define ARCH_ARM_CORTEX_M33
+
+/* RT-Thread Components */
+
+#define RT_USING_COMPONENTS_INIT
+#define RT_USING_USER_MAIN
+#define RT_MAIN_THREAD_STACK_SIZE 1024
+#define RT_MAIN_THREAD_PRIORITY 10
+#define RT_USING_MSH
+#define RT_USING_FINSH
+#define FINSH_USING_MSH
+#define FINSH_THREAD_NAME "tshell"
+#define FINSH_THREAD_PRIORITY 20
+#define FINSH_THREAD_STACK_SIZE 2048
+#define FINSH_USING_HISTORY
+#define FINSH_HISTORY_LINES 5
+#define FINSH_USING_SYMTAB
+#define FINSH_CMD_SIZE 80
+#define MSH_USING_BUILT_IN_COMMANDS
+#define FINSH_USING_DESCRIPTION
+#define FINSH_ARG_MAX 10
+#define FINSH_USING_OPTION_COMPLETION
+
+/* DFS: device virtual file system */
+
+/* end of DFS: device virtual file system */
+
+/* Device Drivers */
+
+#define RT_USING_DEVICE_IPC
+#define RT_UNAMED_PIPE_NUMBER 64
+#define RT_USING_SERIAL
+#define RT_USING_SERIAL_V1
+#define RT_SERIAL_USING_DMA
+#define RT_SERIAL_RB_BUFSZ 64
+#define RT_USING_PIN
+/* end of Device Drivers */
+
+/* C/C++ and POSIX layer */
+
+/* ISO-ANSI C layer */
+
+/* Timezone and Daylight Saving Time */
+
+#define RT_LIBC_USING_LIGHT_TZ_DST
+#define RT_LIBC_TZ_DEFAULT_HOUR 8
+#define RT_LIBC_TZ_DEFAULT_MIN 0
+#define RT_LIBC_TZ_DEFAULT_SEC 0
+/* end of Timezone and Daylight Saving Time */
+/* end of ISO-ANSI C layer */
+
+/* POSIX (Portable Operating System Interface) layer */
+
+
+/* Interprocess Communication (IPC) */
+
+
+/* Socket is in the 'Network' category */
+
+/* end of Interprocess Communication (IPC) */
+/* end of POSIX (Portable Operating System Interface) layer */
+/* end of C/C++ and POSIX layer */
+
+/* Network */
+
+/* end of Network */
+
+/* Memory protection */
+
+/* end of Memory protection */
+
+/* Utilities */
+
+/* end of Utilities */
+
+/* Using USB legacy version */
+
+/* end of Using USB legacy version */
+/* end of RT-Thread Components */
+
+/* RT-Thread Utestcases */
+
+/* end of RT-Thread Utestcases */
+
+/* RT-Thread online packages */
+
+/* IoT - internet of things */
+
+
+/* Wi-Fi */
+
+/* Marvell WiFi */
+
+/* end of Marvell WiFi */
+
+/* Wiced WiFi */
+
+/* end of Wiced WiFi */
+
+/* CYW43012 WiFi */
+
+/* end of CYW43012 WiFi */
+
+/* BL808 WiFi */
+
+/* end of BL808 WiFi */
+
+/* CYW43439 WiFi */
+
+/* end of CYW43439 WiFi */
+/* end of Wi-Fi */
+
+/* IoT Cloud */
+
+/* end of IoT Cloud */
+/* end of IoT - internet of things */
+
+/* security packages */
+
+/* end of security packages */
+
+/* language packages */
+
+/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
+
+/* end of JSON: JavaScript Object Notation, a lightweight data-interchange format */
+
+/* XML: Extensible Markup Language */
+
+/* end of XML: Extensible Markup Language */
+/* end of language packages */
+
+/* multimedia packages */
+
+/* LVGL: powerful and easy-to-use embedded GUI library */
+
+/* end of LVGL: powerful and easy-to-use embedded GUI library */
+
+/* u8g2: a monochrome graphic library */
+
+/* end of u8g2: a monochrome graphic library */
+/* end of multimedia packages */
+
+/* tools packages */
+
+/* end of tools packages */
+
+/* system packages */
+
+/* enhanced kernel services */
+
+/* end of enhanced kernel services */
+
+/* acceleration: Assembly language or algorithmic acceleration packages */
+
+/* end of acceleration: Assembly language or algorithmic acceleration packages */
+
+/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
+
+/* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
+
+/* Micrium: Micrium software products porting for RT-Thread */
+
+/* end of Micrium: Micrium software products porting for RT-Thread */
+/* end of system packages */
+
+/* peripheral libraries and drivers */
+
+/* HAL & SDK Drivers */
+
+/* STM32 HAL & SDK Drivers */
+
+/* end of STM32 HAL & SDK Drivers */
+
+/* Infineon HAL Packages */
+
+/* end of Infineon HAL Packages */
+
+/* Kendryte SDK */
+
+/* end of Kendryte SDK */
+#define PKG_USING_RASPBERRYPI_PICO_RP2350_SDK
+#define PKG_USING_RASPBERRYPI_PICO_RP2350_SDK_LATEST_VERSION
+
+/* WCH HAL & SDK Drivers */
+
+/* end of WCH HAL & SDK Drivers */
+
+/* AT32 HAL & SDK Drivers */
+
+/* end of AT32 HAL & SDK Drivers */
+
+/* HC32 DDL Drivers */
+
+/* end of HC32 DDL Drivers */
+
+/* NXP HAL & SDK Drivers */
+
+/* end of NXP HAL & SDK Drivers */
+
+/* NUVOTON Drivers */
+
+/* end of NUVOTON Drivers */
+
+/* GD32 Drivers */
+
+/* end of GD32 Drivers */
+/* end of HAL & SDK Drivers */
+
+/* sensors drivers */
+
+/* end of sensors drivers */
+
+/* touch drivers */
+
+/* end of touch drivers */
+/* end of peripheral libraries and drivers */
+
+/* AI packages */
+
+/* end of AI packages */
+
+/* Signal Processing and Control Algorithm Packages */
+
+/* end of Signal Processing and Control Algorithm Packages */
+
+/* miscellaneous packages */
+
+/* project laboratory */
+
+/* end of project laboratory */
+
+/* samples: kernel and components samples */
+
+/* end of samples: kernel and components samples */
+
+/* entertainment: terminal games and other interesting software packages */
+
+/* end of entertainment: terminal games and other interesting software packages */
+/* end of miscellaneous packages */
+
+/* Arduino libraries */
+
+
+/* Projects and Demos */
+
+/* end of Projects and Demos */
+
+/* Sensors */
+
+/* end of Sensors */
+
+/* Display */
+
+/* end of Display */
+
+/* Timing */
+
+/* end of Timing */
+
+/* Data Processing */
+
+/* end of Data Processing */
+
+/* Data Storage */
+
+/* Communication */
+
+/* end of Communication */
+
+/* Device Control */
+
+/* end of Device Control */
+
+/* Other */
+
+/* end of Other */
+
+/* Signal IO */
+
+/* end of Signal IO */
+
+/* Uncategorized */
+
+/* end of Arduino libraries */
+/* end of RT-Thread online packages */
+
+/* Hardware Drivers Config */
+
+/* Onboard Peripheral Drivers */
+
+/* end of Onboard Peripheral Drivers */
+
+/* On-chip Peripheral Drivers */
+
+#define BSP_USING_PIN
+#define BSP_USING_UART
+#define BSP_USING_UART0
+#define BSP_UART0_TX_PIN_0
+#define BSP_UART0_TX_PIN 0
+#define BSP_UART0_RX_PIN_1
+#define BSP_UART0_RX_PIN 1
+/* end of On-chip Peripheral Drivers */
+/* end of Hardware Drivers Config */
+
+#endif

+ 69 - 0
bsp/raspberry-pico/RP2350/rtconfig.py

@@ -0,0 +1,69 @@
+import os
+import sys
+
+# toolchains options
+ARCH='arm'
+CPU='cortex-m33'
+CROSS_TOOL='gcc'
+
+# bsp lib config
+BSP_LIBRARY_TYPE = None
+
+if os.getenv('RTT_CC'):
+    CROSS_TOOL = os.getenv('RTT_CC')
+if os.getenv('RTT_ROOT'):
+    RTT_ROOT = os.getenv('RTT_ROOT')
+
+# cross_tool provides the cross compiler
+# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR
+if  CROSS_TOOL == 'gcc':
+    PLATFORM    = 'gcc'
+    EXEC_PATH   = r'/usr/bin'
+    # EXEC_PATH   = r'C:\RT-ThreadStudio\repo\Extract\ToolChain_Support_Packages\ARM\GNU_Tools_for_ARM_Embedded_Processors\5.4.1\bin'
+elif CROSS_TOOL == 'keil':
+    PLATFORM    = 'armcc'
+    EXEC_PATH   = r'C:/Keil_v5'
+elif CROSS_TOOL == 'iar':
+    PLATFORM    = 'iccarm'
+    EXEC_PATH   = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3'
+
+if os.getenv('RTT_EXEC_PATH'):
+    EXEC_PATH = os.getenv('RTT_EXEC_PATH')
+
+BUILD = 'debug'
+
+if PLATFORM == 'gcc':
+    # toolchains
+    PREFIX = 'arm-none-eabi-'
+    CC = PREFIX + 'gcc'
+    AS = PREFIX + 'gcc'
+    AR = PREFIX + 'ar'
+    CXX = PREFIX + 'g++'
+    LINK = PREFIX + 'gcc'
+    TARGET_EXT = 'elf'
+    SIZE = PREFIX + 'size'
+    OBJDUMP = PREFIX + 'objdump'
+    OBJCPY = PREFIX + 'objcopy'
+
+    DEVICE = ' -march=armv8-m.main+fp+dsp -mcpu=cortex-m33 -mthumb -ffunction-sections -fdata-sections -mfloat-abi=softfp -mfpu=fpv5-sp-d16 -mcmse'
+    CFLAGS = DEVICE + ' -Dgcc'
+    AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=always'
+    LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rt-thread.map,-cref,-u,Reset_Handler -T link.ld'
+
+    CPATH = ''
+    LPATH = ''
+
+    if BUILD == 'debug':
+        CFLAGS += ' -O3 -gdwarf-2 -g'
+        AFLAGS += ' -gdwarf-2'
+    else:
+        CFLAGS += ' -O2'
+
+    CXXFLAGS = CFLAGS + '  -Wl,--build-id=none --specs=nosys.specs '
+
+    POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' 
+
+    elf2uf2_path = os.path.join(os.getcwd(), "tools", "picotool")
+    os.system("chmod +x {0}".format(elf2uf2_path))
+
+    POST_ACTION += "{0}  uf2 convert --quiet rtthread-pico.elf rtthread-pico.uf2 --family rp2350-arm-s --abs-block".format(elf2uf2_path) 

binární
bsp/raspberry-pico/RP2350/tools/picotool