第2章:开发环境搭建——AURIX Development Studio 安装、配置与第一个工程

好,咱们直接进入正题。

做嵌入式开发,尤其是玩 TC3xx 这种多核芯片,开发环境就是你的武器。武器不称手,后面全是坑。我个人习惯是,拿到新板子第一件事,先把环境捋顺了,再谈别的。

这一章,我带你把 AURIX Development Studio(简称 ADS)装好、配好,然后跑起第一个工程。嗯,咱们不搞虚的,直接上手。

2.1 为什么选 ADS?

你可能听说过 Tasking、HighTec、Green Hills 这些编译器。它们都很强,但有个共同点——贵。而且配置起来,说实话,有点折腾。

ADS 是英飞凌官方基于 Eclipse 打造的免费 IDE。说白了,它把编译器、调试器、例程库全打包好了。你装一个,就全有了。我在项目初期做方案验证时,经常用 ADS 快速搭原型,等方案定了再切到商业编译器做量产优化。

所以,学习阶段,ADS 是最省心的选择。

2.2 下载与安装

先讲下载。去英飞凌官网搜 "AURIX Development Studio",找到对应版本。注意,ADS 目前主要支持 Windows,Linux 用户得用命令行工具链,咱们这里以 Windows 为例。

下载下来是一个 .exe 文件,大概 1GB 左右。安装过程很简单,一路 Next 就行。但有几点我提醒你注意:

⚠️ 安装避坑指南
  • 路径不要有中文:我曾经有个同事,装在了 "D:\开发工具\ADS" 下,结果编译时各种莫名其妙报错。Eclipse 对中文路径支持很差,老老实实用英文路径。
  • 关闭杀毒软件:安装过程中会写注册表、装驱动,杀毒软件可能会拦截。我建议装完再开。
  • 安装路径不要有空格:比如 "Program Files (x86)" 这种,虽然大部分情况没问题,但个别脚本会解析出错。我习惯放 "C:\Infineon\ADS"。

安装完成后,桌面会有两个图标:一个是 ADS IDE,另一个是 ADS Command Prompt(命令行工具)。咱们先打开 IDE。

2.3 工作空间配置

第一次打开 ADS,会弹窗让你选工作空间(Workspace)。工作空间就是存放你工程的地方。我建议单独建一个文件夹,比如 "D:\TC3xx_Workspace"。别放桌面,别放 C 盘,这是基本素养。

选好后,点击 Launch,进入主界面。嗯,Eclipse 风格,熟悉的味道。

2.4 导入第一个例程

ADS 自带了很多官方例程,涵盖 GPIO、PWM、ADC、CAN 等等。咱们先拿一个最简单的 "GPIO_Toggle" 来试试水。

操作步骤:

  1. 点击菜单栏 File → Import
  2. 选择 Infineon → AURIX Development Studio Project
  3. 点击 Next,会看到一长串例程列表
  4. 在搜索框输入 "GPIO_Toggle",找到它
  5. 选中,点击 Finish

导入完成后,左侧 Project Explorer 里就会出现这个工程。展开看看,结构很清晰:

  • 0_Src:用户代码目录,你的 main.c 就在这
  • Libraries:iLLD 底层驱动库,别乱改
  • Config:芯片配置,比如时钟、中断向量表
💡 我的小习惯

每次导入新工程,我会先看一眼 Config → Ifx_Cfg.h。这里面定义了模块的开关,比如你用不到 CAN,就可以把它关掉,编译会快很多。

2.5 编译与下载

工程导入完了,咱们编译一下。点击工具栏上的锤子图标(Build),或者按 Ctrl+B。

第一次编译会慢一些,因为要生成依赖。看到控制台输出 "Build Finished" 且没有错误,就说明成功了。

接下来是下载。你需要一块 TC3xx 开发板,比如 TC375 Lite Kit 或者 TC397 评估板。用 USB 线连上电脑,安装好驱动(ADS 安装时已经带了)。

点击工具栏上的绿色虫子图标(Debug),或者按 F11。ADS 会自动识别调试器,弹窗让你确认配置。直接点 OK。

程序下载到 Flash 后,会自动停在 main() 函数入口。这时候你可以按 F8(Resume)让它全速运行。如果板子上有 LED,你应该能看到它在闪烁。

🔴 常见问题:找不到调试器

如果你点击 Debug 后报错 "No debug probe found",别慌。先检查 USB 线是不是数据线(有些充电线不能用)。然后打开设备管理器,看看有没有 "Infineon DAS" 相关的设备。如果没有,手动安装驱动:在 ADS 安装目录下找 driver 文件夹,运行 das_drv_install.bat

我曾经被这个问题卡了半小时,最后发现是 USB 线的问题。嗯,从那以后我桌上常备一根标注了 "数据线" 的线。

2.6 工程结构解析

咱们简单看看这个 GPIO_Toggle 工程里,代码是怎么组织的。打开 main.c,核心代码其实就几行:

#include "Ifx_Types.h"
#include "IfxCpu.h"
#include "IfxScuWdt.h"
#include "IfxPort.h"

#define LED_PIN    &MODULE_P00, 5   // 假设 LED 接在 P00.5

void initLED(void)
{
    IfxPort_setPinMode(LED_PIN, IfxPort_Mode_outputPushPullGeneral);
}

void toggleLED(void)
{
    IfxPort_togglePin(LED_PIN);
}

int core0_main(void)
{
    // 关闭看门狗
    IfxScuWdt_disableCpuWatchdog(IfxScuWdt_getCpuWatchdogPassword());
    IfxScuWdt_disableSafetyWatchdog(IfxScuWdt_getSafetyWatchdogPassword());

    initLED();

    while(1)
    {
        toggleLED();
        // 简单延时
        for(uint32 i = 0; i < 1000000; i++);
    }
    return 0;
}

你看,结构很清晰:

  • 先关看门狗(这是 TC3xx 上电后的标准操作,不然它会不断复位)
  • 初始化 GPIO 为推挽输出
  • 主循环里翻转电平,加个软件延时

这就是一个最简的嵌入式程序骨架。后面咱们做 PWM 控制电机,也是在这个基础上加东西。

2.7 调试技巧

ADS 的调试功能很强大。我常用的几个:

  • 断点:双击行号就能加断点。注意,TC3xx 硬件断点有限(一般 4 个),别加太多。
  • 变量监视:在调试视角下,右键变量 → Add Watch Expression,就能实时看值。
  • 寄存器查看:打开 Peripherals 视图,可以直接看某个外设寄存器的值。调试 PWM 时这个特别有用。
💡 调试小技巧

如果你发现程序跑飞了,先别急着怀疑代码。点一下暂停按钮,看看 PC(程序计数器)停在哪里。如果停在某个外设寄存器地址附近,多半是配置错了。如果停在 0x80000000 之类的地址,可能是中断向量表没配好。

2.8 小结

到这,你的开发环境就搭好了。第一个工程也跑起来了。你想想看,其实没那么复杂,对吧?

下一章,咱们开始真正接触 PWM。我会带你配置 TC3xx 的 GTM(通用定时器模块),生成一路可调占空比的 PWM 信号。嗯,那才是电机控制的起点。

记住,环境只是工具,后面的实战才是硬功夫。有问题随时翻翻 ADS 自带的例程,那是最好的学习资料。


公众号:蓝海资料掘金营,微信deep3321