最近一直在研究DSP在线BootLoader。发现CCS编译生成的.out文件不能直接生成hex文件和bin文件。查来查去了解到可以通过C2000hex工具把.out文件转换为.hex文件,通过hex文件进行BootLoader,但是本人还是觉得hex文件麻烦,因为hex文件是以ASCII的形式表示的代码。还需要算法进行转换。通过尝试和实际操作,发现在仿真应用程序时通过CCS->Tools->SaveMemery可以把当前的flash内容导出存储成文件,这个文件就和bin文件一样了。SaveMemery的配置如下图:
这里还要说一点的是,为了高效率的BootLoader,即不写大片的无用“0xFFFF”,那么就需要在Save Memery 里选择合适的长度,不要把无效的memery读出来。但是如果程序的Begin和程序的地址隔离得很远,例如我自己做实验的规划是BootLoader程序放在0x300000----0x30FFFF,Begin是0x30FFF6;应用程序程序刚在0x310000----0x33FFFF,Begin是0x33FFF6;从仿真来看,我的程序只占了0x310000到0x312c71。如果把Memery从0x310000----0x33FFFF全导出,那么要多写好几倍的无效memery。这个时候就可以选择只导出0x310000到0x312c71的memery,或者稍微大点凑个整数,然后再把Begin的0x33FFF6从新读出来,只写这个地址。
经过实际操作,和文档解析对比,都是没有问题的。