ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Zephyr 多核移植实战:Infineon KIT_T2G-B-H_EVK(TRAVEO T2G Body High)评估板开发指南

Zephyr 多核移植实战:Infineon KIT_T2G-B-H_EVK(TRAVEO T2G Body High)评估板开发指南 Zephyr 多核移植实战Infineon KIT_T2G-B-H_EVKTRAVEO T2G Body High评估板开发指南【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyrKIT_T2G-B-H_EVK 是 Infineon 面向车规车身电子与工业控制推出的 TRAVEO™ T2G Body High 评估板搭载双 Arm® Cortex®-M7 与单 Cortex®-M0 的三核 SoC CYT4BFBCHE。在 Zephyr 中该板卡被定义为kit_t2g_b_h_evk支持 M0、M7 core0、M7 core1 三个独立构建目标本文基于 板级官方文档 结合仓库内设备树、defconfig 与 OpenOCD 脚本完整讲解其硬件资源、多核构建、烧录与调试流程读完后你可以直接上手在三个核上分别编译、烧录并调试 Zephyr 应用。KIT_T2G-B-H_EVK 评估板板卡概述KIT_T2G-B-H_EVK 是面向 TRAVEO™ T2G Body High 系列的评估套件核心为 CYT4BFBCHE 微控制器集成双 Arm® Cortex®-M7 内核350 MHz与一个 Arm® Cortex®-M0 内核100 MHz封装为 272 引脚 BGA。该板面向汽车车身电子如车身控制、网关与工业控制等应用场景板级元数据在 board.yml 中登记为名称kit_t2g_b_h_evk全称 T2G Body High Evaluation Kit厂商infineonSoCcyt4bfbche板卡关键特性包括8 MB 片内 Flash、1 MB SRAM、千兆以太网、CAN FD、512-Mb QSPI NOR Flash以及一整套可编程的模拟与数字外设。板卡同时提供 Arduino 兼容排针并板载 KitProg3 编程器/调试器通过 micro-B USB 连接主机。三个构建目标一板三核KIT_T2G-B-H_EVK 是多核板卡Zephyr 为其定义了三个相互独立的构建目标每个目标拥有独立的 DTS、YAML 与 defconfig构建目标运行内核说明kit_t2g_b_h_evk/cyt4bfbche/m0pCortex-M0系统启动核默认唯一使能kit_t2g_b_h_evk/cyt4bfbche/m7_0Cortex-M7 core 0高性能应用核kit_t2g_b_h_evk/cyt4bfbche/m7_1Cortex-M7 core 1高性能应用核三个目标对应的板级源码位于 boards/infineon/kit_t2g_b_h_evk/ 目录kit_t2g_b_h_evk_cyt4bfbche_m0p.dts/.yaml/_defconfigkit_t2g_b_h_evk_cyt4bfbche_m7_0.dts/.yaml/_defconfigkit_t2g_b_h_evk_cyt4bfbche_m7_1.dts/.yaml/_defconfig三者共享同一份公共设备树 kit_t2g_b_h_evk_common.dtsi 与同一个 pinctrl 文件。目标 YAML如 kit_t2g_b_h_evk_cyt4bfbche_m7_0.yaml中登记ram: 1024、flash: 8192单位 KB工具链同时支持zephyr与gnuarmemb。不同内核的设备树差异从设备树源码可以看出三个目标的分区差异以 m0p 的 dts 与 m7_0 的 dts 对比为例M0 目标引入xmc7200_m0p.dtsichosen节点将zephyr,sram指向sram_m0p、zephyr,flash指向flash_m0p无 TCM 配置M7 目标引入xmc7200_m7.dtsichosen节点将zephyr,sram指向sram_m7_0或sram_m7_1并额外指定zephyr,dtcm与zephyr,itcm即 M7 核可使用紧耦合内存提升性能三个目标都通过zephyr,console与zephyr,shell-uart指向uart3控制台复用同一路串口。三个目标的compatible均为infineon,kit_t2g_b_h_evk, infineon,TVIIBH8M与 SoC 级 dtsiarm/infineon/cat1c/mpns/cyt4bfbche.dtsi对应。硬件规格一览项目规格SoCTRAVEO T2G Body HighCYT4BFBCHECPUArm® Cortex®-M7 ×2 350 MHz Arm® Cortex®-M0 100 MHz封装272-pin BGAFlash8 MBSRAM1 MB连接性千兆以太网、CAN FD、M.2 WiFi/BT暂不支持外设512-Mb QSPI NOR Flash、HYPERBUS™ 内存接口、JTAG/ETM 调试调试板载 KitProg3SWD USB-UART USB-I2C供电可选 3.3V 或 5.0VUSB 或 12V DC 适配器接口Micro-B USB编程与供电扩展Arduino 兼容排针、Digilent 双 PMOD SMIF 接口用户 I/O三个用户 LED、两个用户按键、电位器套件内容TRAVEO T2G Body High 评估板USB Type-A 转 Micro-B 线缆12V/3A 直流电源适配器六根跳线快速上手指南支持的硬件功能Zephyr 为 KIT_T2G-B-H_EVK 使能的功能集合由各目标 defconfig 驱动。以 M0 目标的 kit_t2g_b_h_evk_cyt4bfbche_m0p_defconfig 为例基础配置包括# General configuration CONFIG_ARM_MPUy CONFIG_HW_STACK_PROTECTIONy # Enable console CONFIG_CONSOLEy CONFIG_UART_CONSOLEy # Enable UART driver CONFIG_SERIALy # Enable GPIO driver CONFIG_GPIOy # Enable clock controller CONFIG_CLOCK_CONTROLyM7 目标的 defconfig 在相同基础上额外启用了CONFIG_CACHE_MANAGEMENTyM7 核支持缓存管理。从设备树看板级默认使能的外设包括scb3UART、gpio_prt16/17/21LED 与按键所在端口、path_mux0~3、clk_mem、clk_peri、clk_slow。应用层如需使用以太网、CAN FD、QSPI 等外设需在应用 overlay 或 prj.conf 中进一步配置。连接与 IO 映射LED名称GPIO 引脚电平LED0P16.1低电平有效active lowLED1P16.2低电平有效active lowLED2P16.3低电平有效active low按键名称GPIO 引脚电平SW1P21.4低电平有效内部上拉active low, pullupSW2P17.3低电平有效内部上拉active low, pullup默认 Zephyr 外设映射引脚功能用途P13.1SCB3 UART TX控制台 TXP13.0SCB3 UART RX控制台 RXP13.2SCB3 UART RTS控制台 RTSP13.3SCB3 UART CTS控制台 CTSP16.1GPIOLED0P16.2GPIOLED1P16.3GPIOLED2P21.4GPIO按键 SW1P17.3GPIO按键 SW2以上映射与公共设备树 kit_t2g_b_h_evk_common.dtsi 完全对应user_led0~2以GPIO_ACTIVE_LOW声明在gpio_prt16上位 1/2/3user_bt0SW_1与user_bt1SW_2以GPIO_PULL_UP | GPIO_ACTIVE_LOW声明并分别绑定输入事件码INPUT_KEY_0与INPUT_KEY_1。aliases中将led0/led1/led2与sw0/sw1标准化应用可直接通过LED0、SW0等 DT 别名 API 访问。UART 引脚控制pinctrl 文件 显式配置了 UART 引脚方向TXP13.1与 RTSP13.2为drive-push-pull推挽输出RXP13.0与 CTSP13.3为input-enable输入模式。uart3节点在公共 dtsi 中被覆写为compatible infineon,uart、status okay、current-speed 115200并通过pinctrl-0引用上述四个引脚节点。系统时钟TRAVEO T2G Body High 使用外部晶振ECO作为时钟源时钟链路如下FLLECO → 100 MHzPLLECO → 80 MHzCLK_HF0200 MHz系统时钟CLK_HF1350 MHz高性能外设时钟板级 dtsi 引入了 SoC 时钟定义arm/infineon/cat1c/xmc7200/system_clocks.dtsi并在公共 dtsi 中使能clk_mem、clk_peri、clk_slow等时钟域节点CONFIG_CLOCK_CONTROLy保证时钟控制器驱动在构建时被启用。串口TRAVEO T2G Body High 提供多个 SCBSerial Communication Block串行通信接口。Zephyr 控制台输出固定分配给SCB3设备树节点uart3并通过板载 KitProg3 的 USB-UART 桥接路由到主机。默认通信参数为115200 8N1115200 bps8 数据位无校验1 停止位与设备树中current-speed 115200一致。构建应用以下以 Zephyr 官方hello_world示例演示三个目标的构建命令所有命令在 Zephyr 仓库根目录执行需先完成west init/west update环境初始化。M0 核west build -b kit_t2g_b_h_evk/cyt4bfbche/m0p samples/hello_world第一个 Cortex-M7 核core 0west build -b kit_t2g_b_h_evk/cyt4bfbche/m7_0 samples/hello_world第二个 Cortex-M7 核core 1west build -b kit_t2g_b_h_evk/cyt4bfbche/m7_1 samples/hello_world多核启动注意事项系统上电后仅 Cortex-M0 核被使能运行。要在 M0 应用中启动第一个 M7 核需调用 Infineon HAL 函数Cy_SysEnableCM7(CORE_CM7_0, CY_CORTEX_M7_0_APPL_ADDR);启动第二个 M7 核则调用Cy_SysEnableCM7(CORE_CM7_1, CY_CORTEX_M7_1_APPL_ADDR);两个 M7 核的应用镜像地址由CY_CORTEX_M7_0_APPL_ADDR/CY_CORTEX_M7_1_APPL_ADDR宏定义与设备树中的 flash 分区flash_m7_0/flash_m7_1对应。编程与调试KIT_T2G-B-H_EVK 板载 KitProg3 编程器/调试器可对 TRAVEO T2G Body High 各核进行烧录与调试。调试链路在 support/openocd.cfg 中定义默认通过 CMSIS-DAP 接口KitProg3 的 Debug USB 口连接transport select swd选择 SWD 传输协议并加载 Infineon 的目标脚本target/cat1c.cfg若设置了环境变量OPENOCD_INTERFACE则会优先使用该变量指定的接口配置文件。安装 Infineon OpenOCD烧录依赖 Infineon 定制版 OpenOCD两种安装方式ModusToolbox™ Programming Tools 软件包其中自带 Infineon OpenOCD独立安装下载适用于本系统的 Infineon OpenOCD 发行版解压到任意目录即可。Linux 权限提示Linux 下需要为 KitProg3 配置设备访问权限。使用 ModusToolbox™ Programming Tools 安装时会自动处理若为独立安装 OpenOCD需手动执行脚本openocd/udev_rules/install_rules.sh配置控制台用 USB 线将 PC 连接到板上 KitProg3 的 micro-B USB 接口J7然后使用任意串口终端minicom、PuTTY 等连接参数如下波特率115200数据位8校验位None停止位1烧录Flashing由于各目标默认使用 OpenOCD 作为烧录 runner首次使用前需要为 west 指定 Infineon OpenOCD 的可执行文件路径。Windowswest config build.cmake-args -- -DOPENOCDpath/to/infineon/openocd/bin/openocd.exe west build -b kit_t2g_b_h_evk/cyt4bfbche/m0p -p always samples/hello_world west flashLinuxwest config build.cmake-args -- -DOPENOCDpath/to/infineon/openocd/bin/openocd west build -b kit_t2g_b_h_evk/cyt4bfbche/m0p -p always samples/hello_world west flash-p always表示每次构建前强制 pristine干净构建-DOPENOCD...通过 CMake 参数把 OpenOCD 路径传给烧录脚本。烧录成功后串口控制台应输出*** Booting Zephyr OS build vX.Y.Z *** Hello World! kit_t2g_b_h_evk调试Debugging在 M0 核上启动 GDB 调试会话west build -b kit_t2g_b_h_evk/cyt4bfbche/m0p samples/hello_world west debugGDB 控制台启动后即可对 TRAVEO T2G Body High 各核设置断点并执行标准 GDB 调试操作单步、查看寄存器、读写内存等。对 M7 核调试时将-b参数替换为kit_t2g_b_h_evk/cyt4bfbche/m7_0或kit_t2g_b_h_evk/cyt4bfbche/m7_1即可。开发要点小结多核工作流M0 是系统启动与电源管理核M7 双核负责重负载应用Zephyr 侧以三个独立构建目标方式支持M7 核镜像需由 M0 应用通过Cy_SysEnableCM7()启动。板级资源复用LED、按键、UART 三个目标的映射完全一致应用层代码可跨核复用唯一差异是内存分区sram_m0p/sram_m7_0/sram_m7_1与 M7 额外的 ITCM/DTCM、缓存管理。调试链统一走 KitProg3 的 CMSIS-DAP SWD配合 Infineon OpenOCD 与cat1c.cfg目标脚本无需额外调试器硬件。控制台固定使用 SCB3 UARTP13.0~P13.3115200 8N1经 KitProg3 USB-UART 桥接输出。【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表