فهرست منبع

[BSP] xmc7100外设适配和RTDuino适配

hydevcode 2 ماه پیش
والد
کامیت
16e729e147

+ 45 - 3
bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c

@@ -18,6 +18,8 @@
 
 
 #if defined(SOC_XMC7200D_E272K8384AA)
 #if defined(SOC_XMC7200D_E272K8384AA)
 #define __IFX_PORT_MAX      35u
 #define __IFX_PORT_MAX      35u
+#elif defined(SOC_XMC7100D_F144K4160AA)
+#define __IFX_PORT_MAX      33u
 #else
 #else
 #define __IFX_PORT_MAX      14u
 #define __IFX_PORT_MAX      14u
 #endif
 #endif
@@ -57,7 +59,8 @@ static struct pin_irq_map pin_irq_map[] =
     {CYHAL_PORT_19,  ioss_interrupts_gpio_19_IRQn},
     {CYHAL_PORT_19,  ioss_interrupts_gpio_19_IRQn},
     {CYHAL_PORT_20,  ioss_interrupts_gpio_20_IRQn},
     {CYHAL_PORT_20,  ioss_interrupts_gpio_20_IRQn},
     {CYHAL_PORT_21,  ioss_interrupts_gpio_21_IRQn},
     {CYHAL_PORT_21,  ioss_interrupts_gpio_21_IRQn},
-    {CYHAL_PORT_22,  ioss_interrupts_gpio_23_IRQn},
+    {CYHAL_PORT_22,  ioss_interrupts_gpio_22_IRQn},
+    {CYHAL_PORT_23,  ioss_interrupts_gpio_23_IRQn},
     {CYHAL_PORT_24,  ioss_interrupts_gpio_24_IRQn},
     {CYHAL_PORT_24,  ioss_interrupts_gpio_24_IRQn},
     {CYHAL_PORT_25,  ioss_interrupts_gpio_25_IRQn},
     {CYHAL_PORT_25,  ioss_interrupts_gpio_25_IRQn},
     {CYHAL_PORT_26,  ioss_interrupts_gpio_26_IRQn},
     {CYHAL_PORT_26,  ioss_interrupts_gpio_26_IRQn},
@@ -70,6 +73,26 @@ static struct pin_irq_map pin_irq_map[] =
     {CYHAL_PORT_33,  ioss_interrupts_gpio_33_IRQn},
     {CYHAL_PORT_33,  ioss_interrupts_gpio_33_IRQn},
     {CYHAL_PORT_34,  ioss_interrupts_gpio_34_IRQn},
     {CYHAL_PORT_34,  ioss_interrupts_gpio_34_IRQn},
 #endif
 #endif
+#if defined(SOC_XMC7100D_F144K4160AA)
+    {CYHAL_PORT_15,  ioss_interrupts_gpio_15_IRQn},
+    {CYHAL_PORT_16,  ioss_interrupts_gpio_16_IRQn},
+    {CYHAL_PORT_17,  ioss_interrupts_gpio_17_IRQn},
+    {CYHAL_PORT_18,  ioss_interrupts_gpio_18_IRQn},
+    {CYHAL_PORT_19,  ioss_interrupts_gpio_19_IRQn},
+    {CYHAL_PORT_20,  ioss_interrupts_gpio_20_IRQn},
+    {CYHAL_PORT_21,  ioss_interrupts_gpio_21_IRQn},
+    {CYHAL_PORT_22,  ioss_interrupts_gpio_22_IRQn},
+    {CYHAL_PORT_23,  ioss_interrupts_gpio_23_IRQn},
+    {CYHAL_PORT_24,  ioss_interrupts_gpio_24_IRQn},
+    {CYHAL_PORT_25,  ioss_interrupts_gpio_25_IRQn},
+    {CYHAL_PORT_26,  ioss_interrupts_gpio_26_IRQn},
+    {CYHAL_PORT_27,  ioss_interrupts_gpio_27_IRQn},
+    {CYHAL_PORT_28,  ioss_interrupts_gpio_28_IRQn},
+    {CYHAL_PORT_29,  ioss_interrupts_gpio_29_IRQn},
+    {CYHAL_PORT_30,  ioss_interrupts_gpio_30_IRQn},
+    {CYHAL_PORT_31,  ioss_interrupts_gpio_31_IRQn},
+    {CYHAL_PORT_32,  ioss_interrupts_gpio_32_IRQn},
+#endif
 };
 };
 
 
 static struct rt_pin_irq_hdr pin_irq_handler_tab[] =
 static struct rt_pin_irq_hdr pin_irq_handler_tab[] =
@@ -111,6 +134,25 @@ static struct rt_pin_irq_hdr pin_irq_handler_tab[] =
     {-1, 0, RT_NULL, RT_NULL},
     {-1, 0, RT_NULL, RT_NULL},
     {-1, 0, RT_NULL, RT_NULL},
     {-1, 0, RT_NULL, RT_NULL},
 #endif
 #endif
+#if defined(SOC_XMC7100D_F144K4160AA)
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+    {-1, 0, RT_NULL, RT_NULL},
+#endif
 };
 };
 
 
 rt_inline void pin_irq_handler(int irqno)
 rt_inline void pin_irq_handler(int irqno)
@@ -320,7 +362,7 @@ static rt_err_t ifx_pin_irq_enable(struct rt_device *device, rt_base_t pin,
 
 
         irqmap = &pin_irq_map[gpio_port];
         irqmap = &pin_irq_map[gpio_port];
 
 
-#if !defined(COMPONENT_CAT1C)
+#if !defined(COMPONENT_CAT1C)||defined(SOC_XMC7100D_F144K4160AA)
         IRQn_Type irqn = irqmap->irqno;
         IRQn_Type irqn = irqmap->irqno;
         irq_cb_data[irqn].callback = irq_callback;
         irq_cb_data[irqn].callback = irq_callback;
         irq_cb_data[irqn].callback_arg = (rt_uint16_t *)&pin_irq_map[gpio_port].port;
         irq_cb_data[irqn].callback_arg = (rt_uint16_t *)&pin_irq_map[gpio_port].port;
@@ -356,7 +398,7 @@ static rt_err_t ifx_pin_irq_enable(struct rt_device *device, rt_base_t pin,
 
 
         irqmap = &pin_irq_map[gpio_port];
         irqmap = &pin_irq_map[gpio_port];
 
 
-#if !defined(COMPONENT_CAT1C)
+#if !defined(COMPONENT_CAT1C)||defined(SOC_XMC7100D_F144K4160AA)
         IRQn_Type irqn = irqmap->irqno;
         IRQn_Type irqn = irqmap->irqno;
         if (irqn < 0 || irqn >= PIN_IFXPORT_MAX)
         if (irqn < 0 || irqn >= PIN_IFXPORT_MAX)
         {
         {

+ 9 - 0
bsp/Infineon/libraries/HAL_Drivers/drv_spi.c

@@ -39,6 +39,14 @@
 static struct ifx_spi_handle spi_bus_obj[] =
 static struct ifx_spi_handle spi_bus_obj[] =
 {
 {
 #if defined(BSP_USING_SPI0)
 #if defined(BSP_USING_SPI0)
+#if defined(SOC_XMC7100D_F144K4160AA)
+    {
+        .bus_name = "spi0",
+        .sck_pin = GET_PIN(0, 2),
+        .miso_pin = GET_PIN(1, 0),
+        .mosi_pin = GET_PIN(1, 1),
+    },
+#else
     {
     {
         .bus_name = "spi0",
         .bus_name = "spi0",
         .sck_pin = GET_PIN(0, 4),
         .sck_pin = GET_PIN(0, 4),
@@ -46,6 +54,7 @@ static struct ifx_spi_handle spi_bus_obj[] =
         .mosi_pin = GET_PIN(0, 2),
         .mosi_pin = GET_PIN(0, 2),
     },
     },
 #endif
 #endif
+#endif
 #if defined(BSP_USING_SPI3)
 #if defined(BSP_USING_SPI3)
     {
     {
         .bus_name = "spi3",
         .bus_name = "spi3",

+ 17 - 1
bsp/Infineon/xmc7100d-f144k4160aa/.ci/attachconfig/ci.attachconfig.yml

@@ -7,10 +7,26 @@ Drivers.I2C:
     kconfig:
     kconfig:
       - CONFIG_BSP_USING_I2C=y
       - CONFIG_BSP_USING_I2C=y
       - CONFIG_BSP_USING_HW_I2C1=y
       - CONFIG_BSP_USING_HW_I2C1=y
+      - CONFIG_BSP_USING_HW_I2C2=y
+Drivers.SPI:
+    <<: *scons
+    kconfig:
+      - CONFIG_BSP_USING_SPI=y
+      - CONFIG_BSP_USING_SPI5=y
+      - CONFIG_BSP_USING_SPI0=y
 # ------ Peripheral CI ------
 # ------ Peripheral CI ------
 Peripheral.tfcard:
 Peripheral.tfcard:
     kconfig:
     kconfig:
       - CONFIG_BSP_USING_TF_CARD=y
       - CONFIG_BSP_USING_TF_CARD=y
 Peripheral.qmi8658:
 Peripheral.qmi8658:
     kconfig:
     kconfig:
-      - CONFIG_BSP_USING_QMI8658=y
+      - CONFIG_BSP_USING_QMI8658=y
+Peripheral.rw007:
+    kconfig:
+      - CONFIG_BSP_USING_RW007=y
+      - CONFIG_RW007_NOT_USE_EXAMPLE_DRIVERS=y
+Peripheral.arduino:
+    kconfig:
+      - CONFIG_BSP_USING_ARDUINO=y
+      - CONFIG_BSP_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD=y
+      

+ 48 - 9
bsp/Infineon/xmc7100d-f144k4160aa/.config

@@ -104,11 +104,9 @@
 #
 #
 # CONFIG_RT_KLIBC_USING_USER_STRNLEN is not set
 # CONFIG_RT_KLIBC_USING_USER_STRNLEN is not set
 # end of rt_strnlen options
 # end of rt_strnlen options
-
-# CONFIG_RT_UTEST_TC_USING_KLIBC is not set
 # end of klibc options
 # end of klibc options
 
 
-CONFIG_RT_NAME_MAX=8
+CONFIG_RT_NAME_MAX=15
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_NANO is not set
 # CONFIG_RT_USING_NANO is not set
 # CONFIG_RT_USING_SMART is not set
 # CONFIG_RT_USING_SMART is not set
@@ -211,6 +209,8 @@ CONFIG_FINSH_THREAD_PRIORITY=20
 CONFIG_FINSH_THREAD_STACK_SIZE=4096
 CONFIG_FINSH_THREAD_STACK_SIZE=4096
 CONFIG_FINSH_USING_HISTORY=y
 CONFIG_FINSH_USING_HISTORY=y
 CONFIG_FINSH_HISTORY_LINES=5
 CONFIG_FINSH_HISTORY_LINES=5
+# CONFIG_FINSH_USING_WORD_OPERATION is not set
+# CONFIG_FINSH_USING_FUNC_EXT is not set
 CONFIG_FINSH_USING_SYMTAB=y
 CONFIG_FINSH_USING_SYMTAB=y
 CONFIG_FINSH_CMD_SIZE=80
 CONFIG_FINSH_CMD_SIZE=80
 CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
 CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
@@ -235,16 +235,22 @@ CONFIG_FINSH_USING_OPTION_COMPLETION=y
 # CONFIG_RT_USING_DEV_BUS is not set
 # CONFIG_RT_USING_DEV_BUS is not set
 CONFIG_RT_USING_DEVICE_IPC=y
 CONFIG_RT_USING_DEVICE_IPC=y
 CONFIG_RT_UNAMED_PIPE_NUMBER=64
 CONFIG_RT_UNAMED_PIPE_NUMBER=64
-# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
+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=y
 CONFIG_RT_USING_SERIAL_V1=y
 CONFIG_RT_USING_SERIAL_V1=y
 # CONFIG_RT_USING_SERIAL_V2 is not set
 # CONFIG_RT_USING_SERIAL_V2 is not set
 # CONFIG_RT_SERIAL_USING_DMA is not set
 # CONFIG_RT_SERIAL_USING_DMA is not set
-CONFIG_RT_SERIAL_RB_BUFSZ=64
+CONFIG_RT_SERIAL_RB_BUFSZ=256
 # CONFIG_RT_USING_SERIAL_BYPASS is not set
 # CONFIG_RT_USING_SERIAL_BYPASS is not set
 # CONFIG_RT_USING_CAN is not set
 # CONFIG_RT_USING_CAN is not set
 # CONFIG_RT_USING_CPUTIME is not set
 # CONFIG_RT_USING_CPUTIME is not set
-# CONFIG_RT_USING_I2C is not set
+CONFIG_RT_USING_I2C=y
+# CONFIG_RT_I2C_DEBUG is not set
+CONFIG_RT_USING_I2C_BITOPS=y
+# CONFIG_RT_I2C_BITOPS_DEBUG is not set
+# CONFIG_RT_USING_SOFT_I2C is not set
 # CONFIG_RT_USING_PHY is not set
 # CONFIG_RT_USING_PHY is not set
 # CONFIG_RT_USING_PHY_V2 is not set
 # CONFIG_RT_USING_PHY_V2 is not set
 # CONFIG_RT_USING_ADC is not set
 # CONFIG_RT_USING_ADC is not set
@@ -252,7 +258,7 @@ CONFIG_RT_SERIAL_RB_BUFSZ=64
 # CONFIG_RT_USING_NULL is not set
 # CONFIG_RT_USING_NULL is not set
 # CONFIG_RT_USING_ZERO is not set
 # CONFIG_RT_USING_ZERO is not set
 # CONFIG_RT_USING_RANDOM is not set
 # CONFIG_RT_USING_RANDOM is not set
-# CONFIG_RT_USING_PWM is not set
+CONFIG_RT_USING_PWM=y
 # CONFIG_RT_USING_PULSE_ENCODER is not set
 # CONFIG_RT_USING_PULSE_ENCODER is not set
 # CONFIG_RT_USING_INPUT_CAPTURE is not set
 # CONFIG_RT_USING_INPUT_CAPTURE is not set
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NOR is not set
@@ -260,7 +266,13 @@ CONFIG_RT_SERIAL_RB_BUFSZ=64
 # CONFIG_RT_USING_PM is not set
 # CONFIG_RT_USING_PM is not set
 # CONFIG_RT_USING_RTC is not set
 # CONFIG_RT_USING_RTC is not set
 # CONFIG_RT_USING_SDIO is not set
 # CONFIG_RT_USING_SDIO is not set
-# CONFIG_RT_USING_SPI is not set
+CONFIG_RT_USING_SPI=y
+# CONFIG_RT_USING_SOFT_SPI is not set
+# CONFIG_RT_USING_QSPI is not set
+# CONFIG_RT_USING_SPI_MSD is not set
+# CONFIG_RT_USING_SFUD is not set
+# CONFIG_RT_USING_ENC28J60 is not set
+# CONFIG_RT_USING_SPI_WIFI is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_WDT is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_AUDIO is not set
 # CONFIG_RT_USING_SENSOR is not set
 # CONFIG_RT_USING_SENSOR is not set
@@ -387,6 +399,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_FREEMODBUS is not set
 # CONFIG_PKG_USING_FREEMODBUS is not set
 # CONFIG_PKG_USING_NANOPB is not set
 # CONFIG_PKG_USING_NANOPB is not set
 # CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set
 # CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set
+# CONFIG_PKG_USING_ESP_HOSTED is not set
 
 
 #
 #
 # Wi-Fi
 # Wi-Fi
@@ -494,6 +507,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_QMODBUS is not set
 # CONFIG_PKG_USING_QMODBUS is not set
 # CONFIG_PKG_USING_PNET is not set
 # CONFIG_PKG_USING_PNET is not set
 # CONFIG_PKG_USING_OPENER is not set
 # CONFIG_PKG_USING_OPENER is not set
+# CONFIG_PKG_USING_FREEMQTT is not set
 # end of IoT - internet of things
 # end of IoT - internet of things
 
 
 #
 #
@@ -630,6 +644,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_ZDEBUG is not set
 # CONFIG_PKG_USING_ZDEBUG is not set
 # CONFIG_PKG_USING_RVBACKTRACE is not set
 # CONFIG_PKG_USING_RVBACKTRACE is not set
 # CONFIG_PKG_USING_HPATCHLITE is not set
 # CONFIG_PKG_USING_HPATCHLITE is not set
+# CONFIG_PKG_USING_THREAD_METRIC is not set
 # end of tools packages
 # end of tools packages
 
 
 #
 #
@@ -723,6 +738,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_RMP is not set
 # CONFIG_PKG_USING_RMP is not set
 # CONFIG_PKG_USING_R_RHEALSTONE is not set
 # CONFIG_PKG_USING_R_RHEALSTONE is not set
 # CONFIG_PKG_USING_HEARTBEAT is not set
 # CONFIG_PKG_USING_HEARTBEAT is not set
+# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set
 # end of system packages
 # end of system packages
 
 
 #
 #
@@ -822,6 +838,7 @@ CONFIG_PKG_INFINEON_RETARGET_IO_VER="latest"
 
 
 # CONFIG_PKG_USING_NRF5X_SDK is not set
 # CONFIG_PKG_USING_NRF5X_SDK is not set
 # CONFIG_PKG_USING_NRFX is not set
 # CONFIG_PKG_USING_NRFX is not set
+# CONFIG_PKG_USING_RASPBERRYPI_PICO_RP2350_SDK is not set
 # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
 # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
 # CONFIG_PKG_USING_MM32 is not set
 # CONFIG_PKG_USING_MM32 is not set
 
 
@@ -864,6 +881,10 @@ CONFIG_PKG_INFINEON_RETARGET_IO_VER="latest"
 #
 #
 # HC32 DDL Drivers
 # HC32 DDL Drivers
 #
 #
+# CONFIG_PKG_USING_HC32F3_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_HC32F3_SERIES_DRIVER is not set
+# CONFIG_PKG_USING_HC32F4_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_HC32F4_SERIES_DRIVER is not set
 # end of HC32 DDL Drivers
 # end of HC32 DDL Drivers
 
 
 #
 #
@@ -877,6 +898,21 @@ CONFIG_PKG_INFINEON_RETARGET_IO_VER="latest"
 # CONFIG_PKG_USING_NXP_IMX6UL_DRIVER is not set
 # CONFIG_PKG_USING_NXP_IMX6UL_DRIVER is not set
 # CONFIG_PKG_USING_NXP_IMXRT_DRIVER is not set
 # CONFIG_PKG_USING_NXP_IMXRT_DRIVER is not set
 # end of NXP HAL & SDK Drivers
 # end of NXP HAL & SDK Drivers
+
+#
+# NUVOTON Drivers
+#
+# CONFIG_PKG_USING_NUVOTON_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_NUVOTON_SERIES_DRIVER is not set
+# CONFIG_PKG_USING_NUVOTON_ARM926_LIB is not set
+# end of NUVOTON Drivers
+
+#
+# GD32 Drivers
+#
+# CONFIG_PKG_USING_GD32_ARM_CMSIS_DRIVER is not set
+# CONFIG_PKG_USING_GD32_ARM_SERIES_DRIVER is not set
+# end of GD32 Drivers
 # end of HAL & SDK Drivers
 # end of HAL & SDK Drivers
 
 
 #
 #
@@ -1048,6 +1084,7 @@ CONFIG_PKG_INFINEON_RETARGET_IO_VER="latest"
 # CONFIG_PKG_USING_SEAN_WS2812B is not set
 # CONFIG_PKG_USING_SEAN_WS2812B is not set
 # CONFIG_PKG_USING_IC74HC165 is not set
 # CONFIG_PKG_USING_IC74HC165 is not set
 # CONFIG_PKG_USING_IST8310 is not set
 # CONFIG_PKG_USING_IST8310 is not set
+# CONFIG_PKG_USING_ST7789_SPI is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 # end of peripheral libraries and drivers
 # end of peripheral libraries and drivers
 
 
@@ -1402,6 +1439,8 @@ CONFIG_SOC_XMC7100D_F144K4160AA=y
 CONFIG_BSP_USING_USB_TO_USART=y
 CONFIG_BSP_USING_USB_TO_USART=y
 # CONFIG_BSP_USING_TF_CARD is not set
 # CONFIG_BSP_USING_TF_CARD is not set
 # CONFIG_BSP_USING_QMI8658 is not set
 # CONFIG_BSP_USING_QMI8658 is not set
+# CONFIG_BSP_USING_ARDUINO is not set
+# CONFIG_BSP_USING_RW007 is not set
 # end of Onboard Peripheral Drivers
 # end of Onboard Peripheral Drivers
 
 
 #
 #
@@ -1409,7 +1448,7 @@ CONFIG_BSP_USING_USB_TO_USART=y
 #
 #
 CONFIG_BSP_USING_GPIO=y
 CONFIG_BSP_USING_GPIO=y
 CONFIG_BSP_USING_UART=y
 CONFIG_BSP_USING_UART=y
-CONFIG_BSP_USING_UART2=y
+# CONFIG_BSP_USING_UART2 is not set
 CONFIG_BSP_USING_UART4=y
 CONFIG_BSP_USING_UART4=y
 CONFIG_UART_CPU_IRQ_Number=3
 CONFIG_UART_CPU_IRQ_Number=3
 # CONFIG_BSP_USING_I2C is not set
 # CONFIG_BSP_USING_I2C is not set

+ 4 - 32
bsp/Infineon/xmc7100d-f144k4160aa/README.md

@@ -21,8 +21,8 @@
 |  USB 转串口  |     支持     |  UART4   |
 |  USB 转串口  |     支持     |  UART4   |
 |     GPIO     |     支持     |    —     |
 |     GPIO     |     支持     |    —     |
 |     UART     |     支持     | UART2,UART4  |
 |     UART     |     支持     | UART2,UART4  |
-|     I2C     |     支持     | I2C1  |
-
+|     I2C     |     支持     | I2C1,I2C2  |
+|     SPI     |     支持     | SPI0,SPI5  |
 ## 快速上手
 ## 快速上手
 
 
 本 BSP 是以 `GCC` 和 `Jlink` 为开发环境(编译器:GCC),接下来介绍如何将系统运行起来。
 本 BSP 是以 `GCC` 和 `Jlink` 为开发环境(编译器:GCC),接下来介绍如何将系统运行起来。
@@ -59,7 +59,6 @@ Vscode下载拓展Cortex-Debug,然后在.vscode下新建launch.json文件,并
             "interface": "swd",
             "interface": "swd",
             "serialNumber": "",
             "serialNumber": "",
             "preLaunchCommands": [
             "preLaunchCommands": [
-                // Program via the hex file to get complete coverage
                 "exec-file rt-thread.hex"
                 "exec-file rt-thread.hex"
             ],
             ],
             "overrideRestartCommands": [
             "overrideRestartCommands": [
@@ -68,34 +67,7 @@ Vscode下载拓展Cortex-Debug,然后在.vscode下新建launch.json文件,并
             // svdFile is optional, it can be very large.
             // svdFile is optional, it can be very large.
             "svdFile": "${workspaceRoot}/libs/cat1c4m.svd",
             "svdFile": "${workspaceRoot}/libs/cat1c4m.svd",
             "breakAfterReset": true,
             "breakAfterReset": true,
-            "runToEntryPoint": "main",    // Specifies application entry point name where program will halt
-            "showDevDebugOutput": "none",
-            "presentation": {
-                "hidden": false,
-                "group": "CM7"
-            },
-            "serverpath": "C:/Program Files/SEGGER/JLink_V820/JLinkGDBServerCL.exe"
-        },
-        // When using 'attach', make sure your program is running on the board and that your
-        // executable matches the image in the chip exactly, or else strange things can happen
-        // with breakpoints, variables, etc.
-        {
-            "name": "Attach XMC7100D CM7 (JLink)",
-            "type": "cortex-debug",
-            "request": "attach",
-            "cwd": "${workspaceFolder}",
-            "executable": "${workspaceRoot}/rt-thread.elf",
-            "servertype": "jlink",
-            "device": "XMC7100-4160_CM7_0_tm",
-            "interface": "swd",
-            "serialNumber": "",
-            "overrideRestartCommands": [
-                "starti"
-            ],
-            // svdFile is optional, it can be very large.
-            "svdFile": "${workspaceRoot}/libs/cat1c4m.svd",
-            "breakAfterReset": true,
-            "runToEntryPoint": "main",    // Specifies application entry point name for restart/reset
+            "runToEntryPoint": "main",
             "showDevDebugOutput": "none",
             "showDevDebugOutput": "none",
             "presentation": {
             "presentation": {
                 "hidden": false,
                 "hidden": false,
@@ -112,7 +84,7 @@ Vscode下载拓展Cortex-Debug,然后在.vscode下新建launch.json文件,并
 
 
 ## 运行结果
 ## 运行结果
 
 
-下载程序成功之后,点击全速运行。然后打开终端工具串口助手,选择波特率为 115200。复位设备后,LED 将会闪烁,而且在终端上可以看到 `RT-Thread` 的输出信息:
+下载程序成功之后,点击全速运行。可通过 Type-C 接口 将开发板连接至电脑。随后,打开任意串口调试软件,在串口列表中选择设备名为 USB-HiSpeed-SERIAL-B 的端口,并将波特率设置为 115200。完成配置后,按下开发板上的 复位按键,即可在串口终端中实时看到 RT-Thread 系统的启动与运行日志信息。
 
 
 注:推荐使用串口调试助手如:`MobaXterm`
 注:推荐使用串口调试助手如:`MobaXterm`
 
 

+ 3 - 0
bsp/Infineon/xmc7100d-f144k4160aa/applications/SConscript

@@ -6,6 +6,9 @@ cwd  = GetCurrentDir()
 path = [cwd]
 path = [cwd]
 src  = Glob('*.c')
 src  = Glob('*.c')
 
 
+if GetDepend(['PKG_USING_RTDUINO']) and not GetDepend(['RTDUINO_NO_SETUP_LOOP']):
+    src += ['arduino_main.cpp']
+
 group = DefineGroup('Applications', src, depend = [''], CPPPATH = path)
 group = DefineGroup('Applications', src, depend = [''], CPPPATH = path)
 
 
 list = os.listdir(cwd)
 list = os.listdir(cwd)

+ 24 - 0
bsp/Infineon/xmc7100d-f144k4160aa/applications/arduino_main.cpp

@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2006-2024, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author         Notes
+ * 2025-10-16     Hydevcode         first version
+ */
+
+#include <Arduino.h>
+
+void setup(void)
+{
+    /* put your setup code here, to run once: */
+    Serial.begin();
+}
+
+void loop(void)
+{
+    /* put your main code here, to run repeatedly: */
+    Serial.println("Hello Arduino!");
+    delay(800);
+}

+ 37 - 0
bsp/Infineon/xmc7100d-f144k4160aa/applications/arduino_pinout/README.md

@@ -0,0 +1,37 @@
+# xmc7100d-f144k4160aa 开发板的Arduino生态兼容说明
+
+## 1 RTduino - RT-Thread的Arduino生态兼容层
+
+xmc7100d-f144k4160aa 开发板已经完整适配了[RTduino软件包](https://github.com/RTduino/RTduino),即RT-Thread的Arduino生态兼容层。用户可以按照Arduino的编程习惯来操作该BSP,并且可以使用大量Arduino社区丰富的库,是对RT-Thread生态的极大增强。更多信息,请参见[RTduino软件包说明文档](https://github.com/RTduino/RTduino)。
+
+### 1.1 如何开启针对本BSP的Arduino生态兼容层
+
+Env 工具下敲入 menuconfig 命令,或者 RT-Thread Studio IDE 下选择 RT-Thread Settings:
+
+```Kconfig
+Hardware Drivers Config --->
+    Onboard Peripheral Drivers --->
+        [*] Compatible with Arduino Ecosystem (RTduino)
+```
+
+## 2 Arduino引脚排布
+
+更多引脚布局相关信息参见 [pins_arduino.c](pins_arduino.c) 和 [pins_arduino.h](pins_arduino.h)。
+
+| Arduino引脚编号  | XMC7100引脚编号 | 5V容忍 | 备注  |
+| ------------------- | --------- | ---- | ------------------------------------------------------------------------- |
+| 0 (D0) | BSP_IO_PORT_19_PIN_00 | 否 | Serial2-RX,默认被RT-Thread的UART设备框架uart2接管 |
+| 1 (D1) | BSP_IO_PORT_19_PIN_01 | 否 | Serial2-TX,默认被RT-Thread的UART设备框架uart2接管 |
+| 2 (D2) | BSP_IO_PORT_00_PIN_03 | 否 | SPI0-CS |
+| 3 (D3) | BSP_IO_PORT_01_PIN_01 | 否 | SPI0-MOSI,默认被RT-Thread的SPI设备框架spi0接管 |
+| 4 (D4) | BSP_IO_PORT_01_PIN_00 | 否 | SPI0-MISO,默认被RT-Thread的SPI设备框架spi0接管 |
+| 5 (D5) | BSP_IO_PORT_00_PIN_02 | 否 | SPI0-SCK,默认被RT-Thread的SPI设备框架spi0接管 |
+| 6 (D6) | BSP_IO_PORT_00_PIN_00 | 否 | I2C2-SDA,默认被RT-Thread的I2C设备框架i2c2接管 |
+| 7 (D7) | BSP_IO_PORT_00_PIN_01 | 否 | I2C2-SCL,默认被RT-Thread的I2C设备框架i2c2接管 |
+
+> 注意:
+>
+> 1. BMP280和SSD1306不能同时开启,会导致BMP280无法获取数据
+> 2. SSD1306的地址需要改成0x3D
+> 3. 需要去掉HardwareSerial::begin(uint32_t baud, uint8_t config) 和HardwareSerial::begin(uint32_t baud)函数内的代码
+> 4. 部分引脚默认被RT-Thread的设备框架(如UART、SPI、I2C)接管,使用时请注意资源冲突。

+ 9 - 0
bsp/Infineon/xmc7100d-f144k4160aa/applications/arduino_pinout/SConscript

@@ -0,0 +1,9 @@
+from building import *
+
+cwd = GetCurrentDir()
+src = Glob('*.c') + Glob('*.cpp')
+inc = [cwd]
+
+group = DefineGroup('RTduino', src, depend = ['PKG_USING_RTDUINO'], CPPPATH = inc)
+
+Return('group')

+ 32 - 0
bsp/Infineon/xmc7100d-f144k4160aa/applications/arduino_pinout/pins_arduino.c

@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2006-2024, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author         Notes
+ * 2025-10-16     Hydevcode         first version
+ */
+
+#include <Arduino.h>
+#include "drv_gpio.h"
+#include "pins_arduino.h"
+
+/*
+ * {Arduino Pin, RT-Thread Pin [, Device Name, Channel]}
+ * [] means optional
+ * Digital pins must NOT give the device name and channel.
+ * Analog pins MUST give the device name and channel(ADC, PWM or DAC).
+ * Arduino Pin must keep in sequence.
+ */
+const pin_map_t pin_map_table[]=
+{
+    {D00, GET_PIN(19, 0),  "uart2"},                          /* Serial2-RX */
+    {D01, GET_PIN(19, 1),  "uart2"},                          /* Serial2-TX */
+    {D2, GET_PIN(0, 3)},                                   /* SPI0_CS*/
+    {D3, GET_PIN(1, 1), "spi0"},                           /* SPI0_MOSI */
+    {D4, GET_PIN(1, 0), "spi0"},                           /* SPI0_MISO */
+    {D5, GET_PIN(0, 2), "spi0"},                           /* SPI_SCK */
+    {D6, GET_PIN(0, 0), "i2c2"},                           /* I2C-SDA (Soft Wire) */
+    {D7, GET_PIN(0, 1), "i2c2"},                           /* I2C-SCL (Soft Wire) */
+};

+ 36 - 0
bsp/Infineon/xmc7100d-f144k4160aa/applications/arduino_pinout/pins_arduino.h

@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2006-2024, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author         Notes
+ * 2025-10-16     Hydevcode         first version
+ */
+
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+/* pins alias. Must keep in sequence */
+#define D00        (0)
+#define D01        (1)
+#define D2        (2)
+#define D3        (3)
+#define D4        (4)
+#define D5        (5)
+#define D6        (6)
+#define D7        (7)
+
+#define RTDUINO_PIN_MAX_LIMIT D7 /* pin number max limit check */
+
+#define F_CPU 350000000L /* CPU:350MHz */
+
+// #define LED_BUILTIN D0 /* Default Built-in LED */
+
+/* i2c2 : P00.00-SDA P00.01-SCL */
+#define RTDUINO_DEFAULT_IIC_BUS_NAME "i2c2"
+
+#define SS D2 /* Chip select pin of default spi */
+#define RTDUINO_DEFAULT_SPI_BUS_NAME "spi0"
+
+#endif /* Pins_Arduino_h */

+ 107 - 0
bsp/Infineon/xmc7100d-f144k4160aa/board/Kconfig

@@ -33,6 +33,97 @@ menu "Onboard Peripheral Drivers"
         select BSP_USING_I2C
         select BSP_USING_I2C
         select PKG_USING_QMI8658
         select PKG_USING_QMI8658
         default n
         default n
+
+    menuconfig BSP_USING_ARDUINO
+        bool "Compatible with Arduino Ecosystem (RTduino)"
+        default n
+        select PKG_USING_RTDUINO
+        select BSP_USING_UART2
+        select BSP_USING_GPIO
+        select BSP_USING_I2C
+        select BSP_USING_HW_I2C2
+        select BSP_USING_SPI
+        select BSP_USING_SPI0
+        imply RTDUINO_USING_SERVO
+        imply RTDUINO_USING_WIRE
+        imply RTDUINO_USING_SPI
+        if BSP_USING_ARDUINO
+            menuconfig BSP_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD
+                bool "Enable ARDUINO RTDUINO SENSORFUSION SHIELD"
+                default n
+                select PKG_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD
+                select PKG_ARDUINO_RTDUINO_SENSORFUSION_SHIELD_DEMO
+                if BSP_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD
+                    config BSP_USING_RTDUINO_SENSORFUSION_SHIELD_BMP280_DEMO
+                        bool "Enable RTDUINO SENSORFUSION SHIELD BMP280 DEMO"
+                        select PKG_RTDUINO_SENSORFUSION_SHIELD_BMP280_DEMO
+                        default n
+                    config BSP_USING_RTDUINO_SENSORFUSION_SHIELD_SHT31_DEMO
+                        bool "Enable RTDUINO SENSORFUSION SHIELD SHT31 DEMO"
+                        select PKG_RTDUINO_SENSORFUSION_SHIELD_SHT31_DEMO
+                        default n
+                    config BSP_USING_RTDUINO_SENSORFUSION_SHIELD_QMC5883L_DEMO
+                        bool "Enable RTDUINO SENSORFUSION SHIELD QMC5883L DEMO"
+                        select PKG_RTDUINO_SENSORFUSION_SHIELD_QMC5883L_DEMO
+                        default n
+                    config BSP_USING_RTDUINO_SENSORFUSION_SHIELD_SC7A20_DEMO
+                        bool "Enable RTDUINO SENSORFUSION SHIELD SC7A20 DEMO"
+                        select PKG_RTDUINO_SENSORFUSION_SHIELD_SC7A20_DEMO
+                        default n
+                    config BSP_USING_RTDUINO_SENSORFUSION_SHIELD_SSD1306_DEMO
+                        bool "Enable RTDUINO SENSORFUSION SHIELD SSD1306 DEMO"
+                        select PKG_RTDUINO_SENSORFUSION_SHIELD_SSD1306_DEMO
+                        default n
+                endif
+        endif
+
+    menuconfig BSP_USING_RW007
+        bool "Enable RW007"
+        default n
+        select PKG_USING_RW007
+        select BSP_USING_SPI
+        select BSP_USING_SPI0
+        select RW007_NOT_USE_EXAMPLE_DRIVERS
+
+    if BSP_USING_RW007
+        comment "Notice: P5_7 --> 47; P5_6 -->46; P0_5 --> 5; P0_4 --> 4"
+        config IFX_RW007_SPI_BUS_NAME
+            string "RW007 BUS NAME"
+            default "spi0"
+
+        config IFX_RW007_WIFI_SSID
+            string "Wi-Fi SSID"
+            default "realthread_VIP"
+
+        config IFX_RW007_WIFI_PASSWORD
+            string "Wi-Fi Password"
+            default "your wifi password"
+
+        config IFX_RW007_CS_PIN
+            int "(INT)CS pin index"
+            range 1 113
+            default 3
+
+        config IFX_RW007_BOOT0_PIN
+            int "(INT)BOOT0 pin index (same as spi clk pin)"
+            range 1 113
+            default 2
+
+        config IFX_RW007_BOOT1_PIN
+            int "(INT)BOOT1 pin index (same as spi cs pin)"
+            range 1 113
+            default 3
+
+        config IFX_RW007_INT_BUSY_PIN
+            int "(INT)INT/BUSY pin index"
+            range 1 190
+            default 160
+
+        config IFX_RW007_RST_PIN
+            int "(INT)RESET pin index"
+            range 1 190
+            default 180
+    endif
 endmenu
 endmenu
 
 
 menu "On-chip Peripheral Drivers"
 menu "On-chip Peripheral Drivers"
@@ -76,6 +167,19 @@ menu "On-chip Peripheral Drivers"
                         range 0 999
                         range 0 999
                         default 145
                         default 145
                 endif
                 endif
+            menuconfig BSP_USING_HW_I2C2
+                bool "Enable BSP_USING_HW_I2C2"
+                default y
+                if BSP_USING_HW_I2C2
+                    config BSP_I2C2_SCL_PIN
+                        int "BSP_I2C2_SCL_PIN number(0,1)"
+                        range 0 999
+                        default 1
+                    config BSP_I2C2_SDA_PIN
+                        int "BSP_I2C2_SDA_PIN number(0,0)"
+                        range 0 999
+                        default 0
+                endif
         endif
         endif
     menuconfig BSP_USING_SPI
     menuconfig BSP_USING_SPI
         bool "Enable SPI"
         bool "Enable SPI"
@@ -85,6 +189,9 @@ menu "On-chip Peripheral Drivers"
             config BSP_USING_SPI5
             config BSP_USING_SPI5
                 bool "Enable BSP_USING_SPI5"
                 bool "Enable BSP_USING_SPI5"
                 default y
                 default y
+            config BSP_USING_SPI0
+                bool "Enable BSP_USING_SPI0"
+                default y
         endif
         endif
 endmenu
 endmenu
 
 

+ 3 - 0
bsp/Infineon/xmc7100d-f144k4160aa/board/ports/SConscript

@@ -14,6 +14,9 @@ if GetDepend(['BSP_USING_SPI_FLASH']):
 if GetDepend(['BSP_USING_TF_CARD']):
 if GetDepend(['BSP_USING_TF_CARD']):
     src += Glob('drv_filesystem.c')
     src += Glob('drv_filesystem.c')
 
 
+if GetDepend(['BSP_USING_RW007']):
+    src += Glob('drv_rw007.c')
+
 group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path)
 group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path)
 
 
 Return('group')
 Return('group')

+ 65 - 0
bsp/Infineon/xmc7100d-f144k4160aa/board/ports/drv_rw007.c

@@ -0,0 +1,65 @@
+#include <rtthread.h>
+#include <rtdbg.h>
+#ifdef BSP_USING_RW007
+#include <rtdevice.h>
+#include <drv_spi.h>
+#include <board.h>
+#include <spi_wifi_rw007.h>
+
+extern void spi_wifi_isr(int vector);
+
+static void rw007_gpio_init(void)
+{
+    /* Configure IO */
+    rt_pin_mode(IFX_RW007_RST_PIN, PIN_MODE_OUTPUT);
+    rt_pin_mode(IFX_RW007_INT_BUSY_PIN, PIN_MODE_INPUT_PULLDOWN);
+
+    /* Reset rw007 and config mode */
+    rt_pin_write(IFX_RW007_RST_PIN, PIN_LOW);
+    rt_thread_delay(rt_tick_from_millisecond(100));
+    rt_pin_write(IFX_RW007_RST_PIN, PIN_HIGH);
+
+    /* Wait rw007 ready(exit busy stat) */
+    while (!rt_pin_read(IFX_RW007_INT_BUSY_PIN))
+    {
+        rt_thread_delay(5);
+    }
+
+    rt_thread_delay(rt_tick_from_millisecond(200));
+    rt_pin_mode(IFX_RW007_INT_BUSY_PIN, PIN_MODE_INPUT_PULLUP);
+}
+
+int wifi_spi_device_init(void)
+{
+    char sn_version[32];
+    uint32_t cs_pin = IFX_RW007_CS_PIN;
+
+    rw007_gpio_init();
+    rt_hw_spi_device_attach(IFX_RW007_SPI_BUS_NAME, "wspi", cs_pin);
+    rt_hw_wifi_init("wspi");
+
+    rt_wlan_set_mode(RT_WLAN_DEVICE_STA_NAME, RT_WLAN_STATION);
+    rt_wlan_set_mode(RT_WLAN_DEVICE_AP_NAME, RT_WLAN_AP);
+
+    rw007_sn_get(sn_version);
+    rt_kprintf("\nrw007  sn: [%s]\n", sn_version);
+    rw007_version_get(sn_version);
+    rt_kprintf("rw007 ver: [%s]\n\n", sn_version);
+
+    return 0;
+}
+INIT_APP_EXPORT(wifi_spi_device_init);
+
+static void int_wifi_irq(void *p)
+{
+    ((void)p);
+    spi_wifi_isr(0);
+}
+
+void spi_wifi_hw_init(void)
+{
+    rt_pin_attach_irq(IFX_RW007_INT_BUSY_PIN, PIN_IRQ_MODE_FALLING, int_wifi_irq, 0);
+    rt_pin_irq_enable(IFX_RW007_INT_BUSY_PIN, PIN_IRQ_ENABLE);
+}
+
+#endif /* BSP_USING_RW007 */

+ 4 - 0
bsp/Infineon/xmc7100d-f144k4160aa/board/ports/spi_flash_init.c

@@ -16,7 +16,11 @@
 #ifdef BSP_USING_SPI_FLASH
 #ifdef BSP_USING_SPI_FLASH
 static int rt_spi_flash_init(void)
 static int rt_spi_flash_init(void)
 {
 {
+#if !defined(BSP_USING_RW007)
     rt_hw_spi_device_attach("spi5", "spi30", GET_PIN(7, 3));
     rt_hw_spi_device_attach("spi5", "spi30", GET_PIN(7, 3));
+#else
+    rt_hw_spi_device_attach(IFX_RW007_SPI_BUS_NAME, "spi30", GET_PIN(20, 3));
+#endif
     if (RT_NULL == msd_init("sd0", "spi30"))
     if (RT_NULL == msd_init("sd0", "spi30"))
     {
     {
         return -RT_ERROR;
         return -RT_ERROR;

+ 17 - 3
bsp/Infineon/xmc7100d-f144k4160aa/rtconfig.h

@@ -61,7 +61,7 @@
 
 
 /* end of rt_strnlen options */
 /* end of rt_strnlen options */
 /* end of klibc options */
 /* end of klibc options */
-#define RT_NAME_MAX 8
+#define RT_NAME_MAX 15
 #define RT_CPUS_NR 1
 #define RT_CPUS_NR 1
 #define RT_ALIGN_SIZE 8
 #define RT_ALIGN_SIZE 8
 #define RT_THREAD_PRIORITY_32
 #define RT_THREAD_PRIORITY_32
@@ -145,9 +145,16 @@
 
 
 #define RT_USING_DEVICE_IPC
 #define RT_USING_DEVICE_IPC
 #define RT_UNAMED_PIPE_NUMBER 64
 #define RT_UNAMED_PIPE_NUMBER 64
+#define RT_USING_SYSTEM_WORKQUEUE
+#define RT_SYSTEM_WORKQUEUE_STACKSIZE 2048
+#define RT_SYSTEM_WORKQUEUE_PRIORITY 23
 #define RT_USING_SERIAL
 #define RT_USING_SERIAL
 #define RT_USING_SERIAL_V1
 #define RT_USING_SERIAL_V1
-#define RT_SERIAL_RB_BUFSZ 64
+#define RT_SERIAL_RB_BUFSZ 256
+#define RT_USING_I2C
+#define RT_USING_I2C_BITOPS
+#define RT_USING_PWM
+#define RT_USING_SPI
 #define RT_USING_PIN
 #define RT_USING_PIN
 /* end of Device Drivers */
 /* end of Device Drivers */
 
 
@@ -322,6 +329,14 @@
 /* NXP HAL & SDK Drivers */
 /* NXP HAL & SDK Drivers */
 
 
 /* end of NXP HAL & SDK Drivers */
 /* end of NXP HAL & SDK Drivers */
+
+/* NUVOTON Drivers */
+
+/* end of NUVOTON Drivers */
+
+/* GD32 Drivers */
+
+/* end of GD32 Drivers */
 /* end of HAL & SDK Drivers */
 /* end of HAL & SDK Drivers */
 
 
 /* sensors drivers */
 /* sensors drivers */
@@ -417,7 +432,6 @@
 
 
 #define BSP_USING_GPIO
 #define BSP_USING_GPIO
 #define BSP_USING_UART
 #define BSP_USING_UART
-#define BSP_USING_UART2
 #define BSP_USING_UART4
 #define BSP_USING_UART4
 #define UART_CPU_IRQ_Number 3
 #define UART_CPU_IRQ_Number 3
 /* end of On-chip Peripheral Drivers */
 /* end of On-chip Peripheral Drivers */