拿到TMS570开发板的第一件事,就是检查配件是否齐全。我用的这块LAUNCHXL2-570LC43开发板,拆开包装后建议先核对这几个关键部件:开发板本体、USB Type-A转Micro-B数据线(注意不是普通充电线)、以及配套的快速入门指南。这块板子最让我惊喜的是所有MCU引脚都通过高密度连接器引出,这意味着后期做扩展实验会非常方便。
开发板上有几个关键区域需要特别注意:右上角的XDS110调试接口(用USB线连接电脑就是通过这个接口)、左下角两颗可编程按钮(后续做中断实验会用到)、以及板载的LED阵列。LED2的位置特别容易搞错——它其实藏在以太网接口旁边,是个绿色LED,对应原理图中的PB6引脚。第一次使用时建议用手机拍下板子正反面照片,方便随时对照元件位置。
关于供电方式,实测发现虽然USB供电足够驱动基础实验,但在连接多个外设时会出现电压不稳。我的经验是:调试LED这类简单外设可以用USB供电,但涉及到电机控制等大电流场景时,务必使用板载的5V DC接口接外部电源。有个小技巧是用万用表测量调试接口旁边的测试点TP1(3.3V)和TP2(5V),确保供电正常再上电。
下载HALCoGen时有个大坑:TI官网会同时提供4.x和3.x两个版本。经过实测,TMS570LC43x系列必须用HALCoGen 04.07.01这个特定版本(下载页面里标注为"Legacy HALCoGen"),新版反而会导致代码生成异常。安装时记得关闭杀毒软件,否则可能拦截关键的注册表写入操作。
安装完成后第一次运行时,会遇到Java环境报错。这是因为HALCoGen自带的是32位JRE,而大多数人的系统是64位的。解决办法很简单:到Oracle官网下载32位Java 8运行时,手动指定JRE路径到安装目录下的jre文件夹。我在Windows 11上测试时还遇到了DPI缩放导致的界面模糊问题,右键属性里勾选"替代高DPI缩放行为"就能解决。
Code Composer Studio的在线安装器默认会下载所有MCU支持包,这要占用20GB+空间。对于TMS570开发,其实只需要勾选这三个组件:
有个省时间的技巧:先用TI的离线包下载器获取基础安装包,再通过CCS的App Center单独添加TMS570支持。这样不仅能节省带宽,还能避免安装过程中断导致重头再来。安装路径强烈建议用全英文目录,我曾在路径包含中文时遇到过工程文件乱码的诡异问题。
第一次启动CCS时,会提示选择工作空间(workspace)。这里有个细节:工作空间路径不要包含空格和特殊字符,否则后续HALCoGen生成的代码导入时会报路径错误。我习惯在D盘根目录创建CCS_Workspace文件夹专门存放工程。
在CCS中新建工程时,这几个选项最容易出错:
工程创建完成后,立即设置两个重要属性:在工程属性→Build→ARM Compiler→Include Options里,添加${CG_TOOL_ROOT}/include路径;在Debug配置里勾选"Skip loading symbols",可以显著加快下载速度。
启动HALCoGen新建工程时,芯片型号选择TMS570LC4357,这个型号和开发板上的实际芯片完全匹配。工程保存路径要特别注意:必须选择CCS工程目录下的source文件夹,而不是工作空间或工程根目录。我见过太多人因为路径错误导致生成的代码无法被CCS识别。
在Driver Enable标签页,初学者常犯的错误是启用太多驱动。实际上LED实验只需要开启最基础的GIO驱动,其他如EMAC、MMC等驱动不仅用不上,还会占用宝贵的Flash空间。具体操作是:先点击"Disable All",再单独勾选"Enable GIO Driver"。
来到关键的GIO配置页,PortB的Bit6对应开发板LED2。这里有个隐藏知识点:TMS570的GPIO输出模式有"Output"和"Output with Open Drain"两种。对于LED驱动必须选普通Output模式,开漏输出会导致LED亮度异常。配置完成后按F7生成代码,记得检查控制台是否有红色错误提示。
在生成的HL_sys_main.c文件中,所有用户代码必须严格写在USER CODE BEGIN/END注释块之间,否则下次生成代码时会被覆盖。我建议在BEGIN(1)块添加头文件包含:
c复制/* USER CODE BEGIN (1) */
#include "HL_gio.h"
#define LED_DELAY 3000000
/* USER CODE END */
主循环的LED闪烁逻辑要注意三点:
gioInit()必须放在while(1)之前,且不能重复调用gioToggleBit()的第二个参数要用预定义的gioPORTB常量,直接写数字6会编译失败完整的主函数代码应该是这样:
c复制int main(void)
{
/* USER CODE BEGIN (3) */
gioInit();
while(1) {
gioToggleBit(gioPORTB, 6);
for(volatile int i=0; i<LED_DELAY; i++);
}
/* USER CODE END */
return 0;
}
第一次下载程序时,可能会遇到XDS110调试器固件过期的警告。这时要按照CCS提示更新固件,注意更新过程中不要断开USB连接。如果下载失败,尝试以下步骤:
调试时如果LED完全不亮,先检查三个地方:
对于闪烁频率异常的情况,可以启用CCS的时钟分析功能:在Debug视图右键工程→RTOS Analysis→Enable Clock Analysis,这样就能直观看到主循环的实际执行周期。