DSP程序的烧写原理概括来说,就是:当上电复位以后,CPU首先抽取Flash存储区的前1KB大小的程序,加载至L2(address=0处),该程序就是所谓的导引程序(boot程序)。传输完毕以后,CPU退出复位状态,开始执行address=0处的代码指令,即抽取flash中的代码到相应的执行区域(runaddress)运行。
一.使用Flashburn烧写插件进行固化
先对对几个文件进行说明:
1.boot程序:该程序必须用汇编语言书写,因为CPU在运行该指令代码时,还未跳转到c_int00处,C语言环境尚未被激活。若使用flashburn,则boot程序中所需要做的工作就是对EMIFA进行初始化。这里,我们只需使用SEEDVPM642所提供的例程里的boot.asm即可,无需做修改;
2.FBTC文件:该文件是烧写的核心,简而言之,该文件的作用就是将PC中的.out文件加载到flash的相应存储区段。不同的flash应该对应不同的FBTC.out。经分析,FBTC文件需要针对flash型号做出以下几点修改:
(1)flash的大小,基地址,以及如何分扇区(sector);
(2)在erase和burn程序中,flash存储单元中应该写入的控制字;
但是,如果程序的大小小于一页大小,那就不需要修改FBTC了,因为涉及不到(1)中的内容。
下面归纳烧写步骤:
1. 对原工程进行编译,调试,确保源程序能够达到正确的效果;
2. 在原工程中添加boot.asm,并在cmd中,为.boot_load分配0x0-0x400这一空间;
3. 再次编译,生成custom.out文件;
4. 编写custom_ahex.cmd文件(该文件参考例程,只需要修改custom.out文件的名字,以及flash大小);
5. 编写out2hex.bat文件:
hex6x custom_ahex.cmd
@pause
6. 将out2hex.bat,custom_ahex.cmd,hex6x.exe放在工程目录下,双击out2hex.bat,在DOS环境中执行hex6x.exe,生成16进制文件.hex;
7. 在CCS中打开flashburn,加载custom_ahex.cmd,.hex,FBTC.out三个文件;
8. 运行Erase Flash,Program Flash,完成烧写工作。
二.使用SEEDVPM642提供的特定烧写工具SeedConvertTool:
1.build原程序,生成.out文件(设为custom.out);
2.利用SeedConverTool.exe软件,将custom.out转换成二进制文件custom.dat;
3.打开CCS3.3,File->Load Program,将DM642_Appboot.out文件烧进芯片;
4.File->Data->Load,将custom.out文件烧进芯片;
5.断开CCS,拔电源,拔仿真器。