dm642的flash烧写flashburn心得

DM642有多种启动方式:PCIboot, HPI boot, EMIF boot, NO boot;可以设置BOOT开关来设置

而较为复杂的就是EMIF boot, 因此该文将描述如何实现从EMIF的8-bit flash启动。
该话题包含两方面的内容:
1 如何设计应用程序,使其能够从flash启动
2 如何把应用程序烧写到flash里面

 

配置应用程序
DM642如果是配置为从EMIF 8-BIT FLASH启动,当复位后, EDMA控制器自动从CE1位置的FLASH中复制1K字节内容到内部SRAM的0x00000000地址,并开始执行(bootloader)。如果用户的程序是小于1K字节,则这个复制过程是完全可以满足要求的;但是我们的应用程序往往会超过1K字节,此时我们就需要做一个辅助的bootloader(secondary bootloader),放在该1K代码里面,当EDMA把该bootloader复制到0地址并开始执行程序后, 该辅助bootloader开始执行,其把应用程序位于CE1空间的FLASH中拷贝到运行地址(内部SRAM, 或SDRAM),之后跳转到ENTRY POINT(如C代码的c_int00)点开始运行.

 

 

对于一个已经编译好,仿真通过的程序,如果要作为可从flash启动的代码,需要再做下面的工作:


1 添加boot.asm到工程里面(C:/CCStudio_v3.1/boards/evmdm642/flashburn/fpga_loader下);


2 在DSP/BIOS的Memory Section Manager里面,添加一个名为BOOT的section, 位置是0x000,长度为0x400,space设置为data(注意不能设置为code/data)。该section在启动时会被EDMA拷贝的1K代码覆盖,所以不能作为其它用途。

(如果不使用DSP/BIOS就手动在CMD添加BOOT段)并要在CMD中将将boot_load > BOOT中。


3 编译,生成.out格式的COFF文件,然后需要使用hex6x.exe应用程序转换为ascii文件格式,方便使用flashburn来烧flash;
其中hex6x.exe的参数如下
/*
* hex6x command file
* secondary bootloader demo
*/
debug/led.out /*输出的OUT文件,按需要修改*/
-map led_ahex.map /*hex6x产生的map文件名,可以不要该参数*/
-a /*生成ascii格式文件*/
-image /*生成image文件,去掉代码中的不连续部分,可以不要该参数*/
-zero /*将输出的ascii文件的起始地址清0*/
-memwidth 8
-boot /*用来产生copy table参数,详见spra999*/
-bootorg 0x90000400 /*用来产生copy table参数,详见spra999*/
-bootsection .boot_load 0x90000000 /*用来产生copy table参数,详见spra999*/
ROMS
{
FLASH: org = 0x90000000, len = 0x20000, romwidth = 8, files = {led_ahex.hex}
}

 


4 运行hex6x后,生成.hex格式文件,然后及可以用flashburn写flash了
Flashburn的使用
1 把CCS与DSP连接好后,启动flashburn

 

2在file菜单里面新建配置或打开以前的配置文件,Processor Type选择c64x,
FBTC program file 选择C:/CCStudio_v3.1/boards/evmdm642/flashburn/FBTC642/ FBTC642.out(该程序是一个代理程序,需要运行在DSP里面和flashburn通讯, flashburn才能对flash进行操作),然后点击program/download FBTC;该程序会检测flash大小,如果上面的flash大小和检测到的不一致,会弹出对话款提示。


3 把FBTC下载到板子上以后,我们就可以对flash进行擦除(erase flash)、查看(show memory)、编程(program flash)操作, 这些功能在program菜单下。


4 对flash进行编程时,flashburn只支持.hex文件。
在file to burn中选择要烧写的.hex文件,选中verify wirte,然后在program 菜单中点击program flash及可(写flash之前需要对flash进行擦除)。

 

下面是EVMDM642评估板的烧写方法:

 

Flash烧写使用flashburn 工具:

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值