详解FlashBurn的hex文件烧写,dm6437平台

2019-07-23 15:33发布

首先介绍一下FlashBurn软件,它是TI的第三方软件公司为TI的DSP编写的Flash烧写软件,和CCS软件配合使用,通过DSP内部运行的FBTC实现Flash的读写和擦除。       在这里很有必要说一下DM6437从外部Flash启动的整个过程。首先,当系统加电或复位之后,DSP内核被锁住,暂停工作,EDMA自动的从外部Flash的首地址(基地址)搬运1KB的内容到内部cache的首地址,搬运完成之后,启动DSP内核,CPU运行这1KB的程序,这个程序的作用相当于一个bootloader的作用,完成二次启动,从外部Flash预先设定好的地址开始将真正要运行的程序搬运至DSP的cache中,搬运完毕后,运行_c_int00,进入到真正程序运行。这样就实现了DSP内核的启动。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
白丁野老
1楼-- · 2019-07-23 19:24
然后说一下FlashBurn的工作过程:软件打开之后,链接CCS,进而连接到目标板上,实现软件和目标板的通信。然后下载FBTC到目标板上,在这里,FlashBurn软件和FBTC程序就相当于一个上位机软件和下位机软件的关系,软件和FBTC进行命令交互,完成如下几个功能:Flash读、写、擦除。如下图所示:
QQ图片20150529213401.png
白丁野老
2楼-- · 2019-07-24 00:55
在工程中,CCS自动生成的是.out文件,而FlashBurn软件要求的是.hex文件,所以我们还要将目标out文件转换成hex文件,需要用的工具叫做hex6x.exe(CCS自带的有,具体目录在C:/CCStudio_v3.3/C6000/cgtools/bin),它的具体使用命令为(DOS环境):

       hex6x.exe OutToHexConvertParams.cmd

       其中OutToHexConvertParams.cmd是hex6x.exe实现将out文件转换成hex文件的参数文件
白丁野老
3楼-- · 2019-07-24 05:18
 精彩回答 2  元偷偷看……
白丁野老
4楼-- · 2019-07-24 06:41
在整个环节中,有两个个概念需要澄清,即Flash的基地址和二次搬移(引导地址),以及这两个地址是如何确定的:Flash的基地址就是你的目标板上Flash的物理地址,确定方法:由开发板的连接图可知,Flash被连接到CS2上,看其芯片资料可知CS2的物理地址范围为0x42000000到0x42FFFFFF,共16M的范围,所以Flash的基地址为0x42000000;而二次引导地址怎么确定呢,即从哪个地址开始引导的问题,前面提到DSP内核上电之后EDMA自动将低1KB的内容加载到cache中,所以这个地址的偏移地址最好要大于1KB(实际上只要大于开始引导程序的长度就可以,但是为了保险起见,一般都设置的大于1KB),在上面的cmd参数文件中,我们设定的二次引导地址为0x4200400h,为什么要设定成这个地址呢?这就牵涉到DSP引导程序中的Flash的二次搬运地址是如何设定的,这两个值一定要对应起来,也就是说,只有你引导程序是从hex文件烧写的起始地址开始搬运的,才能保证程序内容不会“丢失”。查看引导代码

      
白丁野老
5楼-- · 2019-07-24 06:58
由于引导程序的搬运起始地址设置的是0x42004000,所以我们的二次引导地址就设置成了0x42004000,其偏移量为4000H = 16KB > 1KB ,是可以接受的。

      接下来就可以向目标板上烧写hex文件了,首先应擦除Flash,接着需要烧写两个hex文件,一个是引导程序的hex文件,另外一个是目标程序的hex文件,烧写完成之后重写启动就可以了。
天灵灵地灵灵
6楼-- · 2019-07-24 12:11
,这个程序的作用相当于一个bootloader的作用,完成二次启动,从外部Flash预先设定好的地址开始将真正要运行的程序搬运至DSP的cache中,我懂了。

一周热门 更多>