mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-05-16 11:38:11 +08:00
[BSP] xmc7100外设适配和RTDuino适配
ToolsCI / Tools (push) Has been cancelled
RT-Thread BSP Static Build Check / 🔍 Summary of Git Diff Changes (push) Has been cancelled
pkgs_test / change (push) Has been cancelled
utest_auto_run / A9 :components/dfs.cfg (push) Has been cancelled
utest_auto_run / A9 :components/lwip.cfg (push) Has been cancelled
utest_auto_run / A9 :components/netdev.cfg (push) Has been cancelled
utest_auto_run / A9 :cpp11/cpp11.cfg (push) Has been cancelled
utest_auto_run / AARCH64-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / A9-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / RISCV-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / XUANTIE-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / AARCH64 :default.cfg (push) Has been cancelled
utest_auto_run / A9 :default.cfg (push) Has been cancelled
utest_auto_run / A9-smp :default.cfg (push) Has been cancelled
utest_auto_run / RISCV :default.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / RISCV :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/ipc.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/kernel_basic.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/mem.cfg (push) Has been cancelled
RT-Thread BSP Static Build Check / ${{ matrix.legs.RTT_BSP }} (push) Has been cancelled
RT-Thread BSP Static Build Check / collect-artifacts (push) Has been cancelled
ToolsCI / Tools (push) Has been cancelled
RT-Thread BSP Static Build Check / 🔍 Summary of Git Diff Changes (push) Has been cancelled
pkgs_test / change (push) Has been cancelled
utest_auto_run / A9 :components/dfs.cfg (push) Has been cancelled
utest_auto_run / A9 :components/lwip.cfg (push) Has been cancelled
utest_auto_run / A9 :components/netdev.cfg (push) Has been cancelled
utest_auto_run / A9 :cpp11/cpp11.cfg (push) Has been cancelled
utest_auto_run / AARCH64-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / A9-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / RISCV-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / XUANTIE-rtsmart :default.cfg (push) Has been cancelled
utest_auto_run / AARCH64 :default.cfg (push) Has been cancelled
utest_auto_run / A9 :default.cfg (push) Has been cancelled
utest_auto_run / A9-smp :default.cfg (push) Has been cancelled
utest_auto_run / RISCV :default.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / RISCV :kernel/atomic_c11.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/ipc.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/kernel_basic.cfg (push) Has been cancelled
utest_auto_run / A9 :kernel/mem.cfg (push) Has been cancelled
RT-Thread BSP Static Build Check / ${{ matrix.legs.RTT_BSP }} (push) Has been cancelled
RT-Thread BSP Static Build Check / collect-artifacts (push) Has been cancelled
This commit is contained in:
@@ -18,6 +18,8 @@
|
||||
|
||||
#if defined(SOC_XMC7200D_E272K8384AA)
|
||||
#define __IFX_PORT_MAX 35u
|
||||
#elif defined(SOC_XMC7100D_F144K4160AA)
|
||||
#define __IFX_PORT_MAX 33u
|
||||
#else
|
||||
#define __IFX_PORT_MAX 14u
|
||||
#endif
|
||||
@@ -57,7 +59,8 @@ static struct pin_irq_map pin_irq_map[] =
|
||||
{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_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_25, ioss_interrupts_gpio_25_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_34, ioss_interrupts_gpio_34_IRQn},
|
||||
#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[] =
|
||||
@@ -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},
|
||||
#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)
|
||||
@@ -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];
|
||||
|
||||
#if !defined(COMPONENT_CAT1C)
|
||||
#if !defined(COMPONENT_CAT1C)||defined(SOC_XMC7100D_F144K4160AA)
|
||||
IRQn_Type irqn = irqmap->irqno;
|
||||
irq_cb_data[irqn].callback = irq_callback;
|
||||
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];
|
||||
|
||||
#if !defined(COMPONENT_CAT1C)
|
||||
#if !defined(COMPONENT_CAT1C)||defined(SOC_XMC7100D_F144K4160AA)
|
||||
IRQn_Type irqn = irqmap->irqno;
|
||||
if (irqn < 0 || irqn >= PIN_IFXPORT_MAX)
|
||||
{
|
||||
|
||||
@@ -39,6 +39,14 @@
|
||||
static struct ifx_spi_handle spi_bus_obj[] =
|
||||
{
|
||||
#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",
|
||||
.sck_pin = GET_PIN(0, 4),
|
||||
@@ -46,6 +54,7 @@ static struct ifx_spi_handle spi_bus_obj[] =
|
||||
.mosi_pin = GET_PIN(0, 2),
|
||||
},
|
||||
#endif
|
||||
#endif
|
||||
#if defined(BSP_USING_SPI3)
|
||||
{
|
||||
.bus_name = "spi3",
|
||||
|
||||
@@ -7,10 +7,26 @@ Drivers.I2C:
|
||||
kconfig:
|
||||
- CONFIG_BSP_USING_I2C=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.tfcard:
|
||||
kconfig:
|
||||
- CONFIG_BSP_USING_TF_CARD=y
|
||||
Peripheral.qmi8658:
|
||||
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
|
||||
|
||||
@@ -104,11 +104,9 @@
|
||||
#
|
||||
# CONFIG_RT_KLIBC_USING_USER_STRNLEN is not set
|
||||
# end of rt_strnlen options
|
||||
|
||||
# CONFIG_RT_UTEST_TC_USING_KLIBC is not set
|
||||
# end of klibc options
|
||||
|
||||
CONFIG_RT_NAME_MAX=8
|
||||
CONFIG_RT_NAME_MAX=15
|
||||
# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
|
||||
# CONFIG_RT_USING_NANO 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_USING_HISTORY=y
|
||||
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_CMD_SIZE=80
|
||||
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_DEVICE_IPC=y
|
||||
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_V1=y
|
||||
# CONFIG_RT_USING_SERIAL_V2 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_CAN 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_V2 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_ZERO 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_INPUT_CAPTURE 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_RTC 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_AUDIO 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_NANOPB is not set
|
||||
# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set
|
||||
# CONFIG_PKG_USING_ESP_HOSTED is not set
|
||||
|
||||
#
|
||||
# Wi-Fi
|
||||
@@ -494,6 +507,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
|
||||
# CONFIG_PKG_USING_QMODBUS is not set
|
||||
# CONFIG_PKG_USING_PNET is not set
|
||||
# CONFIG_PKG_USING_OPENER is not set
|
||||
# CONFIG_PKG_USING_FREEMQTT is not set
|
||||
# end of IoT - internet of things
|
||||
|
||||
#
|
||||
@@ -630,6 +644,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
|
||||
# CONFIG_PKG_USING_ZDEBUG is not set
|
||||
# CONFIG_PKG_USING_RVBACKTRACE is not set
|
||||
# CONFIG_PKG_USING_HPATCHLITE is not set
|
||||
# CONFIG_PKG_USING_THREAD_METRIC is not set
|
||||
# end of tools packages
|
||||
|
||||
#
|
||||
@@ -723,6 +738,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
|
||||
# CONFIG_PKG_USING_RMP is not set
|
||||
# CONFIG_PKG_USING_R_RHEALSTONE is not set
|
||||
# CONFIG_PKG_USING_HEARTBEAT is not set
|
||||
# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set
|
||||
# end of system packages
|
||||
|
||||
#
|
||||
@@ -822,6 +838,7 @@ CONFIG_PKG_INFINEON_RETARGET_IO_VER="latest"
|
||||
|
||||
# CONFIG_PKG_USING_NRF5X_SDK 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_MM32 is not set
|
||||
|
||||
@@ -864,6 +881,10 @@ CONFIG_PKG_INFINEON_RETARGET_IO_VER="latest"
|
||||
#
|
||||
# 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
|
||||
|
||||
#
|
||||
@@ -877,6 +898,21 @@ CONFIG_PKG_INFINEON_RETARGET_IO_VER="latest"
|
||||
# CONFIG_PKG_USING_NXP_IMX6UL_DRIVER is not set
|
||||
# CONFIG_PKG_USING_NXP_IMXRT_DRIVER is not set
|
||||
# end of NXP HAL & SDK Drivers
|
||||
|
||||
#
|
||||
# NUVOTON Drivers
|
||||
#
|
||||
# CONFIG_PKG_USING_NUVOTON_CMSIS_DRIVER is not set
|
||||
# CONFIG_PKG_USING_NUVOTON_SERIES_DRIVER is not set
|
||||
# CONFIG_PKG_USING_NUVOTON_ARM926_LIB is not set
|
||||
# end of NUVOTON Drivers
|
||||
|
||||
#
|
||||
# GD32 Drivers
|
||||
#
|
||||
# CONFIG_PKG_USING_GD32_ARM_CMSIS_DRIVER is not set
|
||||
# CONFIG_PKG_USING_GD32_ARM_SERIES_DRIVER is not set
|
||||
# end of GD32 Drivers
|
||||
# end of HAL & SDK Drivers
|
||||
|
||||
#
|
||||
@@ -1048,6 +1084,7 @@ CONFIG_PKG_INFINEON_RETARGET_IO_VER="latest"
|
||||
# CONFIG_PKG_USING_SEAN_WS2812B is not set
|
||||
# CONFIG_PKG_USING_IC74HC165 is not set
|
||||
# CONFIG_PKG_USING_IST8310 is not set
|
||||
# CONFIG_PKG_USING_ST7789_SPI is not set
|
||||
# CONFIG_PKG_USING_SPI_TOOLS is not set
|
||||
# end of peripheral libraries and drivers
|
||||
|
||||
@@ -1402,6 +1439,8 @@ CONFIG_SOC_XMC7100D_F144K4160AA=y
|
||||
CONFIG_BSP_USING_USB_TO_USART=y
|
||||
# CONFIG_BSP_USING_TF_CARD 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
|
||||
|
||||
#
|
||||
@@ -1409,7 +1448,7 @@ CONFIG_BSP_USING_USB_TO_USART=y
|
||||
#
|
||||
CONFIG_BSP_USING_GPIO=y
|
||||
CONFIG_BSP_USING_UART=y
|
||||
CONFIG_BSP_USING_UART2=y
|
||||
# CONFIG_BSP_USING_UART2 is not set
|
||||
CONFIG_BSP_USING_UART4=y
|
||||
CONFIG_UART_CPU_IRQ_Number=3
|
||||
# CONFIG_BSP_USING_I2C is not set
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
| USB 转串口 | 支持 | UART4 |
|
||||
| GPIO | 支持 | — |
|
||||
| UART | 支持 | UART2,UART4 |
|
||||
| I2C | 支持 | I2C1 |
|
||||
|
||||
| I2C | 支持 | I2C1,I2C2 |
|
||||
| SPI | 支持 | SPI0,SPI5 |
|
||||
## 快速上手
|
||||
|
||||
本 BSP 是以 `GCC` 和 `Jlink` 为开发环境(编译器:GCC),接下来介绍如何将系统运行起来。
|
||||
@@ -59,7 +59,6 @@ Vscode下载拓展Cortex-Debug,然后在.vscode下新建launch.json文件,并
|
||||
"interface": "swd",
|
||||
"serialNumber": "",
|
||||
"preLaunchCommands": [
|
||||
// Program via the hex file to get complete coverage
|
||||
"exec-file rt-thread.hex"
|
||||
],
|
||||
"overrideRestartCommands": [
|
||||
@@ -68,34 +67,7 @@ Vscode下载拓展Cortex-Debug,然后在.vscode下新建launch.json文件,并
|
||||
// svdFile is optional, it can be very large.
|
||||
"svdFile": "${workspaceRoot}/libs/cat1c4m.svd",
|
||||
"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",
|
||||
"presentation": {
|
||||
"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`
|
||||
|
||||
|
||||
@@ -6,6 +6,9 @@ cwd = GetCurrentDir()
|
||||
path = [cwd]
|
||||
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)
|
||||
|
||||
list = os.listdir(cwd)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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)接管,使用时请注意资源冲突。
|
||||
@@ -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')
|
||||
@@ -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) */
|
||||
};
|
||||
@@ -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 */
|
||||
@@ -33,6 +33,97 @@ menu "Onboard Peripheral Drivers"
|
||||
select BSP_USING_I2C
|
||||
select PKG_USING_QMI8658
|
||||
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
|
||||
|
||||
menu "On-chip Peripheral Drivers"
|
||||
@@ -76,6 +167,19 @@ menu "On-chip Peripheral Drivers"
|
||||
range 0 999
|
||||
default 145
|
||||
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
|
||||
menuconfig BSP_USING_SPI
|
||||
bool "Enable SPI"
|
||||
@@ -85,6 +189,9 @@ menu "On-chip Peripheral Drivers"
|
||||
config BSP_USING_SPI5
|
||||
bool "Enable BSP_USING_SPI5"
|
||||
default y
|
||||
config BSP_USING_SPI0
|
||||
bool "Enable BSP_USING_SPI0"
|
||||
default y
|
||||
endif
|
||||
endmenu
|
||||
|
||||
|
||||
@@ -14,6 +14,9 @@ if GetDepend(['BSP_USING_SPI_FLASH']):
|
||||
if GetDepend(['BSP_USING_TF_CARD']):
|
||||
src += Glob('drv_filesystem.c')
|
||||
|
||||
if GetDepend(['BSP_USING_RW007']):
|
||||
src += Glob('drv_rw007.c')
|
||||
|
||||
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path)
|
||||
|
||||
Return('group')
|
||||
|
||||
@@ -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 */
|
||||
@@ -16,7 +16,11 @@
|
||||
#ifdef BSP_USING_SPI_FLASH
|
||||
static int rt_spi_flash_init(void)
|
||||
{
|
||||
#if !defined(BSP_USING_RW007)
|
||||
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"))
|
||||
{
|
||||
return -RT_ERROR;
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
/* end of rt_strnlen options */
|
||||
/* end of klibc options */
|
||||
#define RT_NAME_MAX 8
|
||||
#define RT_NAME_MAX 15
|
||||
#define RT_CPUS_NR 1
|
||||
#define RT_ALIGN_SIZE 8
|
||||
#define RT_THREAD_PRIORITY_32
|
||||
@@ -145,9 +145,16 @@
|
||||
|
||||
#define RT_USING_DEVICE_IPC
|
||||
#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_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
|
||||
/* end of Device Drivers */
|
||||
|
||||
@@ -322,6 +329,14 @@
|
||||
/* NXP HAL & SDK Drivers */
|
||||
|
||||
/* end of NXP HAL & SDK Drivers */
|
||||
|
||||
/* NUVOTON Drivers */
|
||||
|
||||
/* end of NUVOTON Drivers */
|
||||
|
||||
/* GD32 Drivers */
|
||||
|
||||
/* end of GD32 Drivers */
|
||||
/* end of HAL & SDK Drivers */
|
||||
|
||||
/* sensors drivers */
|
||||
@@ -417,7 +432,6 @@
|
||||
|
||||
#define BSP_USING_GPIO
|
||||
#define BSP_USING_UART
|
||||
#define BSP_USING_UART2
|
||||
#define BSP_USING_UART4
|
||||
#define UART_CPU_IRQ_Number 3
|
||||
/* end of On-chip Peripheral Drivers */
|
||||
|
||||
Reference in New Issue
Block a user