ARTICLE DETAIL

资讯详情

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

Zephyr RTOS 上手 Infineon KIT_T2G-B-H_LITE:TRAVEO T2G Body High 三核评估板的构建、烧录与调试实战

Zephyr RTOS 上手 Infineon KIT_T2G-B-H_LITE:TRAVEO T2G Body High 三核评估板的构建、烧录与调试实战 Zephyr RTOS 上手 Infineon KIT_T2G-B-H_LITETRAVEO 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_LITE 是 Infineon 基于 TRAVEO™ T2G Body High 系列 CYT4BF8CDS 主控打造的车身电子评估板本文以 Zephyr 官方仓库中该板卡的 board 文档 为主体结合板级源码与配置逐层拆解其硬件资源、多核启动机制、默认外设映射、时钟拓扑并给出完整的 west 构建、烧录与 GDB 调试流程。读完本文你将能独立完成该板卡三个内核目标上的应用构建并通过 KitProg3 完成烧录与调试。Infineon KIT_T2G-B-H_LITE TRAVEO T2G Body High 汽车电子评估板板卡概览定位、硬件与套件内容KIT_T2G-B-H_LITE 面向汽车车身电子与工业控制两大应用场景。板卡核心是 TRAVEO T2G Body High 家族的 CYT4BF8CDS 微控制器采用 176 引脚 TEQFP 封装内部集成两颗主频 350 MHz 的 Arm® Cortex®-M7 内核 一颗 100 MHz 的 Arm® Cortex®-M0 内核8 MB 板载 Flash、1 MB SRAMCAN FD、带 RJ45 的以太网接口2 颗 512-Mb即 64 MB ×2QSPI NOR Flash一组可编程的模拟与数字外设。扩展性方面板卡同时提供Arduino、Shield2Go与MikroBUS三种排针接口兼容丰富的第三方扩展板。板载KitProg3编程/调试器通过 micro-B USB 提供 SWD、USB-UART 与 USB-I2C 能力单根 USB 线即可完成供电、串口与控制。从仓库的 board.yml 可以看到板卡在 Zephyr 中的注册信息name: kit_t2g_b_h_lite、full_name: T2G Body High Lite Evaluation Kit、厂商infineonSoC 为cyt4bf8cds。套件内容包括评估板本体、USB Type-A 转 Micro-B 线缆以及快速上手指南。多核构建目标M0 与双 M7 的三个 target这是 Zephyr 中典型的异构多核AMP非对称多处理板卡Zephyr 为该板定义了三个相互独立的构建目标每个目标都有自己独立的 DTS 与 defconfig构建目标内核对应 DTS / defconfigkit_t2g_b_h_lite/cyt4bf8cds/m0pCortex-M0kit_t2g_b_h_lite_cyt4bf8cds_m0p.dts / m0p_defconfigkit_t2g_b_h_lite/cyt4bf8cds/m7_0Cortex-M7 core 0kit_t2g_b_h_lite_cyt4bf8cds_m7_0.dts / m7_0_defconfigkit_t2g_b_h_lite/cyt4bf8cds/m7_1Cortex-M7 core 1kit_t2g_b_h_lite_cyt4bf8cds_m7_1.dts / m7_1_defconfig三个目标各自独立选择内存分区。以 m0p.dts 为例它通过chosen节点把zephyr,sram指到sram_m0p、zephyr,flash指到flash_m0p并将控制台绑定到uart0而 m7_0.dts 则额外指定了zephyr,dtcm与zephyr,itcm——这是 Cortex-M7 特有的紧耦合存储器TCM用于存放对延迟敏感的关键代码与数据。对应地两个 M7 目标的 defconfig 相比 M0 多开启了CONFIG_CACHE_MANAGEMENTy以支持 M7 的缓存管理能力。三个 defconfig 均开启的基础配置以 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_CONTROLy即启用 ARM MPU 与硬件栈保护、UART 控制台、GPIO 与时钟控制器驱动这是板卡 Zephyr 移植的最小功能集。多核启动顺序M0 引导双 M7上电后只有 Cortex-M0 内核被启动两颗 Cortex-M7 内核需要由 M0 上的应用程序显式使能使能第一个 M7 核Cy_SysEnableCM7(CORE_CM7_0, CY_CORTEX_M7_0_APPL_ADDR);使能第二个 M7 核Cy_SysEnableCM7(CORE_CM7_1, CY_CORTEX_M7_1_APPL_ADDR);这是 TRAVEO T2G 的典型启动模型M0 充当系统管理核负责时钟、电源域与其余内核的启动编排。因此在多核方案中通常需要为三个 target 分别构建镜像再在 M0 应用中通过上述 API 拉起两个 M7 镜像地址由CY_CORTEX_M7_0_APPL_ADDR/CY_CORTEX_M7_1_APPL_ADDR宏定义。硬件资源与连接用户 LED 与按键板卡提供三颗用户 LED 与两颗按键全部为低电平有效名称GPIO Pin说明LED0P5.0active lowLED1P5.1active lowLED2P5.2active lowSW1P5.3active low内部上拉SW2P17.0active low内部上拉这些映射在 kit_t2g_b_h_lite_common.dtsi 中有对应的设备树定义三颗 LED 以compatible gpio-leds声明并注册了led0/led1/led2别名两颗按键以compatible gpio-keys声明并注册sw0/sw1别名按键节点带有zephyr,code输入事件码可直接接入 Zephyr Input 子系统leds { compatible gpio-leds; user_led0: led_0 { label LED_0; gpios gpio_prt5 0 GPIO_ACTIVE_LOW; }; /* LED1: gpio_prt5 1LED2: gpio_prt5 2同上模式 */ }; gpio_keys { compatible gpio-keys; user_bt0: user_btn0 { label SW_1; gpios gpio_prt5 3 (GPIO_PULL_UP | GPIO_ACTIVE_LOW); zephyr,code INPUT_KEY_0; }; user_bt1: user_btn1 { label SW_2; gpios gpio_prt17 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW); zephyr,code INPUT_KEY_1; }; };对应的 GPIO 端口控制器在公共 dtsi 中显式使能gpio_prt5 { status okay; }; gpio_prt17 { status okay; };默认 Zephyr 外设映射板卡的默认外设映射由 kit_t2g_b_h_lite_common.dtsi 定义完整如下PinFunctionUsageP0.1SCB0 UART TXConsole TXP0.0SCB0 UART RXConsole RXP0.2SCB0 UART RTSConsole RTSP0.3SCB0 UART CTSConsole CTSP5.0GPIOLED0P5.1GPIOLED1P5.2GPIOLED2P5.3GPIOButton SW1P17.0GPIOButton SW2其中 UART 控制台的设备树配置如下含 RTS/CTS 硬件流控引脚uart0: scb0 { compatible infineon,uart; status okay; current-speed 115200; /* UART pins */ pinctrl-0 p0_1_scb0_uart_tx p0_0_scb0_uart_rx p0_2_scb0_uart_rts p0_3_scb0_uart_cts; pinctrl-names default; };引脚复用pinctrl定义位于 kit_t2g_b_h_lite_cyt4bf8cds_m0p-pinctrl.dtsi。此外公共 dtsi 还使能了path_mux0~path_mux3TRAVEO T2G 的外设路径多路复用器以及clk_mem、clk_peri、clk_slow等时钟分支为外设时钟提供通路。系统时钟拓扑TRAVEO T2G Body High 以**外部晶振ECO**作为时钟源头时钟路径如下FLLECO → 100 MHz用于外设/低频路径PLLECO → 80 MHzCLK_HF0200 MHz作为系统时钟CLK_HF1350 MHz供高性能外设使用时钟相关的设备树继承自 CAT1C 架构族的公共定义包括 system_clocks.dtsi经公共 dtsi 引入如需在应用层调整外设时钟或功耗策略应从该路径入手查阅时钟树结构。串口与控制台TRAVEO T2G Body High 提供多个 SCBSerial Communication Block串行通信块接口Zephyr 控制台默认绑定SCB0即uart0信号经由板载 KitProg3 的 USB-UART 桥接输出到主机。默认通信参数为115200 8N1115200 波特率、8 数据位、无校验、1 停止位。构建应用以 Zephyr 官方hello_world示例演示三个目标的构建命令均使用westM0 目标west build -p always -b kit_t2g_b_h_lite/cyt4bf8cds/m0p samples/hello_world第一个 Cortex-M7 核west build -p always -b kit_t2g_b_h_lite/cyt4bf8cds/m7_0 samples/hello_world第二个 Cortex-M7 核west build -p always -b kit_t2g_b_h_lite/cyt4bf8cds/m7_1 samples/hello_world注意三个目标互不通用切换目标时必须重新构建-p always强制全新构建且如前所述M7 镜像需要由 M0 应用显式启动。烧录与调试烧录工具链准备Infineon OpenOCD板卡通过板载 KitProg3 完成烧录与调试Zephyr 侧使用的 runner 为OpenOCD见 board.cmake其通过board_runner_args(openocd --target-handlecat1c.cpu.cm0)指定连接 M0 内核并引入 openocd.board.cmake。Infineon OpenOCD 有两种获取方式ModusToolbox™ Programming Tools 软件包自带 Infineon OpenOCD安装后自动可用独立安装下载对应平台的 Infineon OpenOCD 发行版解压到任意目录即可。Linux 下 KitProg3 需要设备访问权限。ModusToolbox™ Programming Tools 安装时会自动配置若是独立安装 OpenOCD需手动执行脚本openocd/udev_rules/install_rules.sh完成 udev 规则安装。板卡自带的 OpenOCD 配置 support/openocd.cfg 展示了其调试链路默认通过 CMSIS-DAP 接口连接set INTERFACE cmsis-dap选择 SWD 传输并加载 CAT1C 目标定义target/cat1c.cfg。配置控制台用 USB 线将 PC 与板卡上的 KitProg3 micro-B USB 接口J2相连使用任意串口终端minicom、PuTTY 等参数设置Speed:115200Data:8 bitsParity:NoneStop bits:1烧录FlashingWindows一次性设置 Infineon OpenOCD 路径按实际路径修改west config build.cmake-args -- -DOPENOCDpath/to/infineon/openocd/bin/openocd.exe然后构建并烧录west build -b kit_t2g_b_h_lite/cyt4bf8cds/m0p -p always samples/hello_world west flashLinux一次性设置路径west config build.cmake-args -- -DOPENOCDpath/to/infineon/openocd/bin/openocd构建并烧录west build -b kit_t2g_b_h_lite/cyt4bf8cds/m0p -p always samples/hello_world west flash烧录成功后串口控制台应输出*** Booting Zephyr OS build vX.Y.Z *** Hello World! kit_t2g_b_h_litewest flash底层会调用openocd.board.cmake注册的 OpenOCD runner通过 SWD 将镜像写入目标内核。调试Debugging以 M0 目标为例启动 GDB 调试会话west build -p always -b kit_t2g_b_h_lite/cyt4bf8cds/m0p samples/hello_world west debugGDB 控制台启动后即可对 TRAVEO T2G Body High 的内核设置断点并进行标准 GDB 调试。由于 board.cmake 将 OpenOCD 的 target handle 固定为cat1c.cpu.cm0调试会话默认附着在 M0 核上若需调试 M7 核应以对应 M7 目标构建并在实际调试会话中按需切换 OpenOCD target。小结KIT_T2G-B_H_LITE 是体验 Zephyr 在汽车级异构多核平台M0 管理核 双 M7 应用核上运行的理想载体。其三个独立构建目标、由 M0 引导 M7 的启动模型、SCB0 控制台映射与 KitProg3/OpenOCD 调试链路构成了完整的开发闭环。你可以从 samples/hello_world 起步验证工具链再进一步尝试 GPIOLED/按键、CAN FD 或以太网等外设示例逐步深入 TRAVEO T2G 车身电子方案的原型开发。【免费下载链接】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),仅供参考
返回列表