3. 开发环境搭建与第一个低功耗工程

要让 TRAVEO T2G 真正跑起来,第一步不是写代码,而是把工具链、板级支持包和调试通道一次性理顺。本节以 ModusToolbox 为主线,完成从安装到串口打印的完整闭环:安装 ModusToolbox、选择 TRAVEO T2G BSP、创建工程、编译下载、配置调试串口。整个过程围绕一个核心目标——让开发板在低功耗模式下仍能通过串口输出可观察的信息。

3.1 安装 ModusToolbox

ModusToolbox 是英飞凌主推的跨平台开发套件,包含 Eclipse IDE、命令行工具、设备配置器(Device Configurator)、库管理器(Library Manager)以及 GCC 编译工具链。安装时建议选择 ModusToolbox Setup 统一安装器,它会自动拉取 IDE、工具链和必要的补丁包。

安装路径不要包含中文或空格,例如使用 C:\Infineon\Tools\ModusToolbox。安装完成后,首次启动会提示选择工作区(Workspace),建议单独建一个目录,如 D:\mtb_workspace。随后在 Preferences → ModusToolbox 中确认工具链路径已自动识别,若未识别,手动指向 tools_3.x/gcc 目录。

若公司网络受限,可提前下载离线包(Offline Installer),并在安装器中勾选“仅使用本地包”,避免在线拉取超时。

3.2 选择 TRAVEO T2G BSP

BSP(Board Support Package)是连接芯片外设与上层代码的桥梁。TRAVEO T2G 系列包含 CYT2、CYT3、CYT4 等多个子系列,每个子系列又有不同的封装和引脚复用。选择 BSP 时,必须与手头开发板型号严格对应。

在 ModusToolbox 中,通过 Library Manager 或 Project Creator 选择 BSP。以常见的 CYT2B7 为例,BSP 名称通常形如 TARGET_CYT2B7-xxx。选择后,工具会自动生成 cybsp.c、cybsp.h 以及对应的链接脚本和启动文件。若开发板为自定义板,则需基于官方 BSP 复制一份并修改引脚定义。

BSP 选择错误会导致时钟初始化失败、串口无输出甚至无法下载。判断方法:编译后查看 cybsp.h 中的 CYBSP_DEBUG_UART_TX_PIN 等宏是否与实际板卡丝印一致。

3.3 创建第一个低功耗工程

在 Project Creator 中选择 Empty Application 或 Hello World 模板,指定 BSP 后生成工程。工程结构大致如下:

MyFirstLowPower/
├── main.c
├── cybsp.c / cybsp.h
├── Makefile
├── deps/
│   └── mtb_shared/
└── libs/
    └── retarget_io/

低功耗工程的关键在于:初始化后不要停留在死循环里空转,而是进入 Cy_SysPm_DeepSleep() 或 Cy_SysPm_Hibernate()。以下是一个最小示例,使用 Retarget I/O 将 printf 重定向到调试串口:

#include "cybsp.h"
#include "cy_pdl.h"
#include "cy_retarget_io.h"

int main(void)
{
    cy_rslt_t result;
    result = cybsp_init();
    if (result != CY_RSLT_SUCCESS) { CY_ASSERT(0); }

    cy_retarget_io_init(CYBSP_DEBUG_UART_TX,
                        CYBSP_DEBUG_UART_RX,
                        CY_RETARGET_IO_BAUDRATE);

    printf("TRAVEO T2G low-power demo start\r\n");

    for (;;)
    {
        printf("Enter DeepSleep...\r\n");
        Cy_SysPm_DeepSleep(CY_SYSPM_WAIT_FOR_INTERRUPT);
        printf("Wakeup!\r\n");
    }
}

注意:进入 DeepSleep 前必须确保没有未处理的中断挂起,否则会立即唤醒。示例中 CY_SYSPM_WAIT_FOR_INTERRUPT 表示等待中断唤醒,适合按键或 RTC 周期唤醒场景。

3.4 编译、下载与调试串口配置

编译使用 make 或 IDE 的 Build 按钮。若使用命令行,在工程根目录执行:

make build
make program

下载依赖 KitProg3 或 J-Link。TRAVEO T2G 开发板通常板载 KitProg3,通过 USB 连接后,在设备管理器中应出现 KitProg3 USB-UART 和 KitProg3 CMSIS-DAP 两个设备。若未出现,安装 KitProg3 驱动或使用 fw-loader 更新固件。

调试串口配置是本节最容易出问题的环节。默认波特率通常为 115200,数据位 8,无校验,停止位 1。在 PC 端使用串口终端(如 Tera Term、PuTTY 或 VS Code 串口监视器)打开对应 COM 口。若输出乱码,优先检查波特率是否与 CY_RETARGET_IO_BAUDRATE 一致;若无任何输出,检查 TX/RX 是否接反、BSP 中 UART 引脚是否与实际板卡匹配。

进入 DeepSleep 后,调试器可能断开连接,这是正常现象。若需持续调试,可先禁用低功耗模式,或使用 Cy_SysPm_DeepSleep 前设置断点,观察唤醒源。

3.5 低功耗工程的关键观察点

完成上述步骤后,一个可运行的低功耗工程应具备以下特征:上电后串口打印启动信息;进入 DeepSleep 后电流明显下降(可用万用表或功耗分析仪观察,典型值从几十毫安降至微安级);通过按键或 RTC 中断唤醒后继续打印。若电流没有下降,检查是否有外设时钟未关闭、GPIO 未配置为低功耗状态,或调试器仍处于连接状态。

下表汇总了本节涉及的关键配置项与常见问题,便于快速排查:

配置项典型值/操作异常表现排查方向
BSP 选择CYT2B7 对应 TARGET_CYT2B7-xxx编译报错、引脚宏未定义核对开发板丝印与 BSP 名称
调试串口波特率115200乱码检查终端与代码是否一致
TX/RX 引脚CYBSP_DEBUG_UART_TX/RX无输出对照原理图确认复用
DeepSleep 唤醒源按键/RTC 中断无法唤醒或立即唤醒检查中断标志与清除
下载器KitProg3无法识别设备更新固件或换 USB 线
TRAVEO T2G 低功耗工程开发链路 ModusToolbox IDE + GCC + 工具链 Device Configurator TRAVEO T2G BSP CYT2B7 / CYT3 / CYT4 引脚/时钟/启动文件 低功耗工程 DeepSleep / Hibernate Retarget I/O printf 调试串口 115200 8N1 KitProg3 USB-UART 编译 → 下载 → 运行 make build / make program | KitProg3 CMSIS-DAP | 复位后从 BSP 启动 运行状态观察 • 串口打印启动信息 • 进入 DeepSleep 电流下降 • 按键/RTC 唤醒后继续打印 • 调试器可能断开(正常) 常见异常与排查 • 无输出:TX/RX 接反或 BSP 错 • 乱码:波特率不一致 • 无法下载:KitProg3 固件旧 • 电流不降:外设时钟未关 低功耗配置要点 • 未用 GPIO 设为模拟/下拉 • 关闭未用外设时钟 • 唤醒源中断标志需清除 • 调试器连接会抬高功耗