背景
现在已经越来越多的工程师在使用代码生成技术来开展嵌入式项目,而Matlab/Simulink对C2000系列芯片的支持包用起来也越来越顺手。但Simulink好像暂时只能生成.out和.hex文件,不能直接生成.bin文件,因此本文将介绍如何在不打开CCS软件的情况下将.out文件转换成.bin文件。
问题描述
虽然可以在Simulink生成CCS工程后在CCS中打开工程,然后再使用CCS重新编译生成.bin,但这样做一是比较麻烦,二是不能体现代码生成的优势。因此在使用CCS12.2为C2000(DSP28335)生成.bin文件和.hex文件的基础上发现了本文中的方法。
解决方案
其实使用CCS安装包目录下的几个文件和工具就可以直接实现.out转.bin,具体看下图:
具体说明
截图中的后四个文件就是CCS安装目录下文件,具体在哪请跳转到 使用CCS12.2为C2000(DSP28335)生成.bin文件和.hex文件;Command.cmd文件是需要自己编写的,Flash_API_Demo.out就是Simulink生成的.out文件,Flash_API_Demo.bin就是最后生成的.bin文件;
最关键的就是Command.cmd文件(这个文件名可以随便取,但后缀得是.cmd)中的命令,例子中的命令如下:tiobj2bin "Flash_API_Demo.out" "Flash_API_Demo.bin" ofd2000 hex2000 mkhex4bin
,在复制这个命令时没有打引号的部分可以直接复制,"XXX.out"替换成文件夹中的.out文件,也就是MBD生成的.out文件;"XXX.bin"文件的名字可以自己取,但后缀得是.bin;
一切准备就绪后双击.cmd文件,就会发现文件夹中多出来一个XXX.bin文件。
注意事项
- 本文例子中的CCS版本为12.2,针对的芯片是C2000系列的DSP28335;
- 一定要把用到的工具和Simulink生成的.out放到同一个文件夹,并且最好看看具体说明中关于.cmd的说明;
- 例子中.out文件是通过CCS编译生成的,不是在Simulink中生成的,因为笔者正在学习MBD技术中,还没有一个完整的工程来做验证。