Browse Source

[drivers][bsp][reness] Add Etherkit bsp and RZ series driver compatibility adaptation

kurisaw 11 tháng trước cách đây
mục cha
commit
96772832f8
100 tập tin đã thay đổi với 3329 bổ sung240 xóa
  1. 1 0
      .github/workflows/bsp_buildings.yml
  2. 1 1
      bsp/renesas/libraries/HAL_Drivers/SConscript
  3. 13 9
      bsp/renesas/libraries/HAL_Drivers/config/drv_config.h
  4. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra2l1/adc_config.h
  5. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra2l1/can_config.h
  6. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra2l1/dac_config.h
  7. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra2l1/pwm_config.h
  8. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra2l1/uart_config.h
  9. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra4m2/adc_config.h
  10. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra4m2/can_config.h
  11. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra4m2/dac_config.h
  12. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra4m2/pwm_config.h
  13. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra4m2/uart_config.h
  14. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6e2/adc_config.h
  15. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6e2/can_config.h
  16. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6e2/dac_config.h
  17. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6e2/lcd_config.h
  18. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6e2/pwm_config.h
  19. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6e2/timer_config.h
  20. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6e2/uart_config.h
  21. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m3/adc_config.h
  22. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m3/can_config.h
  23. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m3/dac_config.h
  24. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m3/lcd_config.h
  25. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m3/pwm_config.h
  26. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m3/timer_config.h
  27. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m3/uart_config.h
  28. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m4/adc_config.h
  29. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m4/can_config.h
  30. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m4/dac_config.h
  31. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m4/pwm_config.h
  32. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m4/uart_config.h
  33. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m5/adc_config.h
  34. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m5/can_config.h
  35. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m5/dac_config.h
  36. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m5/pwm_config.h
  37. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra6m5/uart_config.h
  38. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra8/adc_config.h
  39. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra8/dac_config.h
  40. 2 2
      bsp/renesas/libraries/HAL_Drivers/config/ra8/lcd_config.h
  41. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra8/pwm_config.h
  42. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/ra8/uart_config.h
  43. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/rzt/adc_config.h
  44. 85 0
      bsp/renesas/libraries/HAL_Drivers/config/rzt/can_config.h
  45. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/rzt/pwm_config.h
  46. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/rzt/timer_config.h
  47. 1 1
      bsp/renesas/libraries/HAL_Drivers/config/rzt/uart_config.h
  48. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_adc.c
  49. 28 5
      bsp/renesas/libraries/HAL_Drivers/drv_can.c
  50. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_can.h
  51. 3 2
      bsp/renesas/libraries/HAL_Drivers/drv_common.c
  52. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_common.h
  53. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_dac.c
  54. 142 116
      bsp/renesas/libraries/HAL_Drivers/drv_eth.c
  55. 12 8
      bsp/renesas/libraries/HAL_Drivers/drv_eth.h
  56. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_flash.c
  57. 17 17
      bsp/renesas/libraries/HAL_Drivers/drv_gpio.c
  58. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_gpio.h
  59. 10 2
      bsp/renesas/libraries/HAL_Drivers/drv_hwtimer.c
  60. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_hwtimer.h
  61. 14 6
      bsp/renesas/libraries/HAL_Drivers/drv_i2c.c
  62. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_lcd.c
  63. 2 2
      bsp/renesas/libraries/HAL_Drivers/drv_lcd.h
  64. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_log.h
  65. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_pwm.c
  66. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_pwm.h
  67. 15 1
      bsp/renesas/libraries/HAL_Drivers/drv_rtc.c
  68. 3 1
      bsp/renesas/libraries/HAL_Drivers/drv_sci.c
  69. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_sci.h
  70. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_sdhi.c
  71. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_sdhi.h
  72. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_soft_spi.c
  73. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_soft_spi.h
  74. 34 5
      bsp/renesas/libraries/HAL_Drivers/drv_spi.c
  75. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_spi.h
  76. 2 2
      bsp/renesas/libraries/HAL_Drivers/drv_usart_v2.c
  77. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_usart_v2.h
  78. 1 1
      bsp/renesas/libraries/HAL_Drivers/drv_wdt.c
  79. 2 0
      bsp/renesas/rzn2l_etherkit/.api_xml
  80. 1308 0
      bsp/renesas/rzn2l_etherkit/.config
  81. 192 0
      bsp/renesas/rzn2l_etherkit/.cproject
  82. 14 0
      bsp/renesas/rzn2l_etherkit/.gitignore
  83. 28 0
      bsp/renesas/rzn2l_etherkit/.project
  84. 4 0
      bsp/renesas/rzn2l_etherkit/.secure_azone
  85. 110 0
      bsp/renesas/rzn2l_etherkit/.secure_xml
  86. 2 0
      bsp/renesas/rzn2l_etherkit/.settings/ilg.gnumcueclipse.managedbuild.cross.arm.prefs
  87. 14 0
      bsp/renesas/rzn2l_etherkit/.settings/language.settings.xml
  88. 2 0
      bsp/renesas/rzn2l_etherkit/.settings/local_temp_storage.prefs
  89. 3 0
      bsp/renesas/rzn2l_etherkit/.settings/org.eclipse.core.runtime.prefs
  90. 19 0
      bsp/renesas/rzn2l_etherkit/.settings/projcfg.ini
  91. 92 0
      bsp/renesas/rzn2l_etherkit/.settings/project.JLink.Debug.rttlaunch
  92. 6 0
      bsp/renesas/rzn2l_etherkit/.settings/standalone.prefs
  93. 17 0
      bsp/renesas/rzn2l_etherkit/Kconfig
  94. 170 0
      bsp/renesas/rzn2l_etherkit/README.md
  95. 166 0
      bsp/renesas/rzn2l_etherkit/README_zh.md
  96. 27 0
      bsp/renesas/rzn2l_etherkit/SConscript
  97. 55 0
      bsp/renesas/rzn2l_etherkit/SConstruct
  98. 572 0
      bsp/renesas/rzn2l_etherkit/board/Kconfig
  99. 16 0
      bsp/renesas/rzn2l_etherkit/board/SConscript
  100. 65 0
      bsp/renesas/rzn2l_etherkit/board/board.h

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

@@ -248,6 +248,7 @@ jobs:
                 - "renesas/ra8d1-vision-board"
                 - "renesas/ra8d1-vision-board"
                 - "renesas/rzt2m_rsk"
                 - "renesas/rzt2m_rsk"
                 - "renesas/rzn2l_rsk"
                 - "renesas/rzn2l_rsk"
+                - "renesas/rzn2l_etherkit"
                 - "frdm-k64f"
                 - "frdm-k64f"
                 - "xplorer4330/M4"
                 - "xplorer4330/M4"
          -  RTT_BSP: "nuvoton" 
          -  RTT_BSP: "nuvoton" 

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/SConscript

@@ -55,7 +55,7 @@ if GetDepend(['BSP_USING_TIM']):
 if GetDepend(['BSP_USING_ETH']):
 if GetDepend(['BSP_USING_ETH']):
     src += ['drv_eth.c']
     src += ['drv_eth.c']
 
 
-if GetDepend(['BSP_USING_CAN']):
+if GetDepend(['BSP_USING_CAN']) or GetDepend('BSP_USING_CANFD'):
     src += ['drv_can.c']
     src += ['drv_can.c']
 
 
 if GetDepend(['BSP_USING_SDHI']):
 if GetDepend(['BSP_USING_SDHI']):

+ 13 - 9
bsp/renesas/libraries/HAL_Drivers/config/drv_config.h

@@ -1,13 +1,13 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author            Notes
- * 2021-07-29     KyleChan          first version
- * 2022-12-7      Vandoul           ADD ra4m2
- */
+* Copyright (c) 2006-2025, RT-Thread Development Team
+*
+* SPDX-License-Identifier: Apache-2.0
+*
+* Change Logs:
+* Date           Author            Notes
+* 2021-07-29     KyleChan          first version
+* 2022-12-7      Vandoul           ADD ra4m2
+*/
 
 
 #ifndef __DRV_CONFIG_H__
 #ifndef __DRV_CONFIG_H__
 #define __DRV_CONFIG_H__
 #define __DRV_CONFIG_H__
@@ -145,6 +145,10 @@ extern "C"
 #include "rzt/uart_config.h"
 #include "rzt/uart_config.h"
 #include "rzt/timer_config.h"
 #include "rzt/timer_config.h"
 
 
+#ifdef BSP_USING_CANFD
+#include "rzt/canfd_config.h"
+#endif
+
 #ifdef BSP_USING_PWM
 #ifdef BSP_USING_PWM
 #include "rzt/pwm_config.h"
 #include "rzt/pwm_config.h"
 #endif
 #endif

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra2l1/adc_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra2l1/can_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra2l1/dac_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra2l1/pwm_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra2l1/uart_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra4m2/adc_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra4m2/can_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra4m2/dac_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra4m2/pwm_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra4m2/uart_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6e2/adc_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6e2/can_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6e2/dac_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6e2/lcd_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6e2/pwm_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6e2/timer_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6e2/uart_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m3/adc_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m3/can_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m3/dac_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m3/lcd_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m3/pwm_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m3/timer_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m3/uart_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m4/adc_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m4/can_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m4/dac_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m4/pwm_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m4/uart_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m5/adc_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m5/can_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m5/dac_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m5/pwm_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra6m5/uart_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra8/adc_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra8/dac_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 2 - 2
bsp/renesas/libraries/HAL_Drivers/config/ra8/lcd_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *
@@ -28,6 +28,6 @@ typedef enum
 #define ENABLE_DOUBLE_BUFFER    (1)
 #define ENABLE_DOUBLE_BUFFER    (1)
 
 
 #define LCD_BL_PIN              BSP_IO_PORT_10_PIN_11
 #define LCD_BL_PIN              BSP_IO_PORT_10_PIN_11
-#define LCD_RST_PIN         	BSP_IO_PORT_11_PIN_04
+#define LCD_RST_PIN             BSP_IO_PORT_11_PIN_04
 
 
 #endif
 #endif

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra8/pwm_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/ra8/uart_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/rzt/adc_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 85 - 0
bsp/renesas/libraries/HAL_Drivers/config/rzt/can_config.h

@@ -0,0 +1,85 @@
+/*
+* Copyright (c) 2006-2025, RT-Thread Development Team
+*
+* SPDX-License-Identifier: Apache-2.0
+*
+* Change Logs:
+* Date           Author            Notes
+* 2025-02-11     kurisaW           first version
+*/
+
+#ifndef __CAN_CONFIG_H__
+#define __CAN_CONFIG_H__
+
+#include <rtthread.h>
+#include "hal_data.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#if defined(BSP_USING_CAN0)
+#ifndef CANFD0_CONFIG
+#define CANFD0_CONFIG                 \
+    {                                 \
+        .name = "canfd0",             \
+        .num_of_mailboxs = 48,        \
+        .p_api_ctrl = &g_canfd0_ctrl, \
+        .p_cfg = &g_canfd0_cfg,       \
+    }
+#endif /* CAN0_CONFIG */
+#endif /* BSP_USING_CAN0 */
+
+#if defined(BSP_USING_CAN1)
+#ifndef CANFD1_CONFIG
+#define CANFD1_CONFIG                 \
+    {                                 \
+        .name = "canfd1",             \
+        .num_of_mailboxs = 48,        \
+        .p_api_ctrl = &g_canfd1_ctrl, \
+        .p_cfg = &g_canfd1_cfg,       \
+    }
+#endif /* CAN1_CONFIG */
+#endif /* BSP_USING_CAN1 */
+
+const canfd_afl_entry_t p_canfd0_afl[CANFD_CFG_AFL_CH0_RULE_NUM] =
+{
+    {
+        .id =
+        {
+            .id         = 0x00,
+            .frame_type = CAN_FRAME_TYPE_DATA,
+            .id_mode    = CAN_ID_MODE_STANDARD
+        },
+        .destination =
+        {
+            .minimum_dlc       = CANFD_MINIMUM_DLC_0,
+            .rx_buffer         = CANFD_RX_MB_NONE,
+            .fifo_select_flags = CANFD_RX_FIFO_0
+        }
+    },
+};
+
+const canfd_afl_entry_t p_canfd1_afl[CANFD_CFG_AFL_CH1_RULE_NUM] =
+{
+    {
+        .id =
+        {
+            .id         = 0x01,
+            .frame_type = CAN_FRAME_TYPE_DATA,
+            .id_mode    = CAN_ID_MODE_STANDARD
+        },
+        .destination =
+        {
+            .minimum_dlc       = CANFD_MINIMUM_DLC_1,
+            .rx_buffer         = CANFD_RX_MB_NONE,
+            .fifo_select_flags = CANFD_RX_FIFO_1
+        }
+    },
+};
+
+#ifdef __cplusplus
+}
+#endif
+#endif

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/rzt/pwm_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/rzt/timer_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/config/rzt/uart_config.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_adc.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 28 - 5
bsp/renesas/libraries/HAL_Drivers/drv_can.c

@@ -1,11 +1,12 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *
  * Change Logs:
  * Change Logs:
  * Date           Author            Notes
  * Date           Author            Notes
  * 2021-10-29     mazhiyuan         first version
  * 2021-10-29     mazhiyuan         first version
+ * 2025-02-11     kurisaW           support can and canfd drivers for RZ family
  */
  */
 
 
 #include "drv_can.h"
 #include "drv_can.h"
@@ -47,6 +48,18 @@ static const struct ra_baud_rate_tab can_baud_rate_tab[] =
     {CAN10kBaud, 4, 14, 5, 1 + 249}
     {CAN10kBaud, 4, 14, 5, 1 + 249}
 };
 };
 
 
+#if defined(BSP_USING_CANFD)
+
+#define can_instance_ctrl_t         canfd_instance_ctrl_t
+
+#define R_CAN_Open                  R_CANFD_Open
+#define R_BSP_IrqStatusClear        R_BSP_IrqClearPending
+#define R_CAN_ModeTransition        R_CANFD_ModeTransition
+#define R_CAN_InfoGet               R_CANFD_InfoGet
+#define R_CAN_Write                 R_CANFD_Write
+
+#endif
+
 static rt_uint32_t get_can_baud_index(rt_uint32_t baud)
 static rt_uint32_t get_can_baud_index(rt_uint32_t baud)
 {
 {
     rt_uint32_t len, index;
     rt_uint32_t len, index;
@@ -66,13 +79,13 @@ static void ra_can_get_config(void)
     struct can_configure config = CANDEFAULTCONFIG;
     struct can_configure config = CANDEFAULTCONFIG;
 #ifdef BSP_USING_CAN0
 #ifdef BSP_USING_CAN0
     can_obj[CAN0_INDEX].can_dev.config = config;
     can_obj[CAN0_INDEX].can_dev.config = config;
-    can_obj[CAN0_INDEX].can_dev.config.msgboxsz = CAN_NO_OF_MAILBOXES_g_can0;
+    can_obj[CAN0_INDEX].can_dev.config.msgboxsz = 32;
     can_obj[CAN0_INDEX].can_dev.config.sndboxnumber = 1;
     can_obj[CAN0_INDEX].can_dev.config.sndboxnumber = 1;
     can_obj[CAN0_INDEX].can_dev.config.ticks = 50;
     can_obj[CAN0_INDEX].can_dev.config.ticks = 50;
 #endif
 #endif
 #ifdef BSP_USING_CAN1
 #ifdef BSP_USING_CAN1
     can_obj[CAN1_INDEX].can_dev.config = config;
     can_obj[CAN1_INDEX].can_dev.config = config;
-    can_obj[CAN1_INDEX].can_dev.config.msgboxsz = CAN_NO_OF_MAILBOXES_g_can1;
+    can_obj[CAN1_INDEX].can_dev.config.msgboxsz = 32;
     can_obj[CAN1_INDEX].can_dev.config.sndboxnumber = 1;
     can_obj[CAN1_INDEX].can_dev.config.sndboxnumber = 1;
     can_obj[CAN1_INDEX].can_dev.config.ticks = 50;
     can_obj[CAN1_INDEX].can_dev.config.ticks = 50;
 #endif
 #endif
@@ -168,7 +181,7 @@ rt_err_t ra_can_control(struct rt_can_device *can_dev, int cmd, void *arg)
     }
     }
     return RT_EOK;
     return RT_EOK;
 }
 }
-int ra_can_sendmsg(struct rt_can_device *can_dev, const void *buf, rt_uint32_t boxno)
+rt_ssize_t ra_can_sendmsg(struct rt_can_device *can_dev, const void *buf, rt_uint32_t boxno)
 {
 {
     struct ra_can *can;
     struct ra_can *can;
     can_frame_t g_can_tx_frame;
     can_frame_t g_can_tx_frame;
@@ -180,7 +193,13 @@ int ra_can_sendmsg(struct rt_can_device *can_dev, const void *buf, rt_uint32_t b
     g_can_tx_frame.id_mode = msg_rt->ide;
     g_can_tx_frame.id_mode = msg_rt->ide;
     g_can_tx_frame.type = msg_rt->rtr;
     g_can_tx_frame.type = msg_rt->rtr;
     g_can_tx_frame.data_length_code = msg_rt->len;
     g_can_tx_frame.data_length_code = msg_rt->len;
+#if defined(BSP_USING_CANFD) && defined(BSP_USING_CAN_RZ)
+    g_can_tx_frame.options = 0;
+#elif defined(BSP_USING_CANFD)
+    g_can_tx_frame.options = CANFD_FRAME_OPTION_FD | CANFD_FRAME_OPTION_BRS;
+#else
     g_can_tx_frame.options = 0;
     g_can_tx_frame.options = 0;
+#endif
     memcpy(g_can_tx_frame.data, msg_rt->data, 8);
     memcpy(g_can_tx_frame.data, msg_rt->data, 8);
     can = rt_container_of(can_dev, struct ra_can, can_dev);
     can = rt_container_of(can_dev, struct ra_can, can_dev);
     RT_ASSERT(boxno < can->config->num_of_mailboxs);
     RT_ASSERT(boxno < can->config->num_of_mailboxs);
@@ -193,7 +212,7 @@ int ra_can_sendmsg(struct rt_can_device *can_dev, const void *buf, rt_uint32_t b
     return RT_EOK;
     return RT_EOK;
 }
 }
 
 
-int ra_can_recvmsg(struct rt_can_device *can_dev, void *buf, rt_uint32_t boxno)
+rt_ssize_t ra_can_recvmsg(struct rt_can_device *can_dev, void *buf, rt_uint32_t boxno)
 {
 {
     struct rt_can_msg *msg_rt = (struct rt_can_msg *)buf;
     struct rt_can_msg *msg_rt = (struct rt_can_msg *)buf;
     can_frame_t *msg_ra;
     can_frame_t *msg_ra;
@@ -205,7 +224,11 @@ int ra_can_recvmsg(struct rt_can_device *can_dev, void *buf, rt_uint32_t boxno)
     RT_ASSERT(boxno < can->config->num_of_mailboxs);
     RT_ASSERT(boxno < can->config->num_of_mailboxs);
     if (can->callback_args->mailbox != boxno)
     if (can->callback_args->mailbox != boxno)
         return 0;
         return 0;
+#if defined(BSP_USING_CANFD)
+    msg_ra = &can->callback_args->frame;
+#else
     msg_ra = can->callback_args->p_frame;
     msg_ra = can->callback_args->p_frame;
+#endif
 
 
     msg_rt->id = msg_ra->id;
     msg_rt->id = msg_ra->id;
     msg_rt->ide = msg_ra->id_mode;
     msg_rt->ide = msg_ra->id_mode;

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_can.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 3 - 2
bsp/renesas/libraries/HAL_Drivers/drv_common.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *
@@ -36,7 +36,8 @@ static void SysTimerInterrupt(void);
 static void reboot(uint8_t argc, char **argv)
 static void reboot(uint8_t argc, char **argv)
 {
 {
 #ifdef SOC_SERIES_R9A07G0
 #ifdef SOC_SERIES_R9A07G0
-    return;
+    R_BSP_RegisterProtectDisable(BSP_REG_PROTECT_LPC_RESET);
+    R_BSP_SystemReset();
 #else
 #else
     NVIC_SystemReset();
     NVIC_SystemReset();
 #endif
 #endif

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_common.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_dac.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 142 - 116
bsp/renesas/libraries/HAL_Drivers/drv_eth.c

@@ -1,15 +1,16 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2018-11-19     SummerGift   first version
- * 2018-12-25     zylx         fix some bugs
- * 2019-06-10     SummerGift   optimize PHY state detection process
- * 2019-09-03     xiaofan      optimize link change detection process
- */
+* Copyright (c) 2006-2025, RT-Thread Development Team
+*
+* SPDX-License-Identifier: Apache-2.0
+*
+* Change Logs:
+* Date           Author       Notes
+* 2018-11-19     SummerGift   first version
+* 2018-12-25     zylx         fix some bugs
+* 2019-06-10     SummerGift   optimize PHY state detection process
+* 2019-09-03     xiaofan      optimize link change detection process
+* 2025-02-11     kurisaW      adaptation for RZ Ethernet driver
+*/
 
 
 #include "drv_config.h"
 #include "drv_config.h"
 #include "drv_eth.h"
 #include "drv_eth.h"
@@ -17,35 +18,24 @@
 #include <netif/ethernetif.h>
 #include <netif/ethernetif.h>
 #include <lwipopts.h>
 #include <lwipopts.h>
 
 
-/*
-* Emac driver uses CubeMX tool to generate emac and phy's configuration,
-* the configuration files can be found in CubeMX_Config folder.
-*/
-
 /* debug option */
 /* debug option */
-//#define ETH_RX_DUMP
-//#define ETH_TX_DUMP
-#define MINIMUM_ETHERNET_FRAME_SIZE               (60U)
-#define ETH_MAX_PACKET_SIZE 1514
+// #define ETH_RX_DUMP
+// #define ETH_TX_DUMP
+#define MINIMUM_ETHERNET_FRAME_SIZE (60U)
+#define ETH_MAX_PACKET_SIZE (2048U)
+#define ETHER_GMAC_INTERRUPT_FACTOR_RECEPTION (0x000000C0)
 #define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE
 #define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE
 #define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE
 #define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE
-//#define DRV_DEBUG
-#define LOG_TAG             "drv.eth"
+// #define DRV_DEBUG
+#define LOG_TAG "drv.eth"
 #ifdef DRV_DEBUG
 #ifdef DRV_DEBUG
-    #define DBG_LVL               DBG_LOG
+#define DBG_LVL DBG_LOG
 #else
 #else
-    #define DBG_LVL               DBG_INFO
+#define DBG_LVL DBG_INFO
 #endif /* DRV_DEBUG */
 #endif /* DRV_DEBUG */
 #include <rtdbg.h>
 #include <rtdbg.h>
 
 
-#define MAX_ADDR_LEN 6
-
-#undef PHY_FULL_DUPLEX
-#define PHY_LINK         (1 << 0)
-#define PHY_100M         (1 << 1)
-#define PHY_FULL_DUPLEX  (1 << 2)
-
-struct rt_ra6m3_eth
+struct rt_eth_dev
 {
 {
     /* inherit from ethernet device */
     /* inherit from ethernet device */
     struct eth_device parent;
     struct eth_device parent;
@@ -55,8 +45,24 @@ struct rt_ra6m3_eth
 };
 };
 
 
 static rt_uint8_t *Rx_Buff, *Tx_Buff;
 static rt_uint8_t *Rx_Buff, *Tx_Buff;
-//static  ETH_HandleTypeDef EthHandle;
-static struct rt_ra6m3_eth ra6m3_eth_device;
+// static  ETH_HandleTypeDef EthHandle;
+static struct rt_eth_dev ra_eth_device;
+
+static uint8_t g_link_change = 0; ///< Link change (bit0:port0, bit1:port1, bit2:port2)
+static uint8_t g_link_status = 0; ///< Link status (bit0:port0, bit1:port1, bit2:port2)
+static uint8_t previous_link_status = 0;
+
+#if defined(SOC_SERIES_R9A07G0)
+
+#define status_ecsr             status_link
+#define ETHER_EVENT_INTERRUPT   ETHER_EVENT_SBD_INTERRUPT
+
+#define R_ETHER_Open        R_GMAC_Open
+#define R_ETHER_Write       R_GMAC_Write
+#define R_ETHER_Read        R_GMAC_Read
+#define R_ETHER_LinkProcess R_GMAC_LinkProcess
+
+#endif
 
 
 #if defined(ETH_RX_DUMP) || defined(ETH_TX_DUMP)
 #if defined(ETH_RX_DUMP) || defined(ETH_TX_DUMP)
 #define __is_print(ch) ((unsigned int)((ch) - ' ') < 127u - ' ')
 #define __is_print(ch) ((unsigned int)((ch) - ' ') < 127u - ' ')
@@ -86,43 +92,44 @@ static void dump_hex(const rt_uint8_t *ptr, rt_size_t buflen)
 
 
 extern void phy_reset(void);
 extern void phy_reset(void);
 /* EMAC initialization function */
 /* EMAC initialization function */
-static rt_err_t rt_ra6m3_eth_init(void)
+static rt_err_t rt_ra_eth_init(void)
 {
 {
     fsp_err_t res;
     fsp_err_t res;
 
 
     res = R_ETHER_Open(&g_ether0_ctrl, &g_ether0_cfg);
     res = R_ETHER_Open(&g_ether0_ctrl, &g_ether0_cfg);
     if (res != FSP_SUCCESS)
     if (res != FSP_SUCCESS)
         LOG_W("R_ETHER_Open failed!, res = %d", res);
         LOG_W("R_ETHER_Open failed!, res = %d", res);
+
     return RT_EOK;
     return RT_EOK;
 }
 }
 
 
-static rt_err_t rt_ra6m3_eth_open(rt_device_t dev, rt_uint16_t oflag)
+static rt_err_t rt_ra_eth_open(rt_device_t dev, rt_uint16_t oflag)
 {
 {
     LOG_D("emac open");
     LOG_D("emac open");
     return RT_EOK;
     return RT_EOK;
 }
 }
 
 
-static rt_err_t rt_ra6m3_eth_close(rt_device_t dev)
+static rt_err_t rt_ra_eth_close(rt_device_t dev)
 {
 {
     LOG_D("emac close");
     LOG_D("emac close");
     return RT_EOK;
     return RT_EOK;
 }
 }
 
 
-static rt_ssize_t rt_ra6m3_eth_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size)
+static rt_ssize_t rt_ra_eth_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size)
 {
 {
     LOG_D("emac read");
     LOG_D("emac read");
     rt_set_errno(-RT_ENOSYS);
     rt_set_errno(-RT_ENOSYS);
     return 0;
     return 0;
 }
 }
 
 
-static rt_ssize_t rt_ra6m3_eth_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size)
+static rt_ssize_t rt_ra_eth_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size)
 {
 {
     LOG_D("emac write");
     LOG_D("emac write");
     rt_set_errno(-RT_ENOSYS);
     rt_set_errno(-RT_ENOSYS);
     return 0;
     return 0;
 }
 }
 
 
-static rt_err_t rt_ra6m3_eth_control(rt_device_t dev, int cmd, void *args)
+static rt_err_t rt_ra_eth_control(rt_device_t dev, int cmd, void *args)
 {
 {
     switch (cmd)
     switch (cmd)
     {
     {
@@ -130,7 +137,11 @@ static rt_err_t rt_ra6m3_eth_control(rt_device_t dev, int cmd, void *args)
         /* get mac address */
         /* get mac address */
         if (args)
         if (args)
         {
         {
+#if defined(SOC_SERIES_R9A07G0)
+            SMEMCPY(args, g_ether0_ctrl.p_gmac_cfg->p_mac_address, 6);
+#else
             SMEMCPY(args, g_ether0_ctrl.p_ether_cfg->p_mac_address, 6);
             SMEMCPY(args, g_ether0_ctrl.p_ether_cfg->p_mac_address, 6);
+#endif
         }
         }
         else
         else
         {
         {
@@ -138,7 +149,7 @@ static rt_err_t rt_ra6m3_eth_control(rt_device_t dev, int cmd, void *args)
         }
         }
         break;
         break;
 
 
-    default :
+    default:
         break;
         break;
     }
     }
 
 
@@ -147,7 +158,7 @@ static rt_err_t rt_ra6m3_eth_control(rt_device_t dev, int cmd, void *args)
 
 
 /* ethernet device interface */
 /* ethernet device interface */
 /* transmit data*/
 /* transmit data*/
-rt_err_t rt_ra6m3_eth_tx(rt_device_t dev, struct pbuf *p)
+rt_err_t rt_ra_eth_tx(rt_device_t dev, struct pbuf *p)
 {
 {
     fsp_err_t res;
     fsp_err_t res;
     struct pbuf *q;
     struct pbuf *q;
@@ -185,7 +196,6 @@ rt_err_t rt_ra6m3_eth_tx(rt_device_t dev, struct pbuf *p)
         framelength = framelength + byteslefttocopy;
         framelength = framelength + byteslefttocopy;
     }
     }
 
 
-
 #ifdef ETH_TX_DUMP
 #ifdef ETH_TX_DUMP
     dump_hex(buffer, p->tot_len);
     dump_hex(buffer, p->tot_len);
 #endif
 #endif
@@ -197,7 +207,6 @@ rt_err_t rt_ra6m3_eth_tx(rt_device_t dev, struct pbuf *p)
         {
         {
             dump_hex(q->payload, q->len);
             dump_hex(q->payload, q->len);
         }
         }
-
     }
     }
 #endif
 #endif
     res = R_ETHER_Write(&g_ether0_ctrl, buffer, p->tot_len);//>MINIMUM_ETHERNET_FRAME_SIZE?p->tot_len:MINIMUM_ETHERNET_FRAME_SIZE);
     res = R_ETHER_Write(&g_ether0_ctrl, buffer, p->tot_len);//>MINIMUM_ETHERNET_FRAME_SIZE?p->tot_len:MINIMUM_ETHERNET_FRAME_SIZE);
@@ -207,7 +216,7 @@ rt_err_t rt_ra6m3_eth_tx(rt_device_t dev, struct pbuf *p)
 }
 }
 
 
 /* receive data*/
 /* receive data*/
-struct pbuf *rt_ra6m3_eth_rx(rt_device_t dev)
+struct pbuf *rt_ra_eth_rx(rt_device_t dev)
 {
 {
     struct pbuf *p = NULL;
     struct pbuf *p = NULL;
     struct pbuf *q = NULL;
     struct pbuf *q = NULL;
@@ -270,98 +279,116 @@ struct pbuf *rt_ra6m3_eth_rx(rt_device_t dev)
         {
         {
             dump_hex(q->payload, q->len);
             dump_hex(q->payload, q->len);
         }
         }
-
     }
     }
 #endif
 #endif
 
 
-
     return p;
     return p;
 }
 }
 
 
 static void phy_linkchange()
 static void phy_linkchange()
 {
 {
-    static uint32_t phy_speed = 0;
-    uint32_t phy_speed_new = 0;
     fsp_err_t res;
     fsp_err_t res;
+    uint8_t port = 0;
+    uint8_t port_bit = 0;
 
 
-    uint32_t p_local_pause;
-    uint32_t p_partner_pause;
+#if defined(SOC_SERIES_R9A07G0)
+    gmac_link_status_t port_status;
+#endif
 
 
     res = R_ETHER_LinkProcess(&g_ether0_ctrl);
     res = R_ETHER_LinkProcess(&g_ether0_ctrl);
     if (res != FSP_SUCCESS)
     if (res != FSP_SUCCESS)
         LOG_D("R_ETHER_LinkProcess failed!, res = %d", res);
         LOG_D("R_ETHER_LinkProcess failed!, res = %d", res);
 
 
-    res = R_ETHER_PHY_LinkStatusGet(&g_ether_phy0_ctrl);
-    if (res != FSP_SUCCESS)
-        LOG_D("R_ETHER_PHY_LinkStatusGet failed!, res = %d", res);
-
-    if(res == FSP_ERR_ETHER_PHY_ERROR_LINK)
+    if (0 == g_ether0.p_cfg->p_callback)
     {
     {
-        LOG_D("link down");
-        eth_device_linkchange(&ra6m3_eth_device.parent, RT_FALSE);
-        return;
-    }
-
-    res = R_ETHER_PHY_LinkPartnerAbilityGet(&g_ether_phy0_ctrl,
-                                        &phy_speed_new,
-                                        &p_local_pause,
-                                        &p_partner_pause);
-    if (res != FSP_SUCCESS)
-    LOG_D("R_ETHER_PHY_LinkPartnerAbilityGet failed!, res = %d", res);
+        for (port = 0; port < PING_PORT_COUNT; port++)
+        {
+#if defined(SOC_SERIES_R9A07G0)
+            res = R_GMAC_GetLinkStatus(&g_ether0_ctrl, port, &port_status);
+#else
+            res = R_ETHER_PHY_LinkStatusGet(&g_ether_phy0_ctrl);
+#endif
+            if (FSP_SUCCESS != res)
+            {
+                /* An error has occurred */
+                LOG_E("PHY_LinkStatus get failed!, res = %d", res);
+                break;
+            }
 
 
-    if(res == FSP_ERR_ETHER_PHY_ERROR_LINK)
-    {
-        LOG_I("link down");
-        eth_device_linkchange(&ra6m3_eth_device.parent, RT_FALSE);
-        return;
+            /* Set link up */
+            g_link_status |= (uint8_t)(1U << port);
+        }
+        if (FSP_SUCCESS == res)
+        {
+            /* Set changed link status */
+            g_link_change = previous_link_status ^ g_link_status;
+        }
     }
     }
 
 
-    if (phy_speed != phy_speed_new)
+    for (port = 0; port < PING_PORT_COUNT; port++)
     {
     {
-        phy_speed = phy_speed_new;
-        if (phy_speed != ETHER_PHY_LINK_SPEED_NO_LINK)
+        port_bit = (uint8_t)(1U << port);
+
+        if (g_link_change & port_bit)
         {
         {
-            LOG_D("link up");
-            if (phy_speed == ETHER_PHY_LINK_SPEED_100H || phy_speed == ETHER_PHY_LINK_SPEED_100F)
-            {
-                LOG_D("100Mbps");
-            }
-            else
-            {
-                LOG_D("10Mbps");
-            }
+            /* Link status changed */
+            g_link_change &= (uint8_t)(~port_bit); // change bit clear
 
 
-            if (phy_speed == ETHER_PHY_LINK_SPEED_100F || phy_speed == ETHER_PHY_LINK_SPEED_10F)
+            if (g_link_status & port_bit)
             {
             {
-                LOG_D("full-duplex");
+                /* Changed to Link-up */
+                eth_device_linkchange(&ra_eth_device.parent, RT_TRUE);
+                LOG_I("link up");
             }
             }
             else
             else
             {
             {
-                LOG_D("half-duplex");
+                /* Changed to Link-down */
+                eth_device_linkchange(&ra_eth_device.parent, RT_FALSE);
+                LOG_I("link down");
             }
             }
-
-            /* send link up. */
-            LOG_I("link up");
-            eth_device_linkchange(&ra6m3_eth_device.parent, RT_TRUE);
-        }
-        else
-        {
-            LOG_D("link down");
-            eth_device_linkchange(&ra6m3_eth_device.parent, RT_FALSE);
         }
         }
     }
     }
+
+    previous_link_status = g_link_status;
 }
 }
 
 
-void user_ether0_callback(ether_callback_args_t * p_args)
+void user_ether0_callback(ether_callback_args_t *p_args)
 {
 {
-    rt_err_t result;
-        result = eth_device_ready(&(ra6m3_eth_device.parent));
+    rt_interrupt_enter();
+
+    switch (p_args->event)
+    {
+    case ETHER_EVENT_LINK_ON:                          ///< Link up detection event/
+        g_link_status |= (uint8_t)p_args->status_ecsr; ///< status up
+        g_link_change |= (uint8_t)p_args->status_ecsr; ///< change bit set
+        break;
+
+    case ETHER_EVENT_LINK_OFF:                            ///< Link down detection event
+        g_link_status &= (uint8_t)(~p_args->status_ecsr); ///< status down
+        g_link_change |= (uint8_t)p_args->status_ecsr;    ///< change bit set
+        break;
+
+    case ETHER_EVENT_WAKEON_LAN:    ///< Magic packet detection event
+    /* If EDMAC FR (Frame Receive Event) or FDE (Receive Descriptor Empty Event)
+        * interrupt occurs, send rx mailbox. */
+    case ETHER_EVENT_INTERRUPT: ///< BSD Interrupt event
+    {
+        rt_err_t result;
+        result = eth_device_ready(&(ra_eth_device.parent));
         if (result != RT_EOK)
         if (result != RT_EOK)
             rt_kprintf("RX err =%d\n", result);
             rt_kprintf("RX err =%d\n", result);
+        break;
+    }
+
+    default:
+        break;
+    }
+
+    rt_interrupt_leave();
 }
 }
 
 
 /* Register the EMAC device */
 /* Register the EMAC device */
-static int rt_hw_ra6m3_eth_init(void)
+static int rt_hw_ra_eth_init(void)
 {
 {
     rt_err_t state = RT_EOK;
     rt_err_t state = RT_EOK;
 
 
@@ -382,21 +409,21 @@ static int rt_hw_ra6m3_eth_init(void)
         goto __exit;
         goto __exit;
     }
     }
 
 
-    ra6m3_eth_device.parent.parent.init       = NULL;
-    ra6m3_eth_device.parent.parent.open       = rt_ra6m3_eth_open;
-    ra6m3_eth_device.parent.parent.close      = rt_ra6m3_eth_close;
-    ra6m3_eth_device.parent.parent.read       = rt_ra6m3_eth_read;
-    ra6m3_eth_device.parent.parent.write      = rt_ra6m3_eth_write;
-    ra6m3_eth_device.parent.parent.control    = rt_ra6m3_eth_control;
-    ra6m3_eth_device.parent.parent.user_data  = RT_NULL;
+    ra_eth_device.parent.parent.init = NULL;
+    ra_eth_device.parent.parent.open = rt_ra_eth_open;
+    ra_eth_device.parent.parent.close = rt_ra_eth_close;
+    ra_eth_device.parent.parent.read = rt_ra_eth_read;
+    ra_eth_device.parent.parent.write = rt_ra_eth_write;
+    ra_eth_device.parent.parent.control = rt_ra_eth_control;
+    ra_eth_device.parent.parent.user_data = RT_NULL;
 
 
-    ra6m3_eth_device.parent.eth_rx     = rt_ra6m3_eth_rx;
-    ra6m3_eth_device.parent.eth_tx     = rt_ra6m3_eth_tx;
+    ra_eth_device.parent.eth_rx = rt_ra_eth_rx;
+    ra_eth_device.parent.eth_tx = rt_ra_eth_tx;
 
 
-    rt_ra6m3_eth_init();
+    rt_ra_eth_init();
 
 
     /* register eth device */
     /* register eth device */
-    state = eth_device_init(&(ra6m3_eth_device.parent), "e0");
+    state = eth_device_init(&(ra_eth_device.parent), "e0");
     if (RT_EOK == state)
     if (RT_EOK == state)
     {
     {
         LOG_D("emac device init success");
         LOG_D("emac device init success");
@@ -408,9 +435,9 @@ static int rt_hw_ra6m3_eth_init(void)
         goto __exit;
         goto __exit;
     }
     }
 
 
-    ra6m3_eth_device.poll_link_timer = rt_timer_create("phylnk", (void (*)(void*))phy_linkchange,
-                                        NULL, RT_TICK_PER_SECOND, RT_TIMER_FLAG_PERIODIC);
-    if (!ra6m3_eth_device.poll_link_timer || rt_timer_start(ra6m3_eth_device.poll_link_timer) != RT_EOK)
+    ra_eth_device.poll_link_timer = rt_timer_create("phylnk", (void (*)(void *))phy_linkchange,
+                                                    NULL, RT_TICK_PER_SECOND, RT_TIMER_FLAG_PERIODIC);
+    if (!ra_eth_device.poll_link_timer || rt_timer_start(ra_eth_device.poll_link_timer) != RT_EOK)
     {
     {
         LOG_E("Start link change detection timer failed");
         LOG_E("Start link change detection timer failed");
     }
     }
@@ -426,9 +453,8 @@ __exit:
         {
         {
             rt_free(Tx_Buff);
             rt_free(Tx_Buff);
         }
         }
-
     }
     }
 
 
     return state;
     return state;
 }
 }
-INIT_DEVICE_EXPORT(rt_hw_ra6m3_eth_init);
+INIT_DEVICE_EXPORT(rt_hw_ra_eth_init);

+ 12 - 8
bsp/renesas/libraries/HAL_Drivers/drv_eth.h

@@ -1,12 +1,12 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2018-12-25     zylx         first version
- */
+* Copyright (c) 2006-2025, RT-Thread Development Team
+*
+* SPDX-License-Identifier: Apache-2.0
+*
+* Change Logs:
+* Date           Author       Notes
+* 2018-12-25     zylx         first version
+*/
 
 
 #ifndef __DRV_ETH_H__
 #ifndef __DRV_ETH_H__
 #define __DRV_ETH_H__
 #define __DRV_ETH_H__
@@ -103,4 +103,8 @@
 #define PHY_Status_FULL_DUPLEX(sr)  ((sr) & PHY_FULL_DUPLEX_MASK)
 #define PHY_Status_FULL_DUPLEX(sr)  ((sr) & PHY_FULL_DUPLEX_MASK)
 #endif /* PHY_USING_LAN8742A */
 #endif /* PHY_USING_LAN8742A */
 
 
+#define PHY_LINK (1 << 0)
+#define PHY_100M (1 << 1)
+#define PING_PORT_COUNT (3) ///< Count of port
+
 #endif /* __DRV_ETH_H__ */
 #endif /* __DRV_ETH_H__ */

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_flash.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 17 - 17
bsp/renesas/libraries/HAL_Drivers/drv_gpio.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *
@@ -45,67 +45,67 @@ static void ra_irq_tab_init(void)
 
 
 static void ra_pin_map_init(void)
 static void ra_pin_map_init(void)
 {
 {
-#ifdef VECTOR_NUMBER_ICU_IRQ0
+#if defined(VECTOR_NUMBER_ICU_IRQ0) || (VECTOR_NUMBER_IRQ0)
     pin_irq_map[0].irq_ctrl = &g_external_irq0_ctrl;
     pin_irq_map[0].irq_ctrl = &g_external_irq0_ctrl;
     pin_irq_map[0].irq_cfg = &g_external_irq0_cfg;
     pin_irq_map[0].irq_cfg = &g_external_irq0_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ1
+#if defined(VECTOR_NUMBER_ICU_IRQ1) || (VECTOR_NUMBER_IRQ1)
     pin_irq_map[1].irq_ctrl = &g_external_irq1_ctrl;
     pin_irq_map[1].irq_ctrl = &g_external_irq1_ctrl;
     pin_irq_map[1].irq_cfg = &g_external_irq1_cfg;
     pin_irq_map[1].irq_cfg = &g_external_irq1_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ2
+#if defined(VECTOR_NUMBER_ICU_IRQ2) || (VECTOR_NUMBER_IRQ2)
     pin_irq_map[2].irq_ctrl = &g_external_irq2_ctrl;
     pin_irq_map[2].irq_ctrl = &g_external_irq2_ctrl;
     pin_irq_map[2].irq_cfg = &g_external_irq2_cfg;
     pin_irq_map[2].irq_cfg = &g_external_irq2_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ3
+#if defined(VECTOR_NUMBER_ICU_IRQ3) || (VECTOR_NUMBER_IRQ3)
     pin_irq_map[3].irq_ctrl = &g_external_irq3_ctrl;
     pin_irq_map[3].irq_ctrl = &g_external_irq3_ctrl;
     pin_irq_map[3].irq_cfg = &g_external_irq3_cfg;
     pin_irq_map[3].irq_cfg = &g_external_irq3_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ4
+#if defined(VECTOR_NUMBER_ICU_IRQ4) || (VECTOR_NUMBER_IRQ4)
     pin_irq_map[4].irq_ctrl = &g_external_irq4_ctrl;
     pin_irq_map[4].irq_ctrl = &g_external_irq4_ctrl;
     pin_irq_map[4].irq_cfg = &g_external_irq4_cfg;
     pin_irq_map[4].irq_cfg = &g_external_irq4_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ5
+#if defined(VECTOR_NUMBER_ICU_IRQ5) || (VECTOR_NUMBER_IRQ5)
     pin_irq_map[5].irq_ctrl = &g_external_irq5_ctrl;
     pin_irq_map[5].irq_ctrl = &g_external_irq5_ctrl;
     pin_irq_map[5].irq_cfg = &g_external_irq5_cfg;
     pin_irq_map[5].irq_cfg = &g_external_irq5_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ6
+#if defined(VECTOR_NUMBER_ICU_IRQ6) || (VECTOR_NUMBER_IRQ6)
     pin_irq_map[6].irq_ctrl = &g_external_irq6_ctrl;
     pin_irq_map[6].irq_ctrl = &g_external_irq6_ctrl;
     pin_irq_map[6].irq_cfg = &g_external_irq6_cfg;
     pin_irq_map[6].irq_cfg = &g_external_irq6_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ7
+#if defined(VECTOR_NUMBER_ICU_IRQ7) || (VECTOR_NUMBER_IRQ7)
     pin_irq_map[7].irq_ctrl = &g_external_irq7_ctrl;
     pin_irq_map[7].irq_ctrl = &g_external_irq7_ctrl;
     pin_irq_map[7].irq_cfg = &g_external_irq7_cfg;
     pin_irq_map[7].irq_cfg = &g_external_irq7_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ8
+#if defined(VECTOR_NUMBER_ICU_IRQ8) || (VECTOR_NUMBER_IRQ8)
     pin_irq_map[8].irq_ctrl = &g_external_irq8_ctrl;
     pin_irq_map[8].irq_ctrl = &g_external_irq8_ctrl;
     pin_irq_map[8].irq_cfg = &g_external_irq8_cfg;
     pin_irq_map[8].irq_cfg = &g_external_irq8_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ9
+#if defined(VECTOR_NUMBER_ICU_IRQ9) || (VECTOR_NUMBER_IRQ9)
     pin_irq_map[9].irq_ctrl = &g_external_irq9_ctrl;
     pin_irq_map[9].irq_ctrl = &g_external_irq9_ctrl;
     pin_irq_map[9].irq_cfg = &g_external_irq9_cfg;
     pin_irq_map[9].irq_cfg = &g_external_irq9_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ10
+#if defined(VECTOR_NUMBER_ICU_IRQ10) || (VECTOR_NUMBER_IRQ10)
     pin_irq_map[10].irq_ctrl = &g_external_irq10_ctrl;
     pin_irq_map[10].irq_ctrl = &g_external_irq10_ctrl;
     pin_irq_map[10].irq_cfg = &g_external_irq10_cfg;
     pin_irq_map[10].irq_cfg = &g_external_irq10_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ11
+#if defined(VECTOR_NUMBER_ICU_IRQ11) || (VECTOR_NUMBER_IRQ11)
     pin_irq_map[11].irq_ctrl = &g_external_irq11_ctrl;
     pin_irq_map[11].irq_ctrl = &g_external_irq11_ctrl;
     pin_irq_map[11].irq_cfg = &g_external_irq11_cfg;
     pin_irq_map[11].irq_cfg = &g_external_irq11_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ12
+#if defined(VECTOR_NUMBER_ICU_IRQ12) || (VECTOR_NUMBER_IRQ12)
     pin_irq_map[12].irq_ctrl = &g_external_irq12_ctrl;
     pin_irq_map[12].irq_ctrl = &g_external_irq12_ctrl;
     pin_irq_map[12].irq_cfg = &g_external_irq12_cfg;
     pin_irq_map[12].irq_cfg = &g_external_irq12_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ13
+#if defined(VECTOR_NUMBER_ICU_IRQ13) || (VECTOR_NUMBER_IRQ13)
     pin_irq_map[13].irq_ctrl = &g_external_irq13_ctrl;
     pin_irq_map[13].irq_ctrl = &g_external_irq13_ctrl;
     pin_irq_map[13].irq_cfg = &g_external_irq13_cfg;
     pin_irq_map[13].irq_cfg = &g_external_irq13_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ14
+#if defined(VECTOR_NUMBER_ICU_IRQ14) || (VECTOR_NUMBER_IRQ014)
     pin_irq_map[14].irq_ctrl = &g_external_irq14_ctrl;
     pin_irq_map[14].irq_ctrl = &g_external_irq14_ctrl;
     pin_irq_map[14].irq_cfg = &g_external_irq14_cfg;
     pin_irq_map[14].irq_cfg = &g_external_irq14_cfg;
 #endif
 #endif
-#ifdef VECTOR_NUMBER_ICU_IRQ15
+#if defined(VECTOR_NUMBER_ICU_IRQ15) || (VECTOR_NUMBER_IRQ015)
     pin_irq_map[15].irq_ctrl = &g_external_irq15_ctrl;
     pin_irq_map[15].irq_ctrl = &g_external_irq15_ctrl;
     pin_irq_map[15].irq_cfg = &g_external_irq15_cfg;
     pin_irq_map[15].irq_cfg = &g_external_irq15_cfg;
 #endif
 #endif

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_gpio.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 10 - 2
bsp/renesas/libraries/HAL_Drivers/drv_hwtimer.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *
@@ -29,7 +29,7 @@ static struct ra_hwtimer ra_hwtimer_obj[BSP_TIMERS_NUM] =
 
 
 const rt_uint32_t PLCKD_FREQ_PRESCALER[PLCKD_PRESCALER_MAX_SELECT] =
 const rt_uint32_t PLCKD_FREQ_PRESCALER[PLCKD_PRESCALER_MAX_SELECT] =
 {
 {
-#ifdef SOC_SERIES_R7FA6M3
+#if defined(SOC_SERIES_R7FA6M3)
     PLCKD_PRESCALER_120M,
     PLCKD_PRESCALER_120M,
     PLCKD_PRESCALER_60M,
     PLCKD_PRESCALER_60M,
     PLCKD_PRESCALER_30M,
     PLCKD_PRESCALER_30M,
@@ -37,6 +37,14 @@ const rt_uint32_t PLCKD_FREQ_PRESCALER[PLCKD_PRESCALER_MAX_SELECT] =
     PLCKD_PRESCALER_7_5M,
     PLCKD_PRESCALER_7_5M,
     PLCKD_PRESCALER_3_75M,
     PLCKD_PRESCALER_3_75M,
     PLCKD_PRESCALER_1_875M,
     PLCKD_PRESCALER_1_875M,
+#elif defined(SOC_SERIES_R9A07G0)
+    PLCKD_PRESCALER_100M,
+    PLCKD_PRESCALER_50M,
+    PLCKD_PRESCALER_25M,
+    PLCKD_PRESCALER_12_5M,
+    PLCKD_PRESCALER_6_25M,
+    PLCKD_PRESCALER_3_125M,
+    PLCKD_PRESCALER_1_5625M
 #endif
 #endif
 };
 };
 
 

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_hwtimer.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 14 - 6
bsp/renesas/libraries/HAL_Drivers/drv_i2c.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2022, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *
@@ -22,11 +22,19 @@
 
 
 #include <hal_data.h>
 #include <hal_data.h>
 
 
-#define RA_SCI_EVENT_ABORTED        1
-#define RA_SCI_EVENT_RX_COMPLETE    2
-#define RA_SCI_EVENT_TX_COMPLETE    4
-#define RA_SCI_EVENT_ERROR          8
-#define RA_SCI_EVENT_ALL            15
+#ifndef BIT
+    #define BIT(idx)        (1ul << (idx))
+#endif
+
+#ifndef BITS
+    #define BITS(b,e)       ((((uint32_t)-1)<<(b))&(((uint32_t)-1)>>(31-(e))))
+#endif
+
+#define RA_SCI_EVENT_ABORTED        BIT(0)
+#define RA_SCI_EVENT_RX_COMPLETE    BIT(1)
+#define RA_SCI_EVENT_TX_COMPLETE    BIT(2)
+#define RA_SCI_EVENT_ERROR          BIT(3)
+#define RA_SCI_EVENT_ALL            BITS(0,3)
 
 
 struct ra_i2c_handle
 struct ra_i2c_handle
 {
 {

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_lcd.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 2 - 2
bsp/renesas/libraries/HAL_Drivers/drv_lcd.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *
@@ -14,4 +14,4 @@ void lcd_draw_pixel(uint32_t x, uint32_t y, uint16_t color);
 void lcd_draw_jpg(int32_t x, int32_t y, const void *p, int32_t xSize, int32_t ySize);
 void lcd_draw_jpg(int32_t x, int32_t y, const void *p, int32_t xSize, int32_t ySize);
 void lcd_gpu_fill_array(size_t x1, size_t y1, size_t x2, size_t y2, uint16_t *color_data);
 void lcd_gpu_fill_array(size_t x1, size_t y1, size_t x2, size_t y2, uint16_t *color_data);
 
 
-#endif
+#endif

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_log.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_pwm.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_pwm.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 15 - 1
bsp/renesas/libraries/HAL_Drivers/drv_rtc.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *
@@ -34,6 +34,20 @@ static rt_err_t ra_rtc_init(void)
         result = -RT_ERROR;
         result = -RT_ERROR;
     }
     }
 
 
+#if defined(SOC_SERIES_R9A07G0)
+    rtc_time_t default_set_time =
+    {
+        .tm_sec  = 0,
+        .tm_min  = 0,
+        .tm_hour = 0,
+        .tm_mday = 1,
+        .tm_wday = 1,
+        .tm_mon  = 1,
+        .tm_year = 1900,
+    };
+
+    R_RTC_CalendarTimeSet(&g_rtc_ctrl, &default_set_time);
+#endif
     return result;
     return result;
 }
 }
 
 

+ 3 - 1
bsp/renesas/libraries/HAL_Drivers/drv_sci.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *
@@ -673,6 +673,8 @@ static rt_err_t ra_hw_spi_configure(struct rt_spi_device *device,
     /**< config bitrate */
     /**< config bitrate */
 #ifdef R_SCI_B_SPI_H
 #ifdef R_SCI_B_SPI_H
     R_SCI_B_SPI_CalculateBitrate(obj->spi_cfg->max_hz, SCI_B_SPI_SOURCE_CLOCK_PCLK, &spi_cfg.clk_div);
     R_SCI_B_SPI_CalculateBitrate(obj->spi_cfg->max_hz, SCI_B_SPI_SOURCE_CLOCK_PCLK, &spi_cfg.clk_div);
+#elif defined(SOC_SERIES_R9A07G0)
+    R_SCI_SPI_CalculateBitrate(obj->spi_cfg->max_hz, SCI_SPI_CLOCK_SOURCE_PCLKM, false);
 #else
 #else
     R_SCI_SPI_CalculateBitrate(obj->spi_cfg->max_hz, &spi_cfg->clk_div, false);
     R_SCI_SPI_CalculateBitrate(obj->spi_cfg->max_hz, &spi_cfg->clk_div, false);
 #endif
 #endif

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_sci.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_sdhi.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2024, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_sdhi.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_soft_spi.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_soft_spi.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 34 - 5
bsp/renesas/libraries/HAL_Drivers/drv_spi.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *
@@ -24,9 +24,10 @@
 #endif /* DRV_DEBUG */
 #endif /* DRV_DEBUG */
 #include <rtdbg.h>
 #include <rtdbg.h>
 
 
-#if defined(BSP_USING_SPI0) || defined(BSP_USING_SPI1)
+#if defined(BSP_USING_SPI0) || defined(BSP_USING_SPI1) || defined(BSP_USING_SPI2)
 #define RA_SPI0_EVENT 0x01
 #define RA_SPI0_EVENT 0x01
 #define RA_SPI1_EVENT 0x02
 #define RA_SPI1_EVENT 0x02
+#define RA_SPI2_EVENT 0x03
 static struct rt_event complete_event = {0};
 static struct rt_event complete_event = {0};
 
 
 #ifdef SOC_SERIES_R7FA8M85
 #ifdef SOC_SERIES_R7FA8M85
@@ -46,6 +47,10 @@ static struct ra_spi_handle spi_handle[] =
 #ifdef BSP_USING_SPI1
 #ifdef BSP_USING_SPI1
     {.bus_name = "spi1", .spi_ctrl_t = &g_spi1_ctrl, .spi_cfg_t = &g_spi1_cfg,},
     {.bus_name = "spi1", .spi_ctrl_t = &g_spi1_ctrl, .spi_cfg_t = &g_spi1_cfg,},
 #endif
 #endif
+
+#ifdef BSP_USING_SPI2
+    {.bus_name = "spi2", .spi_ctrl_t = &g_spi2_ctrl, .spi_cfg_t = &g_spi2_cfg,},
+#endif
 };
 };
 
 
 static struct ra_spi spi_config[sizeof(spi_handle) / sizeof(spi_handle[0])] = {0};
 static struct ra_spi spi_config[sizeof(spi_handle) / sizeof(spi_handle[0])] = {0};
@@ -70,6 +75,16 @@ void spi1_callback(spi_callback_args_t *p_args)
     rt_interrupt_leave();
     rt_interrupt_leave();
 }
 }
 
 
+void spi2_callback(spi_callback_args_t *p_args)
+{
+    rt_interrupt_enter();
+    if (SPI_EVENT_TRANSFER_COMPLETE == p_args->event)
+    {
+        rt_event_send(&complete_event, RA_SPI2_EVENT);
+    }
+    rt_interrupt_leave();
+}
+
 static rt_err_t ra_wait_complete(rt_event_t event, const char bus_name[RT_NAME_MAX])
 static rt_err_t ra_wait_complete(rt_event_t event, const char bus_name[RT_NAME_MAX])
 {
 {
     rt_uint32_t recved = 0x00;
     rt_uint32_t recved = 0x00;
@@ -79,7 +94,7 @@ static rt_err_t ra_wait_complete(rt_event_t event, const char bus_name[RT_NAME_M
         return rt_event_recv(event,
         return rt_event_recv(event,
                              RA_SPI0_EVENT,
                              RA_SPI0_EVENT,
                              RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
                              RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
-                             RT_WAITING_FOREVER,
+                             (rt_int32_t)rt_tick_from_millisecond(200),
                              &recved);
                              &recved);
     }
     }
     else if (bus_name[3] == '1')
     else if (bus_name[3] == '1')
@@ -87,7 +102,15 @@ static rt_err_t ra_wait_complete(rt_event_t event, const char bus_name[RT_NAME_M
         return rt_event_recv(event,
         return rt_event_recv(event,
                              RA_SPI1_EVENT,
                              RA_SPI1_EVENT,
                              RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
                              RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
-                             RT_WAITING_FOREVER,
+                             (rt_int32_t)rt_tick_from_millisecond(200),
+                             &recved);
+    }
+    else if (bus_name[3] == '2')
+    {
+        return rt_event_recv(event,
+                             RA_SPI2_EVENT,
+                             RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
+                             (rt_int32_t)rt_tick_from_millisecond(200),
                              &recved);
                              &recved);
     }
     }
     return -RT_EINVAL;
     return -RT_EINVAL;
@@ -164,6 +187,10 @@ static rt_err_t ra_write_read_message(struct rt_spi_device *device, struct rt_sp
         LOG_E("%s write and read failed.", spi_dev->ra_spi_handle_t->bus_name);
         LOG_E("%s write and read failed.", spi_dev->ra_spi_handle_t->bus_name);
         return -RT_ERROR;
         return -RT_ERROR;
     }
     }
+#if defined(SOC_SERIES_R9A07G0)
+    R_BSP_CacheCleanInvalidateAll();
+#endif
+
     /* Wait for SPI_EVENT_TRANSFER_COMPLETE callback event. */
     /* Wait for SPI_EVENT_TRANSFER_COMPLETE callback event. */
     ra_wait_complete(&complete_event, spi_dev->ra_spi_handle_t->bus_name);
     ra_wait_complete(&complete_event, spi_dev->ra_spi_handle_t->bus_name);
     return message->length;
     return message->length;
@@ -193,6 +220,8 @@ static rt_err_t ra_hw_spi_configure(struct rt_spi_device *device,
     /**< config bitrate */
     /**< config bitrate */
 #ifdef SOC_SERIES_R7FA8M85
 #ifdef SOC_SERIES_R7FA8M85
     R_SPI_B_CalculateBitrate(spi_dev->rt_spi_cfg_t->max_hz, SPI_B_CLOCK_SOURCE_PCLK, &spi_cfg.spck_div);
     R_SPI_B_CalculateBitrate(spi_dev->rt_spi_cfg_t->max_hz, SPI_B_CLOCK_SOURCE_PCLK, &spi_cfg.spck_div);
+#elif defined(SOC_SERIES_R9A07G0)
+    R_SPI_CalculateBitrate(spi_dev->rt_spi_cfg_t->max_hz, SPI_CLOCK_SOURCE_PCLKM, &spi_cfg.spck_div);
 #else
 #else
     R_SPI_CalculateBitrate(spi_dev->rt_spi_cfg_t->max_hz, &spi_cfg.spck_div);
     R_SPI_CalculateBitrate(spi_dev->rt_spi_cfg_t->max_hz, &spi_cfg.spck_div);
 #endif
 #endif
@@ -281,7 +310,7 @@ int ra_hw_spi_init(void)
     }
     }
     return RT_EOK;
     return RT_EOK;
 }
 }
-INIT_BOARD_EXPORT(ra_hw_spi_init);
+INIT_DEVICE_EXPORT(ra_hw_spi_init);
 #endif
 #endif
 /**
 /**
   * Attach the spi device to SPI bus, this function must be used after initialization.
   * Attach the spi device to SPI bus, this function must be used after initialization.

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_spi.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 2 - 2
bsp/renesas/libraries/HAL_Drivers/drv_usart_v2.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *
@@ -7,7 +7,7 @@
  * Date           Author            Notes
  * Date           Author            Notes
  * 2021-07-29     KyleChan          first version
  * 2021-07-29     KyleChan          first version
  * 2023-10-17     Rbb666            add ra8 adapt
  * 2023-10-17     Rbb666            add ra8 adapt
- * 2024-03-11    Wangyuqiang        add rzt2m adapt
+ * 2024-03-11     Wangyuqiang       add rzt/rzn adapt
  */
  */
 
 
 #include <drv_usart_v2.h>
 #include <drv_usart_v2.h>

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_usart_v2.h

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 1 - 1
bsp/renesas/libraries/HAL_Drivers/drv_wdt.c

@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2025, RT-Thread Development Team
  *
  *
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *

+ 2 - 0
bsp/renesas/rzn2l_etherkit/.api_xml

@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<ddscApi/>

+ 1308 - 0
bsp/renesas/rzn2l_etherkit/.config

@@ -0,0 +1,1308 @@
+
+#
+# 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=16
+# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
+# CONFIG_RT_USING_NANO 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=1000
+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=1024
+# 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=y
+CONFIG_RT_DEBUGING_ASSERT=y
+CONFIG_RT_DEBUGING_COLOR=y
+CONFIG_RT_DEBUGING_CONTEXT=y
+# CONFIG_RT_DEBUGING_AUTO_INIT 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=512
+CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
+CONFIG_RT_VER_NUM=0x50200
+# 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_ARCH_ARM=y
+CONFIG_ARCH_ARM_CORTEX_R=y
+CONFIG_ARCH_ARM_CORTEX_R52=y
+
+#
+# RT-Thread Components
+#
+CONFIG_RT_USING_COMPONENTS_INIT=y
+CONFIG_RT_USING_USER_MAIN=y
+CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
+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=4096
+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=y
+CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048
+CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
+CONFIG_RT_USING_SERIAL=y
+# CONFIG_RT_USING_SERIAL_V1 is not set
+CONFIG_RT_USING_SERIAL_V2=y
+CONFIG_RT_SERIAL_USING_DMA=y
+# 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 is not set
+# 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
+
+#
+# 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
+# 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
+# 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_DSP 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_CHERRYUSB 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
+# end of system packages
+
+#
+# peripheral libraries and drivers
+#
+
+#
+# HAL & SDK Drivers
+#
+
+#
+# STM32 HAL & SDK Drivers
+#
+# CONFIG_PKG_USING_STM32F4_HAL_DRIVER is not set
+# CONFIG_PKG_USING_STM32F4_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_STM32WB55_SDK is not set
+# CONFIG_PKG_USING_STM32_SDIO 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_SDK is not set
+# 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_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_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
+# 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_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
+# 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
+# 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
+# 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_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
+# 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
+
+CONFIG_SOC_FAMILY_RENESAS_RZ=y
+CONFIG_SOC_SERIES_R9A07G0=y
+
+#
+# Hardware Drivers Config
+#
+CONFIG_SOC_R9A07G084=y
+
+#
+# Onboard Peripheral Drivers
+#
+# CONFIG_BSP_USING_HYPERRAM is not set
+# end of Onboard Peripheral Drivers
+
+#
+# On-chip Peripheral Drivers
+#
+CONFIG_BSP_USING_GPIO=y
+# CONFIG_BSP_USING_ONCHIP_FLASH is not set
+# CONFIG_BSP_USING_WDT is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+CONFIG_BSP_USING_UART=y
+CONFIG_BSP_USING_UART0=y
+# CONFIG_BSP_UART0_RX_USING_DMA is not set
+# CONFIG_BSP_UART0_TX_USING_DMA is not set
+CONFIG_BSP_UART0_RX_BUFSIZE=256
+CONFIG_BSP_UART0_TX_BUFSIZE=0
+# CONFIG_BSP_USING_UART5 is not set
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_CANFD is not set
+# CONFIG_BSP_USING_SCI is not set
+# CONFIG_BSP_USING_I2C is not set
+# CONFIG_BSP_USING_SPI is not set
+# CONFIG_BSP_USING_TIM is not set
+# CONFIG_BSP_USING_PWM is not set
+# CONFIG_BSP_USING_ETH is not set
+# end of On-chip Peripheral Drivers
+
+#
+# Board extended module Drivers
+#
+# CONFIG_BSP_USING_RW007 is not set
+# end of Board extended module Drivers
+# end of Hardware Drivers Config

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 192 - 0
bsp/renesas/rzn2l_etherkit/.cproject


+ 14 - 0
bsp/renesas/rzn2l_etherkit/.gitignore

@@ -0,0 +1,14 @@
+/RTE
+/Listings
+/Objects
+/Debug
+/build
+/makefile.targets
+/rtconfig.pyc
+/rt-thread
+/libraries
+/project.custom_argvars
+/.vscode
+/__pycache
+/settings
+/rtconfig_preinc.h

+ 28 - 0
bsp/renesas/rzn2l_etherkit/.project

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+  <name>project</name>
+  <comment />
+  <projects>
+    </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+      <triggers>clean,full,incremental,</triggers>
+      <arguments>
+            </arguments>
+    </buildCommand>
+    <buildCommand>
+      <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+      <triggers>full,incremental,</triggers>
+      <arguments>
+            </arguments>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.cdt.core.cnature</nature>
+    <nature>org.rt-thread.studio.rttnature</nature>
+    <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+    <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+  </natures>
+  <linkedResources />
+</projectDescription>

+ 4 - 0
bsp/renesas/rzn2l_etherkit/.secure_azone

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<azone>
+    <rzone name="R9A07G084M04GBG.rzone"/>
+</azone>

+ 110 - 0
bsp/renesas/rzn2l_etherkit/.secure_xml

@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<raConfiguration version="9">
+  <generalSettings>
+    <option key="#Board#" value="board.rzn2lrsk.xspi0_x1"/>
+    <option key="CPU" value="RZN2L"/>
+    <option key="Core" value="CR52_0"/>
+    <option key="#TargetName#" value="R9A07G084M04GBG"/>
+    <option key="#TargetARCHITECTURE#" value="cortex-r52"/>
+    <option key="#DeviceCommand#" value="R9A07G084M04"/>
+    <option key="#RTOS#" value="_none"/>
+    <option key="#pinconfiguration#" value="R9A07G084M04GBG.pincfg"/>
+    <option key="#FSPVersion#" value="2.0.0"/>
+    <option key="#ConfigurationFragments#" value="Renesas##BSP##Board##rzn2l_rsk##xspi0_x1_boot"/>
+    <option key="#SELECTED_TOOLCHAIN#" value="iar.arm.toolchain"/>
+  </generalSettings>
+  <raBspConfiguration/>
+  <raClockConfiguration>
+    <node id="board.clock.main.freq" option="board.clock.main.freq.25m"/>
+    <node id="board.clock.loco.enable" option="board.clock.loco.enable.enabled"/>
+    <node id="board.clock.pll0.display" option="board.clock.pll0.display.value"/>
+    <node id="board.clock.pll1" option="board.clock.pll1.initial"/>
+    <node id="board.clock.pll1.display" option="board.clock.pll1.display.value"/>
+    <node id="board.clock.ethernet.source" option="board.clock.ethernet.source.main"/>
+    <node id="board.clock.reference.display" option="board.clock.reference.display.value"/>
+    <node id="board.clock.loco.freq" option="board.clock.loco.freq.240k"/>
+    <node id="board.clock.clma0.enable" option="board.clock.clma0.enable.enabled"/>
+    <node id="board.clock.clma0.error" option="board.clock.clma0.error.not_mask"/>
+    <node id="board.clock.clma3.error" option="board.clock.clma3.error.not_mask"/>
+    <node id="board.clock.clma1.error" option="board.clock.clma1.error.mask"/>
+    <node id="board.clock.clma3.enable" option="board.clock.clma3.enable.enabled"/>
+    <node id="board.clock.clma1.enable" option="board.clock.clma1.enable.enabled"/>
+    <node id="board.clock.clma2.enable" option="board.clock.clma2.enable.enabled"/>
+    <node id="board.clock.clma0.cmpl" mul="1" option="_edit"/>
+    <node id="board.clock.clma1.cmpl" mul="1" option="_edit"/>
+    <node id="board.clock.clma2.cmpl" mul="1" option="_edit"/>
+    <node id="board.clock.clma3.cmpl" mul="1" option="_edit"/>
+    <node id="board.clock.alternative.source" option="board.clock.alternative.source.loco"/>
+    <node id="board.clock.clma0.cmph" mul="1023" option="_edit"/>
+    <node id="board.clock.clma1.cmph" mul="1023" option="_edit"/>
+    <node id="board.clock.clma2.cmph" mul="1023" option="_edit"/>
+    <node id="board.clock.clma3.cmph" mul="1023" option="_edit"/>
+    <node id="board.clock.iclk.freq" option="board.clock.iclk.freq.200m"/>
+    <node id="board.clock.cpu0clk.mul" option="board.clock.cpu0clk.mul.2"/>
+    <node id="board.clock.cpu0clk.display" option="board.clock.cpu0clk.display.value"/>
+    <node id="board.clock.ckio.div" option="board.clock.ckio.div.4"/>
+    <node id="board.clock.ckio.display" option="board.clock.ckio.display.value"/>
+    <node id="board.clock.sci0asyncclk.sel" option="board.clock.sci0asyncclk.sel.1"/>
+    <node id="board.clock.sci1asyncclk.sel" option="board.clock.sci1asyncclk.sel.1"/>
+    <node id="board.clock.sci2asyncclk.sel" option="board.clock.sci2asyncclk.sel.1"/>
+    <node id="board.clock.sci3asyncclk.sel" option="board.clock.sci3asyncclk.sel.1"/>
+    <node id="board.clock.sci4asyncclk.sel" option="board.clock.sci4asyncclk.sel.1"/>
+    <node id="board.clock.sci5asyncclk.sel" option="board.clock.sci5asyncclk.sel.1"/>
+    <node id="board.clock.spi0asyncclk.sel" option="board.clock.spi0asyncclk.sel.1"/>
+    <node id="board.clock.spi1asyncclk.sel" option="board.clock.spi1asyncclk.sel.1"/>
+    <node id="board.clock.spi2asyncclk.sel" option="board.clock.spi2asyncclk.sel.1"/>
+    <node id="board.clock.spi3asyncclk.sel" option="board.clock.spi3asyncclk.sel.1"/>
+    <node id="board.clock.pclkshost.display" option="board.clock.pclkshost.display.value"/>
+    <node id="board.clock.pclkgptl.display" option="board.clock.pclkgptl.display.value"/>
+    <node id="board.clock.pclkh.display" option="board.clock.pclkh.display.value"/>
+    <node id="board.clock.pclkm.display" option="board.clock.pclkm.display.value"/>
+    <node id="board.clock.pclkl.display" option="board.clock.pclkl.display.value"/>
+    <node id="board.clock.pclkadc.display" option="board.clock.pclkadc.display.value"/>
+    <node id="board.clock.pclkcan.freq" option="board.clock.pclkcan.freq.40m"/>
+    <node id="board.clock.xspi.clk0.freq" option="board.clock.xspi.clk0.freq.133m"/>
+    <node id="board.clock.xspi.clk1.freq" option="board.clock.xspi.clk1.freq.12m"/>
+    <node id="board.clock.tclk.freq" option="board.clock.tclk.freq.100m"/>
+  </raClockConfiguration>
+  <raPinConfiguration>
+    <pincfg active="true" name="" symbol="">
+      <configSetting altId="jtag_fslash_swd.tck_swclk.p02_7" configurationId="jtag_fslash_swd.tck_swclk" isUsedByDriver="true"/>
+      <configSetting altId="jtag_fslash_swd.tdi.p02_5" configurationId="jtag_fslash_swd.tdi" isUsedByDriver="true"/>
+      <configSetting altId="jtag_fslash_swd.tdo.p02_4" configurationId="jtag_fslash_swd.tdo" isUsedByDriver="true"/>
+      <configSetting altId="jtag_fslash_swd.tms_swdio.p02_6" configurationId="jtag_fslash_swd.tms_swdio" isUsedByDriver="true"/>
+      <configSetting altId="p03_0.output.low" configurationId="p03_0"/>
+      <configSetting altId="p04_1.output.low" configurationId="p04_1"/>
+      <configSetting altId="p04_4.output.low" configurationId="p04_4"/>
+      <configSetting altId="p05_0.output.low" configurationId="p05_0"/>
+      <configSetting altId="p05_4.input" configurationId="p05_4"/>
+      <configSetting altId="p13_4.output.low" configurationId="p13_4"/>
+      <configSetting altId="p13_5.input" configurationId="p13_5"/>
+      <configSetting altId="p13_6.input" configurationId="p13_6"/>
+      <configSetting altId="p13_7.input" configurationId="p13_7"/>
+      <configSetting altId="p14_0.output.low" configurationId="p14_0"/>
+      <configSetting altId="p14_1.output.low" configurationId="p14_1"/>
+      <configSetting altId="p14_3.output.low" configurationId="p14_3"/>
+      <configSetting altId="p16_3.input" configurationId="p16_3"/>
+      <configSetting altId="p17_3.output.low" configurationId="p17_3"/>
+      <configSetting altId="p18_2.output.low" configurationId="p18_2"/>
+      <configSetting altId="p22_1.output.low" configurationId="p22_1"/>
+      <configSetting altId="p22_3.output.low" configurationId="p22_3"/>
+      <configSetting altId="sci0.rxd_miso0.p16_6" configurationId="sci0.rxd_miso0" isUsedByDriver="true"/>
+      <configSetting altId="sci0.txd_mosi0.p16_5" configurationId="sci0.txd_mosi0" isUsedByDriver="true"/>
+      <configSetting altId="xspi0.xspi0_ckn.p14_5" configurationId="xspi0.xspi0_ckn"/>
+      <configSetting altId="xspi0.xspi0_ckp.p14_6" configurationId="xspi0.xspi0_ckp"/>
+      <configSetting altId="xspi0.xspi0_cs0_hash.p15_7" configurationId="xspi0.xspi0_cs0_hash"/>
+      <configSetting altId="xspi0.xspi0_cs1_hash.p16_0" configurationId="xspi0.xspi0_cs1_hash"/>
+      <configSetting altId="xspi0.xspi0_ds.p14_4" configurationId="xspi0.xspi0_ds"/>
+      <configSetting altId="xspi0.xspi0_ecs0_hash.p14_2" configurationId="xspi0.xspi0_ecs0_hash"/>
+      <configSetting altId="xspi0.xspi0_io0.p14_7" configurationId="xspi0.xspi0_io0"/>
+      <configSetting altId="xspi0.xspi0_io1.p15_0" configurationId="xspi0.xspi0_io1"/>
+      <configSetting altId="xspi0.xspi0_io2.p15_1" configurationId="xspi0.xspi0_io2"/>
+      <configSetting altId="xspi0.xspi0_io3.p15_2" configurationId="xspi0.xspi0_io3"/>
+      <configSetting altId="xspi0.xspi0_io4.p15_3" configurationId="xspi0.xspi0_io4"/>
+      <configSetting altId="xspi0.xspi0_io5.p15_4" configurationId="xspi0.xspi0_io5"/>
+      <configSetting altId="xspi0.xspi0_io6.p15_5" configurationId="xspi0.xspi0_io6"/>
+      <configSetting altId="xspi0.xspi0_io7.p15_6" configurationId="xspi0.xspi0_io7"/>
+      <configSetting altId="xspi0.xspi0_reset0_hash.p16_1" configurationId="xspi0.xspi0_reset0_hash"/>
+    </pincfg>
+  </raPinConfiguration>
+</raConfiguration>

+ 2 - 0
bsp/renesas/rzn2l_etherkit/.settings/ilg.gnumcueclipse.managedbuild.cross.arm.prefs

@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+toolchain.path.1287942917=${toolchain_install_path}/ARM/GNU_Tools_for_ARM_Embedded_Processors/10.2.1/bin

+ 14 - 0
bsp/renesas/rzn2l_etherkit/.settings/language.settings.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project>
+	<configuration id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.553091094" name="Debug">
+		<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
+			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
+			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
+			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
+			<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="34242292864880309" id="ilg.gnuarmeclipse.managedbuild.cross.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT ARM Cross GCC Built-in Compiler Settings " parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+				<language-scope id="org.eclipse.cdt.core.gcc"/>
+				<language-scope id="org.eclipse.cdt.core.g++"/>
+			</provider>
+		</extension>
+	</configuration>
+</project>

+ 2 - 0
bsp/renesas/rzn2l_etherkit/.settings/local_temp_storage.prefs

@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+temp.toolchain.exec.path=D\:\\manufacture_apps\\RT-ThreadStudio\\repo\\Extract\\ToolChain_Support_Packages\\ARM\\GNU_Tools_for_ARM_Embedded_Processors\\10.2.1/bin

+ 3 - 0
bsp/renesas/rzn2l_etherkit/.settings/org.eclipse.core.runtime.prefs

@@ -0,0 +1,3 @@
+content-types/enabled=true
+content-types/org.eclipse.cdt.core.asmSource/file-extensions=s
+eclipse.preferences.version=1

+ 19 - 0
bsp/renesas/rzn2l_etherkit/.settings/projcfg.ini

@@ -0,0 +1,19 @@
+#RT-Thread Studio Project Configuration
+#Tue Feb 11 17:22:54 CST 2025
+cfg_version=v3.0
+board_name=rzn2l_etherkit
+example_name=
+hardware_adapter=J-Link
+board_base_nano_proj=false
+project_type=rt-thread
+chip_name=R9A07G084M04
+selected_rtt_version=latest
+bsp_version=1.0.0
+os_branch=master
+project_base_rtt_bsp=true
+output_project_path=D\:\\Desktop\\Github_ws\\rt-thread\\bsp\\renesas
+is_base_example_project=false
+is_use_scons_build=true
+project_name=etherkit_blink_led
+os_version=latest
+bsp_path=

+ 92 - 0
bsp/renesas/rzn2l_etherkit/.settings/project.JLink.Debug.rttlaunch

@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="ilg.gnumcueclipse.debug.gdbjtag.jlink.launchConfigurationType">
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.adapterName" value="J-Link"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.binFileStartAddress" value="0x60000000"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doConnectToRunning" value="false"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doContinue" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doDebugInRam" value="false"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doFirstReset" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doGdbServerAllocateConsole" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doGdbServerAllocateSemihostingConsole" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doGdbServerInitRegs" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doGdbServerLocalOnly" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doGdbServerSilent" value="false"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doGdbServerVerifyDownload" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doSecondReset" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.doStartGdbServer" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.enableFlashBreakpoints" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.enableSemihosting" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.enableSemihostingIoclientGdbClient" value="false"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.enableSemihostingIoclientTelnet" value="true"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.enableSwo" value="true"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.eraseEndAddress" value=""/>
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.eraseMode" value="0"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.eraseStartAddress" value=""/>
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.firstResetSpeed" value="1000"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.firstResetType" value=""/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.flashDeviceName" value="STM32F103VETx"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.flashDownloadHex" value="false"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.forceQuitGdbServer" value="false"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbClientOtherCommands" value="set mem inaccessible-by-default off"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbClientOtherOptions" value=""/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerConnection" value="usb"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerConnectionAddress" value=""/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerDebugInterface" value="swd"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerDeviceEndianness" value="little"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerDeviceName" value="R9A07G084M04"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerDeviceSpeed" value="1000"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerExecutable" value="${debugger_install_path}/${jlink_debugger_relative_path}\JLinkGDBServerCL.exe"/>
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerGdbPortNumber" value="2331"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerLog" value=""/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerOther" value="-singlerun"/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerRunAfterStopDebug" value="true"/>
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerSwoPortNumber" value="2332"/>
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.gdbServerTelnetPortNumber" value="2333"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.interfaceSpeed" value="auto"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.jlinkExecutable" value="${debugger_install_path}/${jlink_debugger_relative_path}\JLink.exe"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.otherInitCommands" value=""/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.otherRunCommands" value=""/>
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.runAfterDownload" value="true"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.secondResetType" value=""/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.serailBaudRate" value="115200"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.serailPort" value=""/>
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.swoEnableTargetCpuFreq" value="0"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.swoEnableTargetPortMask" value="0x1"/>
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.jlink.swoEnableTargetSwoFreq" value="0"/>
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.svdPath" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDevice" value="GNU MCU J-Link"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
+<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="2331"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useRemoteTarget" value="true"/>
+<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="${rtt_gnu_gcc}/arm-none-eabi-gdb.exe"/>
+<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
+<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="0"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug/rtthread.elf"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="project"/>
+<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/project"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.cdt.debug.core.sourceLocator"/>
+<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
+<stringAttribute key="org.eclipse.debug.ui.ATTR_CONSOLE_ENCODING" value="UTF-8"/>
+</launchConfiguration>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 6 - 0
bsp/renesas/rzn2l_etherkit/.settings/standalone.prefs


+ 17 - 0
bsp/renesas/rzn2l_etherkit/Kconfig

@@ -0,0 +1,17 @@
+mainmenu "RT-Thread Configuration"
+
+BSP_DIR := .
+
+RTT_DIR := ../../..
+
+# you can change the RTT_ROOT default "rt-thread"
+# example : default "F:/git_repositories/rt-thread"
+
+PKGS_DIR := packages
+
+ENV_DIR := /
+
+source "$(RTT_DIR)/Kconfig"
+osource "$PKGS_DIR/Kconfig"
+rsource "../libraries/Kconfig"
+source "$(BSP_DIR)/board/Kconfig"

+ 170 - 0
bsp/renesas/rzn2l_etherkit/README.md

@@ -0,0 +1,170 @@
+# EtherKit Development Board BSP Documentation
+
+**English** | **[Chinese](./README_zh.md)**
+
+## Introduction
+
+This document provides the BSP (Board Support Package) documentation for the RT-Thread EtherKit development board. By following the Quick Start section, developers can quickly get started with this BSP and run RT-Thread on the development board.
+
+The main contents are as follows:
+
+- Introduction to the Development Board
+- BSP Quick Start Guide
+
+## Introduction to the Development Board
+
+The EtherKit development board is based on the Renesas RZ/N2L and is designed to facilitate embedded system application development by offering flexible software package and IDE configurations.
+
+The front view of the development board is shown below:
+
+![image-20240314165241884](figures/big.png)
+
+Key **onboard resources** include:
+
+- MPU: R9A07G084M04GBG, maximum operating frequency of 400MHz, Arm Cortex®-R52 core, 128KB tightly coupled memory (with ECC), 1.5MB internal RAM (with ECC)
+- Debug Interface: Onboard J-Link interface
+- Expansion Interface: One PMOD connector
+
+**More detailed information and tools**
+
+## Peripheral Support
+
+This BSP currently supports the following peripherals:
+
+Here is the translated text in English, keeping the markdown format:
+
+| **EtherCAT Solution** | **Support Status** | **EtherCAT Solution** | **Support Status** |
+| --------------------- | ------------------ | --------------------- | ------------------ |
+| EtherCAT_IO           | Supported          | EtherCAT_FOE          | Supported          |
+| EtherCAT_EOE          | Supported          | EtherCAT_COE          | Supported          |
+| **PROFINET Solution** | **Support Status** | **Ethernet/IP Solution** | **Support Status** |
+| P-Net (Open source evaluation package supporting ProfiNET slave protocol stack) | Supported | EIP | Supported |
+| **On-chip Peripherals** | **Support Status** | **Components**        | **Support Status** |
+| UART                  | Supported          | LWIP                  | Supported          |
+| GPIO                  | Supported          | TCP/UDP               | Supported          |
+| HWIMER                | Supported          | MQTT                  | Supported          |
+| IIC                   | Supported          | TFTP                  | Supported          |
+| WDT                   | Supported          | Modbus Master/Slave Protocol | Supported |
+| RTC                   | Supported          |                       |                    |
+| ADC                   | Supported          |                       |                    |
+| DAC                   | Supported          |                       |                    |
+| SPI                   | Supported          |                       |                    |
+
+
+## Usage Instructions
+
+Usage instructions are divided into two sections:
+
+- **Quick Start**
+
+  This section is designed for beginners who are new to RT-Thread. By following simple steps, users can run the RT-Thread OS on the development board and observe the experimental results.
+
+- **Advanced Usage**
+
+  This section is for developers who need to use more of the development board's resources within the RT-Thread OS. By configuring the BSP using the ENV tool, additional onboard resources and advanced features can be enabled.
+
+### Quick Start
+
+This BSP currently provides GCC/IAR project support. Below is a guide using the [IAR Embedded Workbench for Arm](https://www.iar.com/products/architectures/arm/iar-embedded-workbench-for-arm/) development environment to run the system.
+
+**Hardware Connection**
+
+Connect the development board to the PC via a USB cable. Use the J-Link interface to download and debug the program.
+
+**Compilation and Download**
+
+- Navigate to the `bsp` directory and use the command `scons --target=iar` to generate the IAR project.
+- Compile: Double-click the `project.eww` file to open the IAR project and compile the program.
+- Debug: In the IAR navigation bar, click `Project -> Download and Debug` to download and start debugging.
+
+**Viewing the Run Results**
+
+After successfully downloading the program, the system will automatically run and print system information.
+
+Connect the corresponding serial port of the development board to the PC. Open the relevant serial port (115200-8-1-N) in the terminal tool. After resetting the device, you can view the RT-Thread output. Enter the `help` command to see the list of supported system commands.
+
+```bash
+ \ | /  
+- RT -     Thread Operating System  
+ / | \     5.1.0 build Mar 14 2024 18:26:01  
+ 2006 - 2024 Copyright by RT-Thread team  
+
+Hello RT-Thread!  
+==================================================  
+This is an IAR project in RAM execution mode!  
+==================================================  
+msh > help  
+RT-Thread shell commands:  
+clear            - clear the terminal screen  
+version          - show RT-Thread version information  
+list             - list objects  
+backtrace        - print backtrace of a thread  
+help             - RT-Thread shell help  
+ps               - List threads in the system  
+free             - Show the memory usage in the system  
+pin              - pin [option]  
+
+msh >
+```
+
+**Application Entry Function**
+
+The entry function for the application layer is located in **src\hal_entry.c** within `void hal_entry(void)`. User source files can be placed directly in the `src` directory.
+
+```c
+void hal_entry(void)
+{
+    rt_kprintf("\nHello RT-Thread!\n");
+    rt_kprintf("==================================================\n");
+    rt_kprintf("This is an IAR project in RAM execution mode!\n");
+    rt_kprintf("==================================================\n");
+
+    while (1)
+    {
+        rt_pin_write(LED_PIN, PIN_HIGH);
+        rt_thread_mdelay(500);
+        rt_pin_write(LED_PIN, PIN_LOW);
+        rt_thread_mdelay(500);
+    }
+}
+```
+
+### Advanced Usage
+
+**Resources and Documentation**
+
+- [Development Board Official Homepage](https://www.renesas.cn/zh/products/microcontrollers-microprocessors/rz-mpus/rzn2l-integrated-tsn-compliant-3-port-gigabit-ethernet-switch-enables-various-industrial-applications)
+- [Development Board Datasheet](https://www.renesas.cn/zh/document/dst/rzn2l-group-datasheet?r=1622651)
+- [Development Board Hardware Manual](https://www.renesas.cn/zh/document/mah/rzn2l-group-users-manual-hardware?r=1622651)
+- [EtherKit_User_Manual](https://github.com/RT-Thread-Studio/sdk-bsp-rzn2l-etherkit/blob/master/docs/EtherKit_User_Manual.pdf)
+- [RZ/N2L MCU Quick Start Guide](https://www.renesas.cn/zh/document/apn/rzt2-rzn2-device-setup-guide-flash-boot-application-note?r=1622651)
+- [RZ/N2L Easy Download Guide](https://www.renesas.cn/zh/document/gde/rzn2l-easy-download-guide?r=1622651)
+- [Renesas RZ/N2L Group](https://www.renesas.cn/zh/document/fly/renesas-rzn2l-group?r=1622651)
+
+**FSP Configuration**
+
+To modify Renesas BSP peripheral configurations or add new peripheral ports, the Renesas [FSP](https://www2.renesas.cn/jp/zh/software-tool/flexible-software-package-fsp#document) configuration tool is required. Please follow the steps outlined below for configuration. For any questions regarding the configuration, please visit the [RT-Thread Community Forum](https://club.rt-thread.org/).
+
+1. [Download the Flexible Software Package (FSP) | Renesas](https://github.com/renesas/rzn-fsp/releases/download/v2.0.0/setup_rznfsp_v2_0_0_rzsc_v2024-01.1.exe), use FSP version 2.0.0.
+2. To add the **"EtherKit Board Support Package"** to FSP, refer to the document [How to Import a BSP](https://www2.renesas.cn/document/ppt/1527171?language=zh&r=1527191).
+3. For guidance on configuring peripheral drivers using FSP, refer to the document: [Configuring Peripheral Drivers Using FSP for RA Series](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/make-bsp/renesas-ra/RA-series-using-FSP-configure-peripheral-drivers?id=ra-series-using-fsp-configure-peripheral-drivers).
+
+**ENV Configuration**
+
+- To learn how to use the ENV tool, refer to the [RT-Thread ENV Tool User Manual](https://www.rt-thread.org/document/site/#/development-tools/env/env).
+
+By default, this BSP only enables the UART0 functionality. To use more advanced features such as components, software packages, and more, the ENV tool must be used for configuration.
+
+The steps are as follows:
+1. Open the ENV tool in the `bsp` directory.
+2. Use the `menuconfig` command to configure the project. Save and exit once the configuration is complete.
+3. Run the `pkgs --update` command to update the software packages.
+4. Run the `scons --target=iar` command to regenerate the project.
+
+## Contact Information
+
+If you have any thoughts or suggestions during usage, please feel free to contact us via the [RT-Thread Community Forum](https://club.rt-thread.org/).
+
+## Contribute Code
+
+If you're interested in EtherKit and have some exciting projects you'd like to share, we welcome code contributions. Please refer to [How to Contribute to RT-Thread Code](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/development-guide/github/github).

+ 166 - 0
bsp/renesas/rzn2l_etherkit/README_zh.md

@@ -0,0 +1,166 @@
+# EtherKit 开发板 BSP 说明
+
+**中文** | [**English**](./README.md)
+
+## 简介
+
+本文档为 RT-Thread EtherKit 开发板提供的 BSP (板级支持包) 说明。通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。
+
+主要内容如下:
+
+- 开发板介绍
+- BSP 快速上手指南
+
+## 开发板介绍
+
+基于瑞萨 RZ/N2L 开发的 EtherKit 开发板,通过灵活配置软件包和 IDE,对嵌入系统应用程序进行开发。
+
+开发板正面外观如下图:
+
+![image-20240314165241884](figures\big.png)
+
+该开发板常用 **板载资源** 如下:
+
+- MPU:R9A07G084M04GBG,最大工作频率 400MHz,Arm Cortex®-R52 内核,紧密耦合内存 128KB(带 ECC),内部 RAM 1.5 MB(带 ECC)
+- 调试接口:板载 J-Link 接口
+- 扩展接口:一个 PMOD 连接器
+
+**更多详细资料及工具**
+
+## 外设支持
+
+本 BSP 目前对外设的支持情况如下:
+
+| **EtherCAT方案** | **支持情况** | **EtherCAT方案** | **支持情况** |
+| ---------------- | ------------ | ---------------- | ------------ |
+| EtherCAT_IO      | 支持         | EtherCAT_FOE      | 支持   		|
+| EtherCAT_EOE     | 支持         | EtherCAT_COE | 支持 |
+| **PROFINET方案** | **支持情况** | **Ethernet/IP方案** | **支持情况** |
+| P-Net(支持ProfiNET从站协议栈的开源评估软件包) | 支持         | EIP   | 支持 |
+| **片上外设**     | **支持情况** | **组件**         | **支持情况** |
+| UART             | 支持         | LWIP             | 支持         |
+| GPIO             | 支持         | TCP/UDP          | 支持         |
+| HWIMER           | 支持         | MQTT             | 支持         |
+| IIC              | 支持         | TFTP             | 支持         |
+| WDT              | 支持         | Modbus主从站协议 | 支持         |
+| RTC              | 支持         |                  |              |
+| ADC              | 支持         |                  |              |
+| DAC              | 支持         |                  |              |
+| SPI              | 支持         |                  |              |
+
+## 使用说明
+
+使用说明分为如下两个章节:
+
+- 快速上手
+
+  本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。
+- 进阶使用
+
+  本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。
+
+### 快速上手
+
+本 BSP 目前提供 GCC/IAR 工程。下面以 [IAR Embedded Workbench for Arm](https://www.iar.com/products/architectures/arm/iar-embedded-workbench-for-arm/) 开发环境为例,介绍如何将系统运行起来。
+
+**硬件连接**
+
+使用 USB 数据线连接开发板到 PC,使用 J-link 接口下载和 DEBUG 程序。
+
+**编译下载**
+
+- 进入 bsp 目录下,打开 ENV 使用命令 `scons --target=iar` 生成 IAR工程。
+- 编译:双击 project.eww 文件,打开 IAR 工程,编译程序。
+- 调试:IAR 左上方导航栏点击 `Project->Download and Debug`下载并启动调试。
+
+**查看运行结果**
+
+下载程序成功之后,系统会自动运行并打印系统信息。
+
+连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息。输入 help 命令可查看系统中支持的命令。
+
+```bash
+ \ | /
+- RT -     Thread Operating System
+ / | \     5.1.0 build Mar 14 2024 18:26:01
+ 2006 - 2024 Copyright by RT-Thread team
+
+Hello RT-Thread!
+==================================================
+This is a iar project which mode is ram execution!
+==================================================
+msh >help
+RT-Thread shell commands:
+clear            - clear the terminal screen
+version          - show RT-Thread version information
+list             - list objects
+backtrace        - print backtrace of a thread
+help             - RT-Thread shell help
+ps               - List threads in the system
+free             - Show the memory usage in the system
+pin              - pin [option]
+
+msh >
+```
+
+**应用入口函数**
+
+应用层的入口函数在 **src\hal_entry.c** 中 的 `void hal_entry(void)` 。用户编写的源文件可直接放在 src 目录下。
+
+```c
+void hal_entry(void)
+{
+    rt_kprintf("\nHello RT-Thread!\n");
+    rt_kprintf("==================================================\n");
+    rt_kprintf("This is a iar project which mode is ram execution!\n");
+    rt_kprintf("==================================================\n");
+
+    while (1)
+    {
+        rt_pin_write(LED_PIN, PIN_HIGH);
+        rt_thread_mdelay(500);
+        rt_pin_write(LED_PIN, PIN_LOW);
+        rt_thread_mdelay(500);
+    }
+}
+```
+
+### 进阶使用
+
+**资料及文档**
+
+- [开发板官网主页](https://www.renesas.cn/zh/products/microcontrollers-microprocessors/rz-mpus/rzn2l-integrated-tsn-compliant-3-port-gigabit-ethernet-switch-enables-various-industrial-applications)
+- [开发板数据手册](https://www.renesas.cn/zh/document/dst/rzn2l-group-datasheet?r=1622651)
+- [开发板硬件手册](https://www.renesas.cn/zh/document/mah/rzn2l-group-users-manual-hardware?r=1622651)
+- [EtherKit用户手册](https://github.com/RT-Thread-Studio/sdk-bsp-rzn2l-etherkit/blob/master/docs/EtherKit_User_Manual.pdf)
+- [RZ/N2L MCU 快速入门指南](https://www.renesas.cn/zh/document/apn/rzt2-rzn2-device-setup-guide-flash-boot-application-note?r=1622651)
+- [RZ/N2L Easy Download Guide](https://www.renesas.cn/zh/document/gde/rzn2l-easy-download-guide?r=1622651)
+- [Renesas RZ/N2L Group](https://www.renesas.cn/zh/document/fly/renesas-rzn2l-group?r=1622651)
+
+**FSP 配置**
+
+需要修改瑞萨的 BSP 外设配置或添加新的外设端口,需要用到瑞萨的 [FSP](https://www2.renesas.cn/jp/zh/software-tool/flexible-software-package-fsp#document) 配置工具。请务必按照如下步骤完成配置。配置中有任何问题可到[RT-Thread 社区论坛](https://club.rt-thread.org/)中提问。
+
+1. [下载灵活配置软件包 (FSP) | Renesas](https://github.com/renesas/rzn-fsp/releases/download/v2.0.0/setup_rznfsp_v2_0_0_rzsc_v2024-01.1.exe),请使用 FSP 2.0.0 版本
+2. 如何将 **”EtherKit板级支持包“**添加到 FSP 中,请参考文档[如何导入板级支持包](https://www2.renesas.cn/document/ppt/1527171?language=zh&r=1527191)
+3. 请参考文档:[RA系列使用FSP配置外设驱动](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/make-bsp/renesas-ra/RA系列使用FSP配置外设驱动?id=ra系列使用-fsp-配置外设驱动)。
+
+**ENV 配置**
+
+- 如何使用 ENV 工具:[RT-Thread env 工具用户手册](https://www.rt-thread.org/document/site/#/development-tools/env/env)
+
+此 BSP 默认只开启了 UART0 的功能,如果需使用更多高级功能例如组件、软件包等,需要利用 ENV 工具进行配置。
+
+步骤如下:
+1. 在 bsp 下打开 env 工具。
+2. 输入`menuconfig`命令配置工程,配置好之后保存退出。
+3. 输入`pkgs --update`命令更新软件包。
+4. 输入`scons --target=iar` 命令重新生成工程。
+
+## 联系人信息
+
+在使用过程中若您有任何的想法和建议,建议您通过以下方式来联系到我们  [RT-Thread 社区论坛](https://club.rt-thread.org/)
+
+## 贡献代码
+
+如果您对 EtherKit 感兴趣,并且有一些好玩的项目愿意与大家分享的话欢迎给我们贡献代码,您可以参考 [如何向 RT-Thread 代码贡献](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/development-guide/github/github)。

+ 27 - 0
bsp/renesas/rzn2l_etherkit/SConscript

@@ -0,0 +1,27 @@
+# for module compiling
+import os
+Import('RTT_ROOT')
+Import('rtconfig')
+from building import *
+from gcc import *
+
+cwd = GetCurrentDir()
+src = []
+CPPPATH = [cwd]
+group = []
+list = os.listdir(cwd)
+
+if rtconfig.PLATFORM in ['iccarm']:
+    group = DefineGroup('', src, depend = [''], CPPPATH = CPPPATH)
+elif rtconfig.PLATFORM in GetGCCLikePLATFORM():
+    if GetOption('target') != 'mdk5':
+        CPPPATH = [cwd]
+        src = Glob('./src/*.c')
+        group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
+
+for d in list:
+    path = os.path.join(cwd, d)
+    if os.path.isfile(os.path.join(path, 'SConscript')):
+        group = group + SConscript(os.path.join(d, 'SConscript'))
+
+Return('group')

+ 55 - 0
bsp/renesas/rzn2l_etherkit/SConstruct

@@ -0,0 +1,55 @@
+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')]
+try:
+    from building import *
+except:
+    print('Cannot found RT-Thread root directory, please check RTT_ROOT')
+    print(RTT_ROOT)
+    exit(-1)
+
+TARGET = 'rtthread.' + 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)
+
+if rtconfig.PLATFORM in ['iccarm']:
+    env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
+    env.Replace(ARFLAGS = [''])
+    env.Replace(LINKCOM = env["LINKCOM"] + ' --map project.map')
+
+Export('RTT_ROOT')
+Export('rtconfig')
+
+SDK_ROOT = os.path.abspath('./')
+if os.path.exists(SDK_ROOT + '/libraries'):
+    libraries_path_prefix = SDK_ROOT + '/libraries'
+else:
+    libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
+
+SDK_LIB = libraries_path_prefix
+Export('SDK_LIB')
+
+rtconfig.BSP_LIBRARY_TYPE = None
+
+# prepare building environment
+objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
+
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript')))
+
+# make a building
+DoBuilding(TARGET, objs)

+ 572 - 0
bsp/renesas/rzn2l_etherkit/board/Kconfig

@@ -0,0 +1,572 @@
+menu "Hardware Drivers Config"
+
+    config SOC_R9A07G084
+        bool
+        select SOC_SERIES_R9A07G0
+        select RT_USING_COMPONENTS_INIT
+        select RT_USING_USER_MAIN
+        default y
+
+    menu "Onboard Peripheral Drivers"
+
+        config BSP_USING_HYPERRAM
+            bool "Enable XSPI0 CS1 Winbond octal hyperRAM"
+            default n
+
+    endmenu
+
+    menu "On-chip Peripheral Drivers"
+
+        rsource "../../libraries/HAL_Drivers/Kconfig"
+
+        menuconfig BSP_USING_UART
+            bool "Enable UART"
+            default y
+            select RT_USING_SERIAL
+            select RT_USING_SERIAL_V2
+            if BSP_USING_UART
+                menuconfig BSP_USING_UART0
+                    bool "Enable UART0"
+                    default n
+                    if BSP_USING_UART0
+                        config BSP_UART0_RX_USING_DMA
+                            bool "Enable UART0 RX DMA"
+                            depends on BSP_USING_UART0 && RT_SERIAL_USING_DMA
+                            default n
+
+                        config BSP_UART0_TX_USING_DMA
+                            bool "Enable UART0 TX DMA"
+                            depends on BSP_USING_UART0 && RT_SERIAL_USING_DMA
+                            default n
+
+                        config BSP_UART0_RX_BUFSIZE
+                            int "Set UART0 RX buffer size"
+                            range 64 65535
+                            depends on RT_USING_SERIAL_V2
+                            default 256
+
+                        config BSP_UART0_TX_BUFSIZE
+                            int "Set UART0 TX buffer size"
+                            range 0 65535
+                            depends on RT_USING_SERIAL_V2
+                            default 0
+                    endif
+                    
+                menuconfig BSP_USING_UART5
+                    bool "Enable UART5"
+                    default n
+                    if BSP_USING_UART5
+                        config BSP_UART5_RX_USING_DMA
+                            bool "Enable UART5 RX DMA"
+                            depends on BSP_USING_UART5 && RT_SERIAL_USING_DMA
+                            default n
+
+                        config BSP_UART5_TX_USING_DMA
+                            bool "Enable UART5 TX DMA"
+                            depends on BSP_USING_UART5 && RT_SERIAL_USING_DMA
+                            default n
+
+                        config BSP_UART5_RX_BUFSIZE
+                            int "Set UART5 RX buffer size"
+                            range 64 65535
+                            depends on RT_USING_SERIAL_V2
+                            default 256
+
+                        config BSP_UART5_TX_BUFSIZE
+                            int "Set UART5 TX buffer size"
+                            range 0 65535
+                            depends on RT_USING_SERIAL_V2
+                            default 0
+                    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"
+                config BSP_USING_ADC1
+                    bool "Enable ADC1"
+                config BSP_USING_ADC2
+                    bool "Enable ADC2"
+                config BSP_USING_ADC3
+                    bool "Enable ADC3"                    
+                    default n
+            endif
+
+        menuconfig BSP_USING_CANFD
+            bool "Enable CANFD"
+            default n
+            select RT_USING_CAN
+            select RT_CAN_USING_CANFD
+            if BSP_USING_CANFD
+                config BSP_USING_CAN_RZ
+                    bool "Enabled this option means turning on standard CAN, while disabling it means switching to CANFD."
+                    default n
+                config BSP_USING_CAN0
+                    bool "Enable CANFD0"
+                    default n
+                config BSP_USING_CAN1
+                    bool "Enable CANFD1"
+                    default n
+            endif
+
+        menuconfig BSP_USING_SCI
+            bool "Enable SCI Controller"
+            default n
+            config BSP_USING_SCIn_SPI
+                bool
+                depends on BSP_USING_SCI
+                select RT_USING_SPI
+                default n
+
+            config BSP_USING_SCIn_I2C
+                bool
+                depends on BSP_USING_SCI
+                select RT_USING_I2C
+                default n
+
+            config BSP_USING_SCIn_UART
+                bool
+                depends on BSP_USING_SCI
+                select RT_USING_SERIAL
+                select RT_USING_SERIAL_V2
+                default n
+
+            if BSP_USING_SCI
+                config BSP_USING_SCI0
+                    bool "Enable SCI0"
+                    default n
+                    if BSP_USING_SCI0
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI0_SPI
+                        config BSP_USING_SCI0_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI0_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI0_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI0_UART
+                            config BSP_SCI0_UART_RX_BUFSIZE
+                                int "Set UART0 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI0_UART_TX_BUFSIZE
+                                int "Set UART0 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI1
+                    bool "Enable SCI1"
+                    default n
+                    if BSP_USING_SCI1
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI1_SPI
+                        config BSP_USING_SCI1_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI1_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI1_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI1_UART
+                            config BSP_SCI1_UART_RX_BUFSIZE
+                                int "Set UART1 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI1_UART_TX_BUFSIZE
+                                int "Set UART1 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI2
+                    bool "Enable SCI2"
+                    default n
+                    if BSP_USING_SCI2
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI2_SPI
+                        config BSP_USING_SCI2_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI2_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI2_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI2_UART
+                            config BSP_SCI2_UART_RX_BUFSIZE
+                                int "Set UART2 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI2_UART_TX_BUFSIZE
+                                int "Set UART2 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI3
+                    bool "Enable SCI3"
+                    default n
+                    if BSP_USING_SCI3
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI3_SPI
+                        config BSP_USING_SCI3_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI3_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI3_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI3_UART
+                            config BSP_SCI3_UART_RX_BUFSIZE
+                                int "Set UART3 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI3_UART_TX_BUFSIZE
+                                int "Set UART3 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI4
+                    bool "Enable SCI4"
+                    default n
+                    if BSP_USING_SCI4
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI4_SPI
+                        config BSP_USING_SCI4_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI4_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI4_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI4_UART
+                            config BSP_SCI4_UART_RX_BUFSIZE
+                                int "Set UART4 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI4_UART_TX_BUFSIZE
+                                int "Set UART4 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI5
+                    bool "Enable SCI5"
+                    default n
+                    if BSP_USING_SCI5
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI5_SPI
+                        config BSP_USING_SCI5_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI5_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI5_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI5_UART
+                            config BSP_SCI5_UART_RX_BUFSIZE
+                                int "Set UART5 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI5_UART_TX_BUFSIZE
+                                int "Set UART5 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI6
+                    bool "Enable SCI6"
+                    default n
+                    if BSP_USING_SCI6
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI6_SPI
+                        config BSP_USING_SCI6_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI6_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI6_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI6_UART
+                            config BSP_SCI6_UART_RX_BUFSIZE
+                                int "Set UART6 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI6_UART_TX_BUFSIZE
+                                int "Set UART6 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI7
+                    bool "Enable SCI7"
+                    default n
+                    if BSP_USING_SCI7
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI7_SPI
+                        config BSP_USING_SCI7_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI7_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI7_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI7_UART
+                            config BSP_SCI7_UART_RX_BUFSIZE
+                                int "Set UART7 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI7_UART_TX_BUFSIZE
+                                int "Set UART7 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI8
+                    bool "Enable SCI8"
+                    default n
+                    if BSP_USING_SCI8
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI8_SPI
+                        config BSP_USING_SCI8_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI8_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI8_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI8_UART
+                            config BSP_SCI8_UART_RX_BUFSIZE
+                                int "Set UART8 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI8_UART_TX_BUFSIZE
+                                int "Set UART8 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+                config BSP_USING_SCI9
+                    bool "Enable SCI9"
+                    default n
+                    if BSP_USING_SCI9
+                        choice
+                        prompt "choice sci mode"
+                        default BSP_USING_SCI9_SPI
+                        config BSP_USING_SCI9_SPI
+                            select BSP_USING_SCIn_SPI
+                            bool "SPI mode"
+                        config BSP_USING_SCI9_I2C
+                            select BSP_USING_SCIn_I2C
+                            bool "I2C mode"
+                        config BSP_USING_SCI9_UART
+                            select BSP_USING_SCIn_UART
+                            bool "UART mode"
+                        endchoice
+                        if BSP_USING_SCI9_UART
+                            config BSP_SCI9_UART_RX_BUFSIZE
+                                int "Set UART9 RX buffer size"
+                                range 64 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 256
+
+                            config BSP_SCI9_UART_TX_BUFSIZE
+                                int "Set UART9 TX buffer size"
+                                range 0 65535
+                                depends on RT_USING_SERIAL_V2
+                                default 0
+                        endif
+                    endif
+            endif
+
+        menuconfig BSP_USING_I2C
+            bool "Enable I2C BUS"
+            default n
+            select RT_USING_I2C
+            select RT_USING_I2C_BITOPS
+            select RT_USING_PIN
+            if BSP_USING_I2C
+                config BSP_USING_HW_I2C
+                    bool "Enable Hardware I2C BUS"
+                    default n
+                if BSP_USING_HW_I2C
+                    config BSP_USING_HW_I2C0
+                        bool "Enable Hardware I2C0 BUS"
+                        default n
+                endif
+                if BSP_USING_HW_I2C
+                    config BSP_USING_HW_I2C1
+                        bool "Enable Hardware I2C1 BUS"
+                        default n
+                endif
+            if !BSP_USING_HW_I2C
+                    menuconfig BSP_USING_I2C1
+                        bool "Enable I2C1 BUS (software simulation)"
+                        default y
+                        if BSP_USING_I2C1
+                            config BSP_I2C1_SCL_PIN
+                                hex "i2c1 scl pin number"
+                                range 0x0000 0x0B0F
+                                default 0x0B03
+                            config BSP_I2C1_SDA_PIN
+                                hex "I2C1 sda pin number"
+                                range 0x0000 0x0B0F
+                                default 0x050E
+                    endif
+                endif
+            endif
+
+        menuconfig BSP_USING_SPI
+            bool "Enable SPI BUS"
+            default n
+            select RT_USING_SPI
+            if BSP_USING_SPI 
+                config BSP_USING_SPI0
+                    bool "Enable SPI0 BUS"
+                    default n
+                config BSP_USING_SPI1
+                    bool "Enable SPI1 BUS"
+                    default n
+                config BSP_USING_SPI2
+                    bool "Enable SPI2 BUS"
+                    default n
+            endif
+
+        menuconfig BSP_USING_TIM
+	        bool "Enable timer"
+	        default n
+	        select RT_USING_HWTIMER
+	        if BSP_USING_TIM
+	            config BSP_USING_TIM0
+	                bool "Enable TIM0"
+	                default n
+	            config BSP_USING_TIM1
+	                bool "Enable TIM1"
+	                default n
+	        endif
+
+        menuconfig BSP_USING_PWM
+            bool "Enable PWM"
+            default n
+            select RT_USING_PWM
+            if BSP_USING_PWM
+                config BSP_USING_PWM5
+                    bool "Enable GPT5 (32-Bits) output PWM"
+                    default n
+            endif
+
+        config BSP_USING_ETH
+            bool "Enable Ethernet"
+            select RT_USING_SAL
+            select RT_USING_LWIP
+            select RT_USING_NETDEV
+            default n
+
+    endmenu
+    
+    menu "Board extended module Drivers"
+         menuconfig BSP_USING_RW007
+                bool "Enable RW007"
+                default n
+                select PKG_USING_RW007
+                select BSP_USING_SPI
+                select BSP_USING_SPI2
+                select RT_USING_MEMPOOL
+                select RW007_NOT_USE_EXAMPLE_DRIVERS
+
+            if BSP_USING_RW007
+                config RA_RW007_SPI_BUS_NAME
+                    string "RW007 BUS NAME"
+                    default "spi2"
+
+                config RA_RW007_CS_PIN
+                    hex "(HEX)CS pin index"
+                    default 0x1207
+
+                config RA_RW007_BOOT0_PIN
+                    hex "(HEX)BOOT0 pin index (same as spi clk pin)"
+                    default 0x1204
+
+                config RA_RW007_BOOT1_PIN
+                    hex "(HEX)BOOT1 pin index (same as spi cs pin)"
+                    default 0x1207
+
+                config RA_RW007_INT_BUSY_PIN
+                    hex "(HEX)INT/BUSY pin index"
+                    default 0x1102
+
+                config RA_RW007_RST_PIN
+                    hex "(HEX)RESET pin index"
+                    default 0x1706
+            endif
+    endmenu
+endmenu

+ 16 - 0
bsp/renesas/rzn2l_etherkit/board/SConscript

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

+ 65 - 0
bsp/renesas/rzn2l_etherkit/board/board.h

@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2024-03-11    Wangyuqiang   first version
+ */
+
+#ifndef __BOARD_H__
+#define __BOARD_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rtdef.h>
+#include <cp15.h>
+#include <hal_data.h>
+
+#define RZ_SRAM_SIZE    1536 /* The SRAM size of the chip needs to be modified */
+#define RZ_SRAM_END     (0x10000000 + RZ_SRAM_SIZE * 1024 - 1)
+
+#ifdef __ARMCC_VERSION
+extern int Image$$RAM_END$$ZI$$Base;
+#define HEAP_BEGIN  ((void *)&Image$$RAM_END$$ZI$$Base)
+#elif __ICCARM__
+#pragma section="CSTACK"
+#define HEAP_BEGIN      (__segment_end("CSTACK"))
+#else
+extern int __bss_end__;
+#define HEAP_BEGIN      ((void *)&__bss_end__)
+#endif
+
+#define HEAP_END        RZ_SRAM_END
+
+/***********************************************************************************************************************
+ * Macro definitions
+ **********************************************************************************************************************/
+#define MAX_HANDLERS BSP_VECTOR_TABLE_MAX_ENTRIES
+#define GIC_IRQ_START   0
+#define GIC_ACK_INTID_MASK  (0x000003FFU)
+/* number of interrupts on board */
+#define ARM_GIC_NR_IRQS     (448)
+/* only one GIC available */
+#define ARM_GIC_MAX_NR      1
+/*  end defined */
+
+#define GICV3_DISTRIBUTOR_BASE_ADDR     (0x100000)
+
+/* the basic constants and interfaces needed by gic */
+rt_inline rt_uint32_t platform_get_gic_dist_base(void)
+{
+    rt_uint32_t gic_base;
+
+    __get_cp(15, 1, gic_base, 15, 3, 0);
+    return gic_base + GICV3_DISTRIBUTOR_BASE_ADDR;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác