Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 45 additions & 3 deletions bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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},
Expand All @@ -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[] =
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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)
{
Expand Down
9 changes: 9 additions & 0 deletions bsp/Infineon/libraries/HAL_Drivers/drv_spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,22 @@
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),
.miso_pin = GET_PIN(0, 3),
.mosi_pin = GET_PIN(0, 2),
},
#endif
#endif
#if defined(BSP_USING_SPI3)
{
.bus_name = "spi3",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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

57 changes: 48 additions & 9 deletions bsp/Infineon/xmc7100d-f144k4160aa/.config
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -235,32 +235,44 @@ 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
# 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_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
# 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_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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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

#
Expand Down Expand Up @@ -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

#
Expand Down Expand Up @@ -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

#
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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

#
Expand All @@ -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

#
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -1402,14 +1439,16 @@ 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

#
# On-chip Peripheral Drivers
#
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
Expand Down
36 changes: 4 additions & 32 deletions bsp/Infineon/xmc7100d-f144k4160aa/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
| USB 转串口 | 支持 | UART4 |
| GPIO | 支持 | — |
| UART | 支持 | UART2,UART4 |
| I2C | 支持 | I2C1 |

| I2C | 支持 | I2C1,I2C2 |
| SPI | 支持 | SPI0,SPI5 |
## 快速上手

本 BSP 是以 `GCC` 和 `Jlink` 为开发环境(编译器:GCC),接下来介绍如何将系统运行起来。
Expand Down Expand Up @@ -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": [
Expand All @@ -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": "",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里为啥要删除?

"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,
Expand All @@ -112,7 +84,7 @@ Vscode下载拓展Cortex-Debug,然后在.vscode下新建launch.json文件,并

## 运行结果

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

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

Expand Down
3 changes: 3 additions & 0 deletions bsp/Infineon/xmc7100d-f144k4160aa/applications/SConscript
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Loading