AWR1843 CCS开发模式:从工程导入到算法调试全流程解析
1. 环境准备与软件安装
第一次接触AWR1843开发板时,最让人头疼的就是那一长串需要安装的软件列表。记得我刚开始调试时,光是找齐所有安装包就花了整整两天时间。为了让各位少走弯路,我把这些年的踩坑经验都总结在这里。
硬件清单很简单:AWR1843BOOST开发板、一根质量可靠的micro USB线(建议用原厂线避免连接问题)、5V/2.5A电源适配器(电流不足会导致板子反复重启)。重点要说的是软件环境,这里有个小技巧:所有TI的软件最好都安装在同一父目录下,比如"D:\TI",这样后续路径配置会轻松很多。
必须安装的六大软件包括:
- mmWave Automotive Toolbox(最新版是3.5.0)
- MATLAB Runtime(注意版本要与Automotive Toolbox匹配)
- mmWave SDK(建议3.1.0以上版本)
- XDS Emulators Software Package
- UniFlash(烧录工具)
- Code Composer Studio(简称CCS,推荐10.4.0版本)
安装CCS时有三个关键细节:
- 安装路径绝对不能有中文或空格,我习惯放在"D:\TI\CCS"这样的路径
- 遇到杀毒软件拦截时,建议临时关闭实时防护(安装完再开启)
- 组件选择界面直接选"Full installation",虽然会多装些不用的驱动,但能避免后续缺少组件的麻烦
提示:所有TI软件的下载页面都很隐蔽,建议直接搜索"TI [软件名] download",比如"TI mmWave SDK download"就能快速找到官方下载链接。
2. 工程导入与路径配置
拿到官方示例工程后,很多新手会直接点击"Import"就以为万事大吉,结果马上会遇到各种编译错误。这里有个真实案例:上周团队新来的工程师导入工程后,连续报了17个错误,急得差点重装系统。其实问题很简单——路径没配置对。
正确的工程导入流程应该是:
- 在CCS中选择File → Import → CCS Projects
- 浏览到Automotive Toolbox的lab目录(例如:mmwave_automotive_toolbox_3_5_0\labs\lab0008_automated_parking\src)
- 勾选pa_18xx_dss和pa_18xx_mss两个项目(注意不要选错)
导入成功后,80%的编译错误都源于路径配置。需要重点修改两个地方:
- DSS项目的Include路径(C6000 Compiler → Include Options)
- 链接库路径(C6000 Linker → File Search Path)
我习惯用相对路径代替绝对路径,这样工程迁移到其他电脑时不会报错。具体操作是在路径变量前加"${}",比如把"D:/TI/mmwave_sdk_03_01_00_02"改成"${MMWAVE_SDK_INSTALL_PATH}"。这个环境变量可以在CCS的Preferences → Code Composer Studio → Build → Environment里设置。
3. 编译与常见错误处理
编译环节是最容易卡住新手的"魔鬼关卡"。有一次我凌晨三点调试时,遇到一个诡异的错误:"undefined symbol: _c_int00",查遍全网都没解决方案。后来发现只是漏装了一个补丁包。这里把常见错误和解决方法列出来:
错误1:Product SYS/BIOS not installed
- 现象:点击Finish后弹出版本不兼容提示
- 解决:到TI官网下载对应版本的SYS/BIOS包,安装后重启CCS
错误2:File could not be opened
- 现象:编译时报找不到头文件
- 解决:检查Include路径是否有空格或中文,确保路径完全匹配
错误3:Linker error
- 现象:提示undefined reference
- 解决:确认File Search Path中的.lib文件路径正确
编译顺序也很关键:必须先编译DSS项目,再编译MSS项目。编译成功后,在Debug目录下会生成两个重要文件:
- pa_18xx_mss.xer4f(MSS核心的可执行文件)
- pa_18xx_dss.xe674(DSP核心的可执行文件)
注意:如果修改了算法代码,一定要Clean Project后再Rebuild,否则可能遇到莫名其妙的运行错误。
4. 烧录与硬件连接
烧录环节最让人紧张的就是SOP模式设置。有次我在客户现场演示,因为SOP跳线帽接触不良,折腾了两小时都没烧录成功。后来发现是跳线帽氧化导致的接触不良,用酒精擦拭后就解决了。
完整的烧录流程如下:
- 设置SOP模式为101(SOP0=ON, SOP1=OFF, SOP2=ON)
- 连接开发板USB接口
- 打开UniFlash软件自动检测设备
- 在Program页面选择xwr18xx_ccsdebug.bin文件(路径:mmwave_sdk_03_01_00_02\packages\ti\utils\ccsdebug)
- 点击Load Image等待烧录完成
烧录成功后,一定要记得切换SOP模式到001(CCS调试模式),否则无法连接调试器。这里有个小技巧:可以用万用表测量SOP引脚电压确认当前模式:
- SOP0=3.3V, SOP1=0V, SOP2=0V 对应001模式
- SOP0=3.3V, SOP1=0V, SOP2=3.3V 对应101模式
5. CCS调试实战技巧
真正的挑战现在才开始。连接调试器时,最常遇到的问题是"Error connecting to the target"。根据我的经验,90%的情况都是以下原因:
- 没切换SOP模式(必须001模式)
- 没安装XDS驱动(设备管理器里查看)
- USB线接触不良(换根线试试)
创建ccxml文件时,关键是要选对调试探头类型。AWR1843开发板内置的是XDS110调试器,所以在Connection里要选择"Texas Instruments XDS110 USB Debug Probe"。Board or Device则选择"AWR1843"。
加载程序时有几个易错点:
- 必须先连接Cortex_R4_0(MSS核心),再连接C674x_0(DSP核心)
- 加载文件时,MSS核心选.xer4f文件,DSP核心选.xe674文件
- 运行顺序要反过来:先运行DSP核心,再运行MSS核心
调试毫米波算法时,我习惯用CCS的Graph工具实时查看FFT结果。设置方法是在Tools → Graph → Dual Time设置采样参数,比如:
- Start Address: 0x80000000
- Acquisition Buffer Size: 1024
- Display Data Size: 512
- DSP Data Type: 32-bit floating point
6. 算法调试与性能优化
当工程能正常运行后,就可以开始魔改算法了。以常见的CFAR检测算法为例,在mmwave_sdk的目录下可以找到dss_data_path.c文件,里面包含了雷达信号处理的核心代码。
修改算法时要注意:
- 修改DSP核心代码后,必须重新编译DSS项目
- 算法参数调整建议通过RPC调用实现,避免频繁烧录
- 关键变量可以添加到Watch窗口实时监控
性能优化方面,有三个实用技巧:
- 使用CCS的Profile工具分析函数耗时
- 对DSP核心代码使用#pragma MUST_ITERATE优化循环
- 关键算法用线性汇编重写(仅建议高手尝试)
记得有次优化FFT运算,通过调整内存对齐方式,直接将性能提升了30%。具体做法是在定义数组时添加__align(128)修饰符,确保数据地址128字节对齐。
7. 上位机联调与数据可视化
当算法调试得差不多时,就需要用上位机验证实际效果。Automotive Toolbox自带的上位机park_assist_visualizer.exe虽然界面简陋,但非常实用。连接时要注意:
- 在设备管理器里确认UART和DATA端口号
- 上位机里的COM Ports要填对(通常是两个连续端口号)
- 点击Connect后,状态栏应显示"Ports connected"
如果遇到上位机卡死的情况,可以尝试:
- 关闭防火墙临时测试
- 降低雷达帧率(修改chirp配置)
- 更新串口驱动
对于需要自定义数据可视化的开发者,我建议用Python开发简单上位机。通过pySerial读取串口数据,再用matplotlib实时绘制点云。这样调试算法效率会高很多。
