在LinuX环境下配置TI毫米波雷达开发环境
从Debian到Ubuntu
本来已经在Debian下工作得不错,不过最近因为要学习ROS,居然把用了十多年的Debian给换成了Ubuntu。。。。。
虽然是大厂出品,但其中还有一些小坑。
只好再次重新安装配置一次,权当记录。
目前的版本是Ubuntu 20.04(focal)
下载
从官网获取:
- CCS10.0.0.00010_linux-x64.tar.gz
- mmwave_sdk_03_04_00_03-Linux-x86-Install.bin
- uniflash_sl.6.0.0.2710.run
CCS 是TI的IDE,其实就是老派电子厂家最爱用的魔改eclipse……
mmwave_sdk 包含了毫米波雷达内建DSP的工具链、中间件等
uniflash 是TI专门给IWR/AWR系列器件提供的下载程序
安装
CCS10
安装CCS10前,需要首先下载这些包
libc6:i386 libusb-0.1 libgconf libncurses5 libpython2.7 libtinfo5
注意,需要i386版本,因此如果系统原先没有安装过,需要
1 | sudo dpkg --add-architecture i386 |
然后解压CCS10.xxxxxx.tar.gz,运行其中的ccs_setup_10.0.0.00010.run, 弹出安装GUI
一路点击next, 选择安装路径什么的,直到器件选择。
后面再点几次next之后就是自动复制文件的过程。
等着就好。
提示一下,最好设置一个好一点儿代理,国内下载速度,你懂的。。
进入后,可以在[view]->[Resource Explorer]里选择下载对应的Toolbox,包含了更多examples和配置工具。
SDK
不管怎么说,需要感谢TI所做的努力,可以在linux下相对完整得开发毫米波雷达器件。
直接运行mmwave_sdk_03_04_xxxxxxx-Install.bin,弹出GUI安装对话框,选择安装路径,自动解压复制。
完了之后,还需要运行
1 | sudo apt install mono-complete |
为什么需要整套c#环境呢?因为如前文所述, 器件内部有两个可编程逻辑块,需要分别写程序和编译,最后打包成一个bin文件供下载程序下载。
TI的这个打包过程分了至少四步骤,每个步骤都有对应的二进制程序。
TI为几乎每个二进制程序提供了windows的exe, 和Linux的32bit elf, 除了一个例外……
这个例外就是out2rprc程序……
装好mono,就可以了跑了。
UniFlash
UniFlash的安装和使用倒没有什么坑,GUI弹窗安装,GUI使用(也有cli模式)。
不知道为什么,之前在Debian里用总是需要root权限才能正常识别,在Ubuntu里面倒是没有任何问题。。。
编译
命令行式
其实仅仅安装sdk就可以进行开发,ccs只是IDE。
先来看看纯正unix风格的方式。
在SDK的安装目录下,有一个子目录/packages/scripts/unix, 包含一个setenv.sh,source它就可以导入SDK固件需要的各种环境变量。默认使用的器件是xwr68xx, 如果用别的器件需要修改这个文件。
TI只提供了bash的版本,zsh直接导入会报错(不过其实也无关紧要,一样跑)
接着进到SDK自带的demo目录。
dss目录是 DSP核的代码
mss目录是 Cortex R核的代码
看到makefile了嘛!
1 | make -j8 all |
就能得到可以下载的bin文件。
IDE式
如果是GUI环境下的配置, 操作则要复杂一些,还有一些坑。
安装完sdk后, 第一次打开CCS10, 会提示找到新的组件。
从 [Resource Explorer] -> [mmWave Sensors] -> [Industrial Tollbox] -> [Labs] 选择合适的例程,并导入到eclipse环境。
如果使用的是DSP版本, 则需要分别导入DSS项目和MSS项目。
首先编译DSS部分, 应该没有什么问题嗒
然后编译MSS部分, 如果正确配置,一开始也不会有问题,但是在最后会出现一堆乱七八糟的报错。
当时慌得一米 经过一番折腾,发现这是CCS导入工程时的bug,没有针对Linux环境做足够的测试。
f好在修改不难,在项目上右键,选择属性,弹框左侧选择Build, 右边找到Steps, 修改一些细节。。
最后,重新编译,就能得到可以下载的二进制程序。
to be continued..