f2812 c和gel的flash编程

f2812 c和gel的flash编程

ID:15431244

大小:53.50 KB

页数:4页

时间:2018-08-03

f2812 c和gel的flash编程_第1页
f2812 c和gel的flash编程_第2页
f2812 c和gel的flash编程_第3页
f2812 c和gel的flash编程_第4页
资源描述:

《f2812 c和gel的flash编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、在DSP应用系统开发的后期,一般需要将用户程序写进Flash等非易失性存储器,以便采用并行引导的方法实现用户程序的自举加载。这一步骤称 为“烧写”;针对Flash的烧写又称为Flash编程。以往的编程方法大多采用汇编语言编写程序,可读性较差,并将引导表的制作也放在程序中实现;用户 程序一变,烧写程序就得重新编写,不具有通用性。参考文献[1]采用C语言完成Flash读写,较清晰地体现了Flash编程的思想,但是它采用指针访问 Flash空间,不能对高端Flash(64 K字存储空间以外)进行访问,且将引导表作成数组的方法仍显机械。   这里提出的Flash编程方法完全采

2、用C语言编写烧写程序,运用函数地址访问高端Flash,借助数据文件将引导表加载到数据空间。GEL (General Extension Language,通用扩展语言)作为一种程序扩展语言,被广泛用于调试及程序运行环境的定制。这里将GEL语言运用于Flash编程,可以控制C程序在 数据加载完成后执行烧写过程,从而实现大引导表的烧写。1  DSP开发板及Flash存储器  笔者使用的DSP开发板上有1片TMS320VC5402通用DSP芯片、1片SST39VF400A存储芯片(Flash)、键盘和液晶显示 器等。其中Flash容量为256 K字(1字=16位),组织为1

3、28个扇区或8个块。为充分发挥Flash容量大的特点,本系统在硬件上将Flash空间的映射设计为:在上电自举过程 中,Flash空间的0x04000~0x0FFFF映射到数据空间的0x4000~0xFFFF;上电自举完成后,整个Flash空间 0x00000~0x3FFFF映射到程序空间的0x80000~0xBFFFF,即映射到了TMS320VC5402的扩展程序空间,处于高地址,因此 称为“高端Flash”。由此可知,对系统进行应用开发时,Flash总是表现为高端Flash。图1  Flash编程流程2  Flash编程流程  用户程序一般以可执行COFF(公共目标

4、文件格式)文件格式存在(后缀名为.out),Flash编程所要完成的就是将此可执行文件转换成特定 的ASCII码引导表的格式,并按此格式顺序写进Flash。Flash编程流程如图1所示。下面仅以一个动画显示程序qq.out为例,介绍如何将其烧 写进Flash。2.1  生成引导表  通过Hex转换工具,将用户程序qq.out文件转换成十六进制形式的ASCII码流文件(ASCIIHex格式文件[2])qq.asc。首先编写一个convert.cmd命令文件。部分内容如下:  qq.out/*用户程序*/  -a/*转换成ASCIIHex格式文件*/  -map qq.m

5、xp/*包含引导表的长度等信息*/  -o qq.asc/*转换成qq.asc*/  执行命令行“hex500 convert.cmd”将产生qq.mxp和qq.asc文件。其中qq.mxp文件有这样的信息:“CONTENTS: 00000000…0000433b”。表示qq.asc中的引导表长度为0x433C字,内容大致为:“10 AA 7F FF 00 02 00 00…”。2.2  转换成数据文件  编程将ASCIIHex格式文件qq.asc转换成CCS(Code Composer Studio,代码集成开发环境)支持的数据文件(后缀名为.dat)。例中的引导表

6、已属较大的表,这里将其转换为两个数据文件qq_dat1.dat和 qq_dat2.dat,以在同一缓冲区分两次装载,避免因缓冲区太小而容纳不了引导表的情况发生。  CCS支持的数据文件的第一行为文件头信息,格式为:  幻数  数据格式  起始地址  页类型  数据块大小其后是文件内容,每行表示一个数据。其中幻数固定为“1651”,数据格式可以选择“1”(十六进制整型)、“2”(十进制整型)、“3”(十进制长整型)、“4”(十进制浮点型)。  利用VC6.0编写该转换程序是简单的,程序运行后产生的qq_dat1.dat文件将是:“1651 1 4000 1 2000 0

7、x10AA…”。从文件头信息可知,加载该文件可将引导表装载到数据空间0x4000起始的长度为0x2000的缓冲区中。2.3  Flash烧写  利用GEL程序将引导表形成的数据文件qq_dat1.dat和qq_dat2.dat逐次装载到数据空间,调用C程序执行烧写过程。  由于Flash空间映射到TMS320VC5402程序空间的0x80000~0xBFFFF,故实际编写程序时使用的Flash空间的地址均需偏移0x80000。例如,Flash空间的0x5555地址单元实际上为0x85555。  正如前面所介绍的,虽然高端Flash囊括了整个Flash

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。