首页/新闻资讯/正文详情

RT-Thread 在 Infineon XMC7200 双核开发板上的移植与快速上手:xmc7200-kit_xmc7200_evk BSP 实战指南

发布时间:2026/9/23 18:24:03 来源:云帆数科 栏目:资讯中心
RT-Thread 在 Infineon XMC7200 双核开发板上的移植与快速上手:xmc7200-kit_xmc7200_evk BSP 实战指南
操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载RT-Thread 为英飞凌 XMC7200 系列提供了完整的板级支持包BSPxmc7200-kit_xmc7200_evk本文以仓库中该 BSP 的 README.md 为骨架结合仓库内的源码与配置系统讲解开发板资源、外设支持矩阵、MDK V5 环境下的编译下载流程、运行结果验证方法以及基于源码的移植细节。读完本文你将能够独立完成从环境准备、工程生成、固件烧录到串口控制台验证的全流程并理解该 BSP 的底层初始化与驱动实现原理。开发板介绍XMC7200 的双核可编程嵌入式片上系统xmc7200-kit_xmc7200_evk是英飞凌推出的 XMC7200 系列评估板核心是XMC7200D-E272K-8384AA芯片。它是一款为工业应用设计的 32 位双核 CPU 子系统开发板属于真正的可编程嵌入式片上系统PSoC其计算资源布局如下主应用处理器最多两个350MHz Arm Cortex-M7负责运行主应用RT-Thread 内核即运行于该核协处理器一个100MHz Arm Cortex-M0通常承担低功耗监控、安全启动等辅助任务存储资源8MB Flash与1MB SRAM为 RT-Thread 内核、组件和用户应用提供了充裕的内存空间。该 BSP 的工程骨架位于 bsp/Infineon/xmc7200-kit_xmc7200_evk其中board/目录存放板级初始化代码与三种链接脚本GCC 的 link.ld、IAR 的 link.icf、MDK 的 link.sctlibs/目录则存放英飞凌官方生成的 CM0P/CM7 双核启动文件、系统初始化文件以及由 ModusToolbox 生成的cycfg_*外设配置源码applications/目录存放用户入口程序。外设支持矩阵当前 BSP 对外设的支持情况如下表所示片上外设支持情况备注USB 转串口支持UART3兼作系统控制台GPIO支持板载 LED 已接线UART支持UART0-3这一矩阵与 rtconfig.h 中的宏开关一一对应BSP_USING_GPIO、BSP_USING_UART、BSP_USING_UART3均已使能同时RT_USING_SERIAL与RT_USING_PIN也已打开说明串口与 GPIO 驱动在默认配置下即被编译进内核。值得注意的是控制台设备被指定为uart3见RT_CONSOLE_DEVICE_NAME uart3即板载 USB 转串口链路。快速上手在 MDK V5 环境下运行 RT-Thread本 BSP 以MDK V5和Cypress Programmer为主要开发环境编译器支持 ARMClang / GCC。核心工具链在 rtconfig.py 中定义默认CROSS_TOOLarmclang并可通过环境变量RTT_CC、RTT_EXEC_PATH覆盖为 GCC 或 IAR。以下按官方流程逐步说明。第一步硬件连接使用数据线将开发板连接到 PC此时板载 USB 转串口UART3会被识别为串口设备同时为板卡供电。第二步在 ENV 环境下更新软件包并生成 MDK 工程该 BSP 依赖英飞凌的 HAL 库软件包Infineon_mtb-pdl-cat1等这些包不会随仓库直接携带需要先执行包管理器命令下载文件会存放在Packages目录下pkgs --update从 SConstruct 的源码可以看到构建系统正是通过find_package_root(SDK_ROOT, package_prefixInfineon_mtb-pdl-cat1)来定位 HAL 库根目录的若找不到会提示 Packages for HAL_Driver does not exist, pull it in ENV usingpkg --update 并回退到packages目录。因此必须先执行pkgs --update才能成功编译。所需的软件包宏在 rtconfig.h 中也有体现包括PKG_USING_INFINEON_CAT1CM0P、PKG_USING_INFINEON_CMSIS、PKG_USING_INFINEON_CORE_LIB、PKG_USING_INFINEON_MTB_HAL_CAT1、PKG_USING_INFINEON_MTB_PDL_CAT1、PKG_USING_INFINEON_RETARGET_IO六项。随后在 ENV 环境下生成 MDK5 工程scons --targetmdk5ENV 会自动生成 MDK5 工程文件即仓库中的project.uvprojx与template.uvprojx。第三步配置 MDK 工程打开 MDK 工程后若本机尚未安装Infineon-XMC7200的芯片支持包CMSIS PackMDK 会提示在线安装按提示完成安装即可若受网络问题影响无法在线安装可前往 Arm Keil 的 CMSIS Packs 官网下载对应安装包后进行离线安装。芯片支持包提供了器件定义、Flash 下载算法仓库libs/下的CAT1C_SMIF.FLM即烧录算法文件等关键资源缺一不可。第四步编译生成 HEX 文件安装好芯片支持包后在 MDK 中直接编译工程即可生成 HEX 文件。MDK 工程默认输出目录为Build/Keil/Obj编译产物即位于该目录下。工程同时支持 ARMClang 与 GCC 两种编译器后端rtconfig.py 中PLATFORM armclang分支使用armclang armlink armasmPLATFORM gcc分支使用arm-none-eabi-gcc并链接board/linker_scripts/link.ld。第五步使用 Cypress Programmer 烧录打开 Cypress Programmer 工具按以下顺序操作找到 MDK 生成的.hex文件一般在Build/Keil/Obj目录下在软件中选择该文件点击Connect连接到开发板点击Program完成固件下载。运行结果验证下载程序成功之后系统会自动运行。打开终端工具如串口调试助手 MobaXterm选择波特率115200复位设备后即可观察到两个现象板载 LED 闪烁LED 以 500ms 为间隔翻转电平。串口输出 RT-Thread 启动信息\ | / - RT - Thread Operating System / | \ 5.1.0 build May 25 2024 18:03:35 2006 - 2024 Copyright by RT-Thread team msh 出现msh 提示符即代表系统已成功运行可以开始输入 RT-Thread 的 shell 命令。从源码看 LED 与串口的实现LED 闪烁逻辑位于 applications/main.c#include rtthread.h #include rtdevice.h #include drv_gpio.h #define LED_PIN GET_PIN(16, 1) int main(void) { rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT); for (;;) { rt_pin_write(LED_PIN, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LED_PIN, PIN_LOW); rt_thread_mdelay(500); } }代码将 LED 引脚GET_PIN(16, 1)即 GPIO 端口 16 的第 1 脚配置为推挽输出并在死循环中每 500ms 翻转一次电平因此 LED 呈周期性闪烁亮 500ms、灭 500ms。该程序依赖 GPIO 驱动接口rt_pin_mode/rt_pin_write其底层实现位于 bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c通过英飞凌cyhalHAL 层操作引脚寄存器。系统启动信息中的版本号与 rtconfig.h 中的RT_VER_NUM 0x50300对应 RT-Thread 5.3.0一致内核时钟节拍配置为RT_TICK_PER_SECOND 1000即 1ms 一个 tick。串口控制台由drv_uart.c驱动 UART3 提供rtconfig.h中的UART_CPU_IRQ_Number 3指定了 UART 中断连接到 CPU 的中断号。进阶使用深入 BSP 内部结构与配置板级初始化流程系统上电后RT-Thread 的启动流程会调用板级初始化函数。该 BSP 的初始化入口位于 board/board.cvoid cy_bsp_all_init(void) { cy_rslt_t result; /* Initialize the device and board peripherals */ result cybsp_init(); /* Board init failed. Stop program execution */ if (result ! CY_RSLT_SUCCESS) { CY_ASSERT(0); } }cy_bsp_all_init封装了英飞凌cybsp_init()调用用于完成时钟、引脚与板级外设的初始化初始化失败时会触发CY_ASSERT断言并停止执行。该函数的声明位于 board/board.h同时该头文件还定义了堆区边界IFX_SRAM_SIZE为 1014KB堆结束地址为0x28000000 1014 * 1024并针对 ARMCC、ICCARM、GCC 三种编译器分别给出了HEAP_BEGIN/HEAP_END的获取方式供 RT-Thread 内存堆初始化使用。硬件驱动裁剪Kconfig开发者可以通过menuconfig对硬件驱动进行裁剪配置入口由 bsp/Infineon/xmc7200-kit_xmc7200_evk/Kconfig 引入board/Kconfig。当前可配置项包括SOC 型号SOC_XMC7200D_E272K8384AA默认选中并自动依赖SOC_SERIES_IFX_XMC板载外设BSP_USING_USB_TO_USART即 uart3默认开启会连带选中 GPIO、UART、UART3片上外设BSP_USING_GPIO默认开启依赖RT_USING_PINBSP_USING_UART默认开启依赖RT_USING_SERIAL其下可单独开关BSP_USING_UART3并可通过UART_CPU_IRQ_Number取值范围 0-7默认 3配置 UART 连接 CPU 的中断号BSP_USING_ETH默认关闭依赖RT_USING_ETH。对应的串口实现为 bsp/Infineon/libraries/HAL_Drivers/drv_uart.cGPIO 实现为 bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c。此外HAL_Drivers 目录还提供了 ADC、DAC、Flash、I2C、PWM、RTC、SPI、Timer、WDT 等驱动文件如drv_adc.c、drv_flash.c、drv_spi.c开发者可按需在 Kconfig 中扩展使能其中config/xmc7200/adc_config.h等文件为对应外设提供了引脚与通道配置。双核架构与启动文件XMC7200 的双核特性在 BSP 中体现为两套启动文件均位于 bsp/Infineon/xmc7200-kit_xmc7200_evk/libs/TARGET_APP_KIT_XMC72_EVKCOMPONENT_CM0PCortex-M0 核的启动文件startup_cm0plus.s/startup_cm0plus.S与系统初始化文件system_cm0plus.cCOMPONENT_CM7Cortex-M7 核的启动文件startup_cm7.c与系统初始化文件system_cm7.c。RT-Thread 内核运行在 CM7 核上CM0 核负责系统级辅助功能。两个核的链接脚本linker.sct / linker.ld / linker.icf也按核分别存放。system_cm7.c负责配置 CM7 的系统时钟与总线xmc7xxx_partition.h定义了 XMC7000 系列的内存分区。开发者若需自定义时钟频率或内存布局可修改对应核的system_*.c与链接脚本。外设配置文件ModusToolbox 生成libs/.../config/GeneratedSource/下存放了由英飞凌 ModusToolbox 根据design.modus、design.cyqspi设计文件自动生成的外设配置源码包括cycfg_pins.c/h引脚复用与电气属性配置cycfg_clocks.c/h时钟树配置cycfg_peripherals.c/h外设实例配置UART、GPIO 等cycfg_qspi_memslot.c/h与qspi_config.cfg外部 FlashQSPI存储配置配合FlashLoaders/CAT1C_SMIF.FLM烧录算法实现片外 Flash 的读写。这些文件由工具链自动维护通常在修改design.modus后重新生成无需手工编辑。小结xmc7200-kit_xmc7200_evkBSP 完整展示了 RT-Thread 在英飞凌 XMC7200 双核平台上从编译、烧录到运行验证的整套流程通过pkgs --update拉取 HAL 软件包、scons --targetmdk5生成工程、MDK 编译、Cypress Programmer 烧录最终在 115200 波特率下看到 RT-Thread 的启动 banner 与msh控制台。结合 board/board.c、applications/main.c、rtconfig.h 等源码开发者可以进一步理解双核启动、板级初始化与 GPIO/UART 驱动的底层机制并借助 Kconfig 按需裁剪外设将 BSP 快速迁移到自己的 XMC7200 项目中。赞分享操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载相关推荐RT-Thread 在 Infineon PSoC6-CY8CKIT-062S4 上的 BSP 快速上手与双核外设开发指南RT Thread 在 Infineon PSoC6 CY8CKIT 062S4 上的 BSP 快速上手与双核外设开发指南 本指南以 RT Thread 为英飞操作系统嵌入式物联网嵌入式OSRTOSRT-Thread 基于 Infineon PSoC6 CY8CKIT-062S2-43012 双核开发板的 BSP 快速上手与实战指南RT Thread 基于 Infineon PSoC6 CY8CKIT 062S2 43012 双核开发板的 BSP 快速上手与实战指南 导读 本文以 RT T操作系统嵌入式物联网嵌入式OSRTOSRT-Thread 在 AT32F403A AT-START 开发板上的 BSP 移植与快速上手指南RT Thread 在 AT32F403A AT START 开发板上的 BSP 移植与快速上手指南 AT32F403A AT START 是雅特力Arter操作系统嵌入式物联网嵌入式OSRTOS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

等增益合并实战:从w4_zj_2.rar多通道数据到相位对齐与合并
等增益合并实战:从w4_zj_2.rar多通道数据到相位对齐与合并

简介:这份资源面向无线通信与MIMO系统方向的学习者和研究者,聚焦4发2收空时编码场景下等增益合并(EGC)策略的MATLAB仿真实现,适合已具备通信原理基础、希望动手验证分集合并性能的中高级读者。压缩包为rar格式&#xf… · 2026/9/23 18:24:03

220.Magisk Systemless Root 底层原理:不修改 System 分区的核心逻辑
220.Magisk Systemless Root 底层原理:不修改 System 分区的核心逻辑

摘要 本文从Android系统启动链的底层原理出发,系统性地讲解安卓手机刷机与维修的完整技术体系。内容涵盖Bootloader解锁、Fastboot协议、Recovery模式、Magisk Root原理、分区表结构、EDL模式救砖等核心知识点,并结合三个真实维修案例(系统崩溃修复、基带丢失恢复、OTA升级… · 2026/9/23 18:24:03

遗传算法优化BP神经网络:MATLAB实战与避坑指南
遗传算法优化BP神经网络:MATLAB实战与避坑指南

简介:这份MATLAB源码资源面向具备一定机器学习基础、希望用遗传算法改进神经网络做股票价格预测的学习者与研究者。包内共12个文件,以6个m脚本、4个mat数据文件为主,另含1个xls数据表和1份docx说明,压缩包约415KB。核心脚本覆盖基… · 2026/9/23 18:23:57

ECC 两大机制拆解:安全前置钩子与测试驱动执行流
ECC 两大机制拆解:安全前置钩子与测试驱动执行流

ECC 两大机制拆解:安全前置钩子与测试驱动执行流 资料来源:ECC 开源仓库(affaan-m/ECC)一手源码 skills/safety-guard/SKILL.mdskills/tdd-workflow/SKILL.mdhooks/hooks.json 架构(hooks/README.md) 一、安全做成前置钩子(safety-guard) 核心思想:利用 harness 的 PreToolUse… · 2026/9/23 18:59:13

一维回线源瞬变电磁正演建模与Python实现
一维回线源瞬变电磁正演建模与Python实现

简介:本资源是一套面向地球物理探测研究者与高年级本科生的瞬变电磁法正演建模工具,聚焦回线源激励下的一维地层电磁响应模拟,解决地下电导率结构快速正演预测与理论响应曲线生成问题。压缩包为4KB的ZIP文件,仅含1个核心MATLAB脚本… · 2026/9/23 18:59:13

3个避坑点让世界听见你的实战项目声音
3个避坑点让世界听见你的实战项目声音

3个避坑点让世界听见你的实战项目声音 配置环境卡半天,代码跑不通,报错日志刷屏?这大概是每个搞【实战项目】的人都经历过的噩梦。尤其是想做点能拿得出手、能让别人【让世界听见】的作品时,环境依赖、版本冲突、路径问题,随便一个都能让你崩溃。别急,… · 2026/9/23 18:59:13

3个实战项目教你彻底搞懂如何更改ip地址底层逻辑
3个实战项目教你彻底搞懂如何更改ip地址底层逻辑

3个实战项目教你彻底搞懂如何更改ip地址底层逻辑 很多开发者在写代码时,觉得 localhost 和 127.0.0.1 是一回事,直到你的 实战项目… · 2026/9/23 18:59:07

基于JSP和Servlet的蛋糕店售卖网站:JavaWeb课设完整源码与避坑指南
基于JSP和Servlet的蛋糕店售卖网站:JavaWeb课设完整源码与避坑指南

简介:这是一套面向计算机相关专业学生与JavaWeb初学者的蛋糕店售卖网站完整项目源码,基于JSP与Servlet技术栈实现,可作为课程设计、毕业设计或大作业的参考方案。项目涵盖前台核心业务:商品分类与推荐展示(条幅、热销、… · 2026/9/23 18:59:01

JPDA多目标航迹关联算法MATLAB实现与工程移植
JPDA多目标航迹关联算法MATLAB实现与工程移植

简介:本资源是一份面向初学者的JPDA多目标跟踪算法实践材料,聚焦航迹关联核心问题,适用于雷达、视觉等传感器数据处理场景下的目标跟踪学习与仿真验证。压缩包共2个MATLAB源码文件(.m),总大小仅5KB&#xf… · 2026/9/23 18:59:00

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码