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

【DM642学习笔记三】flash的烧写

发布时间:2020-12-15 17:36:23 所属栏目:百科 来源:网络整理
导读:ICETEK-DM642-PCI板上的29L008B芯片提供了8M位的Flash空间(访问地址空间是CE1,90000000h~90080000h)。主要用于自启动功能和存储FPGA的配置数据。 ? 一、从FLASH自启动过程 : ? ? 系统复位后,DM642将flash空间的 前1k字节 复制到片内0地址开始的存储单元

ICETEK-DM642-PCI板上的29L008B芯片提供了8M位的Flash空间(访问地址空间是CE1,90000000h~90080000h)。主要用于自启动功能和存储FPGA的配置数据。

?一、从FLASH自启动过程

? ?系统复位后,DM642将flash空间的前1k字节复制到片内0地址开始的存储单元,从0地址开始执行。而用户程序往往大于1K字节,所以位于0地址的程序常是一个装载程序(Bootloader),用来完成将应用程序从Flash中读出放到RAM中。因此,在Flash中开始的1k字节存放Bootlader,接着是一个装载表(它指示了随后存放的程序或数据加载到RAM的哪个地址以及加载长度)。随后程序或数据分成多个块存储。如下图:

【DM642】flash的烧写

【DM642】flash的烧写

? ??BootLoader程序开始执行后,首先设置CPU和外设寄存器(如EMIP寄存器),然后读入装载表并装载程序和数据。最后转到被装载的应用程序入口。

二、FPGA的配置

板上的FPGA,完成视频数据的叠加图形输出、指示灯控制等功能。掉电时配置丢失,所以需要特殊的配置数据装载后才能工作。配置数据一般放在Flash中,在系统上电时通过自启动加载(自启动程序中要包含配置FPGA部分,位置在第0页地址0x90040000之后)。为了板子能够正常工作,flash擦除后,要先把FPGA的配置数据写进去,然后再烧自己写的程序,中间不能有flash擦除动作。配置完成后,指示灯DS10亮。

【DM642】flash的烧写

【DM642】flash的烧写

三、Flash的烧写

?

?? FlashBurn烧写工具

???1、Flashburn:TI的第三方软件公司?Software DesignSloutions?TIDSP用户编写的Flash烧写软件,给软件以CCS为基础,通过运行仿真程序FBTC,将用户程序写入Flash中。

? ??2FBTC.out文件:负责对flash的操作,比如flash的擦除、读、写等。DM642开发板使用的FBTC文件在安装ccs的根目录下boards/evmdm642/flashburn/ FBTC642.out。可根据个人板子上flash的型号,因为不同型号的flash,它们的操作命令不一样。这样你就必须对FBTC工程进行修改,然后重新编译生成.out文件。

? ??3hex6x.exe:将project编译成功生成的.out文件转换为.hex文件的工具。

?? ?4.cdd文件:保存Flashburn的设置的。

?? ?5.cmd文件:指明flash属性(大小,数据宽度,起始地址和产生文件名),按照flash要求实现将.out文件到.hex文件的转换。ledprd_ahex.cmd文件内容为:

debugledprd.out

-a

-memwidth ?8

-boot

-bootorg 0x90000400

-bootsection .boot_load0x90000000

ROMS

{

? ? FLASH:?org = 0x90000000,len = 0x80000,romwidth = 8,files = {ledprd.hex}

}

其中,ledprd.out即project编译成功生成的.out文件;ledprd.hex即为要得到的.hex文件。

? ? ? 6、out2hex.bat批处理文件:使用hex6x.exe,按照ledprd_ahex.cmd生成.hex文件。out2hex.bat文件内容如下:
hex6x ledprd_ahex.cmd??
@pause
:实现Bootloader自引导功能,除了需要生成可执行文件(.out),还需要进行如下步骤:
1、合理配置工程文件(.pjt):
需要添加一个boot.asm文件(这是一个标准的BootLoader程序, 做搬移时一些初始化和跳转工作,用户 可直接使用它完成程序的装载和运行,注意:它的代码属于“.boot_load”段);
工程中 .cmd 文件也需要为 bootloader 保留空间。具体操作: 修改.cmd文件中的MEMORYSECTION部分.(/修改BIOS配置文件:在MEN中创建名为BOOT的段,0地址开始,长度1k。并把已存在的内存段(如ISRAM)后移1k。)
?? ? led.cmd文件内容如下:
-lledcfg.cmd ? ? ?? ? //?-包含原有的cmd文件,
SECTIONS ? ?? ? ?? ? ?// 并把 .boot_load段代码映射到BOOT内存去。
{
.boot_load?> ?BOOT
}??
2、将添加了boot.asm和修改cmd后重新生成的.out文件,转化为.hex文件。这时需要一个.cmd文件(ledprd_ahex.cmd)。 注意:它 与工程文件中 不同, 不能混淆

3、最后通过Flashburn工具将.hex文件写入Flash,这时需要转换.cmd文件、.hex文件和FBTC642.out文件。


2012.12.22

eagle

(编辑:李大同)

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

    推荐文章
      热点阅读