F2812烧写FLASH及其搬移程序(bootloader)方法所需准备“材料”:
1、F2812评估板一套
2、DSP-CCS平台
3、仿真品一套
4、要烧写及搬移的程序
5、TI的烧写插件
6、合众达烧写算法程序
7、自己的搬移程序
bootloader操作步骤
(前提是程序编译通过,并且可以通过仿真器在RAM中运行)
(假设要烧写的程序为app.pjt,烧写算法程序为lash_p.pjt,搬移程序为schlep.c)
1、 将要烧写的app.pjt程序的CMD文件进行改写,保证其程序部分放到一个连续的数据空间中(要将生成的程序块定义到数据空间,下一步的flash_p算法程序对其顺序烧写到指定的FLASH块中)。
2、 编译成功后,对其进行load program ,将其load到指定的RAM中。
3、 打开工程文件flash_p,将算法部分的源程序地址及目标地址进行修改,源程序地址根据app.pjt中CMD文件配置的地址;目标地址即要将程序放置的FLASHF地址;定义的烧写长度一定得不小于所要烧写的程序的长度。(对app.pjt进行编译后,可在生成的app.map文件中查看其程序段的起始地址及长度。)
4、 编译flash_p.pjt文件,编译成功后,对其进行load program,可在程序中校验完成后设置断点(否则程序会进入循环,另:烧写部分有擦除、烧写、校验三个部分),到达断点程序停止运行,如果没有出错的话,这一步已经完成了烧写FLASH的工作。若要查看烧写的情况,可打开汇编窗口(菜单—>windows—>assembly)对源地址(数据空间中)及目标地址(FLASH空间中)进行比对,看其是否一致。
5、 采用TI的烧写插件烧写自己的搬移程序。在自己的搬移程序中要正确写入程序入口地址,即要搬移到RAM中的入口地址,此地址也可在app.map文件中查看到。有个前提条件:即此处搬移的RAM地址要和第一次load app.out的起始地址完全相同,这样才可保证入口地址的一致性。此步骤完成后,可打开汇编窗口观察是否搬运成功。查看0x3f7ff6处,是否是一条跳转指令 LB _c_int00,再察看FLASH中的程序地址处与要搬移至RAM中的程序地址处是否一致。