Skip to content

Commit 16e729e

Browse files
hydevcodeRbb666
authored andcommitted
[BSP] xmc7100外设适配和RTDuino适配
1 parent 982e52e commit 16e729e

File tree

16 files changed

+460
-48
lines changed

16 files changed

+460
-48
lines changed

bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
#if defined(SOC_XMC7200D_E272K8384AA)
2020
#define __IFX_PORT_MAX 35u
21+
#elif defined(SOC_XMC7100D_F144K4160AA)
22+
#define __IFX_PORT_MAX 33u
2123
#else
2224
#define __IFX_PORT_MAX 14u
2325
#endif
@@ -57,7 +59,8 @@ static struct pin_irq_map pin_irq_map[] =
5759
{CYHAL_PORT_19, ioss_interrupts_gpio_19_IRQn},
5860
{CYHAL_PORT_20, ioss_interrupts_gpio_20_IRQn},
5961
{CYHAL_PORT_21, ioss_interrupts_gpio_21_IRQn},
60-
{CYHAL_PORT_22, ioss_interrupts_gpio_23_IRQn},
62+
{CYHAL_PORT_22, ioss_interrupts_gpio_22_IRQn},
63+
{CYHAL_PORT_23, ioss_interrupts_gpio_23_IRQn},
6164
{CYHAL_PORT_24, ioss_interrupts_gpio_24_IRQn},
6265
{CYHAL_PORT_25, ioss_interrupts_gpio_25_IRQn},
6366
{CYHAL_PORT_26, ioss_interrupts_gpio_26_IRQn},
@@ -70,6 +73,26 @@ static struct pin_irq_map pin_irq_map[] =
7073
{CYHAL_PORT_33, ioss_interrupts_gpio_33_IRQn},
7174
{CYHAL_PORT_34, ioss_interrupts_gpio_34_IRQn},
7275
#endif
76+
#if defined(SOC_XMC7100D_F144K4160AA)
77+
{CYHAL_PORT_15, ioss_interrupts_gpio_15_IRQn},
78+
{CYHAL_PORT_16, ioss_interrupts_gpio_16_IRQn},
79+
{CYHAL_PORT_17, ioss_interrupts_gpio_17_IRQn},
80+
{CYHAL_PORT_18, ioss_interrupts_gpio_18_IRQn},
81+
{CYHAL_PORT_19, ioss_interrupts_gpio_19_IRQn},
82+
{CYHAL_PORT_20, ioss_interrupts_gpio_20_IRQn},
83+
{CYHAL_PORT_21, ioss_interrupts_gpio_21_IRQn},
84+
{CYHAL_PORT_22, ioss_interrupts_gpio_22_IRQn},
85+
{CYHAL_PORT_23, ioss_interrupts_gpio_23_IRQn},
86+
{CYHAL_PORT_24, ioss_interrupts_gpio_24_IRQn},
87+
{CYHAL_PORT_25, ioss_interrupts_gpio_25_IRQn},
88+
{CYHAL_PORT_26, ioss_interrupts_gpio_26_IRQn},
89+
{CYHAL_PORT_27, ioss_interrupts_gpio_27_IRQn},
90+
{CYHAL_PORT_28, ioss_interrupts_gpio_28_IRQn},
91+
{CYHAL_PORT_29, ioss_interrupts_gpio_29_IRQn},
92+
{CYHAL_PORT_30, ioss_interrupts_gpio_30_IRQn},
93+
{CYHAL_PORT_31, ioss_interrupts_gpio_31_IRQn},
94+
{CYHAL_PORT_32, ioss_interrupts_gpio_32_IRQn},
95+
#endif
7396
};
7497

7598
static struct rt_pin_irq_hdr pin_irq_handler_tab[] =
@@ -111,6 +134,25 @@ static struct rt_pin_irq_hdr pin_irq_handler_tab[] =
111134
{-1, 0, RT_NULL, RT_NULL},
112135
{-1, 0, RT_NULL, RT_NULL},
113136
#endif
137+
#if defined(SOC_XMC7100D_F144K4160AA)
138+
{-1, 0, RT_NULL, RT_NULL},
139+
{-1, 0, RT_NULL, RT_NULL},
140+
{-1, 0, RT_NULL, RT_NULL},
141+
{-1, 0, RT_NULL, RT_NULL},
142+
{-1, 0, RT_NULL, RT_NULL},
143+
{-1, 0, RT_NULL, RT_NULL},
144+
{-1, 0, RT_NULL, RT_NULL},
145+
{-1, 0, RT_NULL, RT_NULL},
146+
{-1, 0, RT_NULL, RT_NULL},
147+
{-1, 0, RT_NULL, RT_NULL},
148+
{-1, 0, RT_NULL, RT_NULL},
149+
{-1, 0, RT_NULL, RT_NULL},
150+
{-1, 0, RT_NULL, RT_NULL},
151+
{-1, 0, RT_NULL, RT_NULL},
152+
{-1, 0, RT_NULL, RT_NULL},
153+
{-1, 0, RT_NULL, RT_NULL},
154+
{-1, 0, RT_NULL, RT_NULL},
155+
#endif
114156
};
115157

116158
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,
320362

321363
irqmap = &pin_irq_map[gpio_port];
322364

323-
#if !defined(COMPONENT_CAT1C)
365+
#if !defined(COMPONENT_CAT1C)||defined(SOC_XMC7100D_F144K4160AA)
324366
IRQn_Type irqn = irqmap->irqno;
325367
irq_cb_data[irqn].callback = irq_callback;
326368
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,
356398

357399
irqmap = &pin_irq_map[gpio_port];
358400

359-
#if !defined(COMPONENT_CAT1C)
401+
#if !defined(COMPONENT_CAT1C)||defined(SOC_XMC7100D_F144K4160AA)
360402
IRQn_Type irqn = irqmap->irqno;
361403
if (irqn < 0 || irqn >= PIN_IFXPORT_MAX)
362404
{

bsp/Infineon/libraries/HAL_Drivers/drv_spi.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,22 @@
3939
static struct ifx_spi_handle spi_bus_obj[] =
4040
{
4141
#if defined(BSP_USING_SPI0)
42+
#if defined(SOC_XMC7100D_F144K4160AA)
43+
{
44+
.bus_name = "spi0",
45+
.sck_pin = GET_PIN(0, 2),
46+
.miso_pin = GET_PIN(1, 0),
47+
.mosi_pin = GET_PIN(1, 1),
48+
},
49+
#else
4250
{
4351
.bus_name = "spi0",
4452
.sck_pin = GET_PIN(0, 4),
4553
.miso_pin = GET_PIN(0, 3),
4654
.mosi_pin = GET_PIN(0, 2),
4755
},
4856
#endif
57+
#endif
4958
#if defined(BSP_USING_SPI3)
5059
{
5160
.bus_name = "spi3",

bsp/Infineon/xmc7100d-f144k4160aa/.ci/attachconfig/ci.attachconfig.yml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,26 @@ Drivers.I2C:
77
kconfig:
88
- CONFIG_BSP_USING_I2C=y
99
- CONFIG_BSP_USING_HW_I2C1=y
10+
- CONFIG_BSP_USING_HW_I2C2=y
11+
Drivers.SPI:
12+
<<: *scons
13+
kconfig:
14+
- CONFIG_BSP_USING_SPI=y
15+
- CONFIG_BSP_USING_SPI5=y
16+
- CONFIG_BSP_USING_SPI0=y
1017
# ------ Peripheral CI ------
1118
Peripheral.tfcard:
1219
kconfig:
1320
- CONFIG_BSP_USING_TF_CARD=y
1421
Peripheral.qmi8658:
1522
kconfig:
16-
- CONFIG_BSP_USING_QMI8658=y
23+
- CONFIG_BSP_USING_QMI8658=y
24+
Peripheral.rw007:
25+
kconfig:
26+
- CONFIG_BSP_USING_RW007=y
27+
- CONFIG_RW007_NOT_USE_EXAMPLE_DRIVERS=y
28+
Peripheral.arduino:
29+
kconfig:
30+
- CONFIG_BSP_USING_ARDUINO=y
31+
- CONFIG_BSP_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD=y
32+

bsp/Infineon/xmc7100d-f144k4160aa/.config

Lines changed: 48 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,9 @@
104104
#
105105
# CONFIG_RT_KLIBC_USING_USER_STRNLEN is not set
106106
# end of rt_strnlen options
107-
108-
# CONFIG_RT_UTEST_TC_USING_KLIBC is not set
109107
# end of klibc options
110108

111-
CONFIG_RT_NAME_MAX=8
109+
CONFIG_RT_NAME_MAX=15
112110
# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
113111
# CONFIG_RT_USING_NANO is not set
114112
# CONFIG_RT_USING_SMART is not set
@@ -211,6 +209,8 @@ CONFIG_FINSH_THREAD_PRIORITY=20
211209
CONFIG_FINSH_THREAD_STACK_SIZE=4096
212210
CONFIG_FINSH_USING_HISTORY=y
213211
CONFIG_FINSH_HISTORY_LINES=5
212+
# CONFIG_FINSH_USING_WORD_OPERATION is not set
213+
# CONFIG_FINSH_USING_FUNC_EXT is not set
214214
CONFIG_FINSH_USING_SYMTAB=y
215215
CONFIG_FINSH_CMD_SIZE=80
216216
CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
@@ -235,32 +235,44 @@ CONFIG_FINSH_USING_OPTION_COMPLETION=y
235235
# CONFIG_RT_USING_DEV_BUS is not set
236236
CONFIG_RT_USING_DEVICE_IPC=y
237237
CONFIG_RT_UNAMED_PIPE_NUMBER=64
238-
# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
238+
CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
239+
CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048
240+
CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
239241
CONFIG_RT_USING_SERIAL=y
240242
CONFIG_RT_USING_SERIAL_V1=y
241243
# CONFIG_RT_USING_SERIAL_V2 is not set
242244
# CONFIG_RT_SERIAL_USING_DMA is not set
243-
CONFIG_RT_SERIAL_RB_BUFSZ=64
245+
CONFIG_RT_SERIAL_RB_BUFSZ=256
244246
# CONFIG_RT_USING_SERIAL_BYPASS is not set
245247
# CONFIG_RT_USING_CAN is not set
246248
# CONFIG_RT_USING_CPUTIME is not set
247-
# CONFIG_RT_USING_I2C is not set
249+
CONFIG_RT_USING_I2C=y
250+
# CONFIG_RT_I2C_DEBUG is not set
251+
CONFIG_RT_USING_I2C_BITOPS=y
252+
# CONFIG_RT_I2C_BITOPS_DEBUG is not set
253+
# CONFIG_RT_USING_SOFT_I2C is not set
248254
# CONFIG_RT_USING_PHY is not set
249255
# CONFIG_RT_USING_PHY_V2 is not set
250256
# CONFIG_RT_USING_ADC is not set
251257
# CONFIG_RT_USING_DAC is not set
252258
# CONFIG_RT_USING_NULL is not set
253259
# CONFIG_RT_USING_ZERO is not set
254260
# CONFIG_RT_USING_RANDOM is not set
255-
# CONFIG_RT_USING_PWM is not set
261+
CONFIG_RT_USING_PWM=y
256262
# CONFIG_RT_USING_PULSE_ENCODER is not set
257263
# CONFIG_RT_USING_INPUT_CAPTURE is not set
258264
# CONFIG_RT_USING_MTD_NOR is not set
259265
# CONFIG_RT_USING_MTD_NAND is not set
260266
# CONFIG_RT_USING_PM is not set
261267
# CONFIG_RT_USING_RTC is not set
262268
# CONFIG_RT_USING_SDIO is not set
263-
# CONFIG_RT_USING_SPI is not set
269+
CONFIG_RT_USING_SPI=y
270+
# CONFIG_RT_USING_SOFT_SPI is not set
271+
# CONFIG_RT_USING_QSPI is not set
272+
# CONFIG_RT_USING_SPI_MSD is not set
273+
# CONFIG_RT_USING_SFUD is not set
274+
# CONFIG_RT_USING_ENC28J60 is not set
275+
# CONFIG_RT_USING_SPI_WIFI is not set
264276
# CONFIG_RT_USING_WDT is not set
265277
# CONFIG_RT_USING_AUDIO is not set
266278
# CONFIG_RT_USING_SENSOR is not set
@@ -387,6 +399,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
387399
# CONFIG_PKG_USING_FREEMODBUS is not set
388400
# CONFIG_PKG_USING_NANOPB is not set
389401
# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set
402+
# CONFIG_PKG_USING_ESP_HOSTED is not set
390403

391404
#
392405
# Wi-Fi
@@ -494,6 +507,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
494507
# CONFIG_PKG_USING_QMODBUS is not set
495508
# CONFIG_PKG_USING_PNET is not set
496509
# CONFIG_PKG_USING_OPENER is not set
510+
# CONFIG_PKG_USING_FREEMQTT is not set
497511
# end of IoT - internet of things
498512

499513
#
@@ -630,6 +644,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
630644
# CONFIG_PKG_USING_ZDEBUG is not set
631645
# CONFIG_PKG_USING_RVBACKTRACE is not set
632646
# CONFIG_PKG_USING_HPATCHLITE is not set
647+
# CONFIG_PKG_USING_THREAD_METRIC is not set
633648
# end of tools packages
634649

635650
#
@@ -723,6 +738,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
723738
# CONFIG_PKG_USING_RMP is not set
724739
# CONFIG_PKG_USING_R_RHEALSTONE is not set
725740
# CONFIG_PKG_USING_HEARTBEAT is not set
741+
# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set
726742
# end of system packages
727743

728744
#
@@ -822,6 +838,7 @@ CONFIG_PKG_INFINEON_RETARGET_IO_VER="latest"
822838

823839
# CONFIG_PKG_USING_NRF5X_SDK is not set
824840
# CONFIG_PKG_USING_NRFX is not set
841+
# CONFIG_PKG_USING_RASPBERRYPI_PICO_RP2350_SDK is not set
825842
# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
826843
# CONFIG_PKG_USING_MM32 is not set
827844

@@ -864,6 +881,10 @@ CONFIG_PKG_INFINEON_RETARGET_IO_VER="latest"
864881
#
865882
# HC32 DDL Drivers
866883
#
884+
# CONFIG_PKG_USING_HC32F3_CMSIS_DRIVER is not set
885+
# CONFIG_PKG_USING_HC32F3_SERIES_DRIVER is not set
886+
# CONFIG_PKG_USING_HC32F4_CMSIS_DRIVER is not set
887+
# CONFIG_PKG_USING_HC32F4_SERIES_DRIVER is not set
867888
# end of HC32 DDL Drivers
868889

869890
#
@@ -877,6 +898,21 @@ CONFIG_PKG_INFINEON_RETARGET_IO_VER="latest"
877898
# CONFIG_PKG_USING_NXP_IMX6UL_DRIVER is not set
878899
# CONFIG_PKG_USING_NXP_IMXRT_DRIVER is not set
879900
# end of NXP HAL & SDK Drivers
901+
902+
#
903+
# NUVOTON Drivers
904+
#
905+
# CONFIG_PKG_USING_NUVOTON_CMSIS_DRIVER is not set
906+
# CONFIG_PKG_USING_NUVOTON_SERIES_DRIVER is not set
907+
# CONFIG_PKG_USING_NUVOTON_ARM926_LIB is not set
908+
# end of NUVOTON Drivers
909+
910+
#
911+
# GD32 Drivers
912+
#
913+
# CONFIG_PKG_USING_GD32_ARM_CMSIS_DRIVER is not set
914+
# CONFIG_PKG_USING_GD32_ARM_SERIES_DRIVER is not set
915+
# end of GD32 Drivers
880916
# end of HAL & SDK Drivers
881917

882918
#
@@ -1048,6 +1084,7 @@ CONFIG_PKG_INFINEON_RETARGET_IO_VER="latest"
10481084
# CONFIG_PKG_USING_SEAN_WS2812B is not set
10491085
# CONFIG_PKG_USING_IC74HC165 is not set
10501086
# CONFIG_PKG_USING_IST8310 is not set
1087+
# CONFIG_PKG_USING_ST7789_SPI is not set
10511088
# CONFIG_PKG_USING_SPI_TOOLS is not set
10521089
# end of peripheral libraries and drivers
10531090

@@ -1402,14 +1439,16 @@ CONFIG_SOC_XMC7100D_F144K4160AA=y
14021439
CONFIG_BSP_USING_USB_TO_USART=y
14031440
# CONFIG_BSP_USING_TF_CARD is not set
14041441
# CONFIG_BSP_USING_QMI8658 is not set
1442+
# CONFIG_BSP_USING_ARDUINO is not set
1443+
# CONFIG_BSP_USING_RW007 is not set
14051444
# end of Onboard Peripheral Drivers
14061445

14071446
#
14081447
# On-chip Peripheral Drivers
14091448
#
14101449
CONFIG_BSP_USING_GPIO=y
14111450
CONFIG_BSP_USING_UART=y
1412-
CONFIG_BSP_USING_UART2=y
1451+
# CONFIG_BSP_USING_UART2 is not set
14131452
CONFIG_BSP_USING_UART4=y
14141453
CONFIG_UART_CPU_IRQ_Number=3
14151454
# CONFIG_BSP_USING_I2C is not set

bsp/Infineon/xmc7100d-f144k4160aa/README.md

Lines changed: 4 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
| USB 转串口 | 支持 | UART4 |
2222
| GPIO | 支持 ||
2323
| UART | 支持 | UART2,UART4 |
24-
| I2C | 支持 | I2C1 |
25-
24+
| I2C | 支持 | I2C1,I2C2 |
25+
| SPI | 支持 | SPI0,SPI5 |
2626
## 快速上手
2727

2828
本 BSP 是以 `GCC``Jlink` 为开发环境(编译器:GCC),接下来介绍如何将系统运行起来。
@@ -59,7 +59,6 @@ Vscode下载拓展Cortex-Debug,然后在.vscode下新建launch.json文件,并
5959
"interface": "swd",
6060
"serialNumber": "",
6161
"preLaunchCommands": [
62-
// Program via the hex file to get complete coverage
6362
"exec-file rt-thread.hex"
6463
],
6564
"overrideRestartCommands": [
@@ -68,34 +67,7 @@ Vscode下载拓展Cortex-Debug,然后在.vscode下新建launch.json文件,并
6867
// svdFile is optional, it can be very large.
6968
"svdFile": "${workspaceRoot}/libs/cat1c4m.svd",
7069
"breakAfterReset": true,
71-
"runToEntryPoint": "main", // Specifies application entry point name where program will halt
72-
"showDevDebugOutput": "none",
73-
"presentation": {
74-
"hidden": false,
75-
"group": "CM7"
76-
},
77-
"serverpath": "C:/Program Files/SEGGER/JLink_V820/JLinkGDBServerCL.exe"
78-
},
79-
// When using 'attach', make sure your program is running on the board and that your
80-
// executable matches the image in the chip exactly, or else strange things can happen
81-
// with breakpoints, variables, etc.
82-
{
83-
"name": "Attach XMC7100D CM7 (JLink)",
84-
"type": "cortex-debug",
85-
"request": "attach",
86-
"cwd": "${workspaceFolder}",
87-
"executable": "${workspaceRoot}/rt-thread.elf",
88-
"servertype": "jlink",
89-
"device": "XMC7100-4160_CM7_0_tm",
90-
"interface": "swd",
91-
"serialNumber": "",
92-
"overrideRestartCommands": [
93-
"starti"
94-
],
95-
// svdFile is optional, it can be very large.
96-
"svdFile": "${workspaceRoot}/libs/cat1c4m.svd",
97-
"breakAfterReset": true,
98-
"runToEntryPoint": "main", // Specifies application entry point name for restart/reset
70+
"runToEntryPoint": "main",
9971
"showDevDebugOutput": "none",
10072
"presentation": {
10173
"hidden": false,
@@ -112,7 +84,7 @@ Vscode下载拓展Cortex-Debug,然后在.vscode下新建launch.json文件,并
11284

11385
## 运行结果
11486

115-
下载程序成功之后,点击全速运行。然后打开终端工具串口助手,选择波特率为 115200。复位设备后,LED 将会闪烁,而且在终端上可以看到 `RT-Thread` 的输出信息:
87+
下载程序成功之后,点击全速运行。可通过 Type-C 接口 将开发板连接至电脑。随后,打开任意串口调试软件,在串口列表中选择设备名为 USB-HiSpeed-SERIAL-B 的端口,并将波特率设置为 115200。完成配置后,按下开发板上的 复位按键,即可在串口终端中实时看到 RT-Thread 系统的启动与运行日志信息。
11688

11789
注:推荐使用串口调试助手如:`MobaXterm`
11890

bsp/Infineon/xmc7100d-f144k4160aa/applications/SConscript

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ cwd = GetCurrentDir()
66
path = [cwd]
77
src = Glob('*.c')
88

9+
if GetDepend(['PKG_USING_RTDUINO']) and not GetDepend(['RTDUINO_NO_SETUP_LOOP']):
10+
src += ['arduino_main.cpp']
11+
912
group = DefineGroup('Applications', src, depend = [''], CPPPATH = path)
1013

1114
list = os.listdir(cwd)

0 commit comments

Comments
 (0)