加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 18:42:25 所属栏目:百科 来源:网络整理
导读:首先介绍一下FlashBurn软件,它是TI的第三方软件公司为TI的DSP编写的Flash烧写软件,和CCS软件配合使用,通过DSP内部运行的FBTC实现Flash的读写和擦除。 ? ? ? ? ? ? 在这里很有必要说一下DM6437从外部Flash启动的整个过程。首先,当系统加电或复位之后,DSP

首先介绍一下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内核的启动。

?????? 然后说一下FlashBurn的工作过程:软件打开之后,链接CCS,进而连接到目标板上,实现软件和目标板的通信。然后下载FBTC到目标板上,在这里,FlashBurn软件和FBTC程序就相当于一个上位机软件和下位机软件的关系,软件和FBTC进行命令交互,完成如下几个功能:Flash读、写、擦除。如下图所示:

????? 在工程中,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文件的参数文件

?????? 其内容为:

??????? video_black_white.out???????????????//将要转换的文件名
?????? -a??????????????????????????????????????????????//生成的文件格式ASCII-Hex
?????? -map video_black_white.map??? //生成hex文件的map文件
?????? -memwidth? 8????????????????????????????//Flash存储器的宽度
?????? -boot???????????????????????????????????????? //生成引导程序表
???? ??ROMS
???? ? {
???? ? FLASH: org = 42004000h,????????? //二次引导的Flash地址

???? ??len = 02000000h,????????????????????? //Flash的最大容量(长度)

???? ? romwidth = 8,?????????????????????????? //Flash位宽

???? ? files =??{video_black_white.hex}//将要生成的hex文件的文件名
????? ?}

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

???????

??? 由于引导程序的搬运起始地址设置的是0x42004000,所以我们的二次引导地址就设置成了0x42004000,其偏移量为4000H = 16KB > 1KB,是可以接受的。

????? 接下来就可以向目标板上烧写hex文件了,首先应擦除Flash,接着需要烧写两个hex文件,一个是引导程序的hex文件,另外一个是目标程序的hex文件,烧写完成之后重写启动就可以了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读