电子工程师的网站
首 页 |  新闻资讯 | 最新产品
解决方案
技术参数 | 设计应用 | 电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 解决方案 > EDA/PLD > 详细信息
EDA/PLD:基于C语言和GEL语言的Flash编程新方法
来源:   时间: 2007-12-19 1:36:47    
  以TMS320VC5402为例,探讨一种综合运用C语言、数据文件及GEL语言的Flash编程新方法。

  该方法完全采用C语言编写烧写程序,解决了指针不能访问高端Flash的问题;把引导表作成数据文件,可实现大引导表的分批次加载;通过GEL程序控制C程序执行,较好地体现了Flash编程的流程。

  引言

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

  这里提出的Flash编程方法完全采用C语言编写烧写程序,运用函数地址访问高端Flash,借助数据文件将引导表加载到数据空间。GEL(General Extension Language,通用扩展语言)作为一种程序扩展语言,被广泛用于调试及程序运行环境的定制。这里将GEL语言运用于Flash编程,可以控制C程序在数据加载完成后执行烧写过程,从而实现大引导表的烧写。

  1 DSP开发板及Flash存储器

  笔者使用的DSP开发板上有1片TMS320VC5402通用DSP芯片、1片SST39VF400A存储芯片(Flash)、键盘和液晶显示器等。其中Flash容量为256 K字(1字=16位),组织为128个扇区或8个块。为充分发挥Flash容量大的特点,本系统在硬件上将Flash空间的映射设计为:在上电自举过程中,Flash空间的0x04000~0x0FFFF映射到数据空间的0x4000~0xFFFF;上电自举完成后,整个Flash空间0x00000~0x3FFFF映射到程序空间的0x80000~0xBFFFF,即映射到了TMS320VC5402的扩展程序空间,处于高地址,因此称为“高端Flash”。由此可知,对系统进行应用开发时,Flash总是表现为高端Flash。

  

 Flash编程流程

  图1 Flash编程流程

  2 Flash编程流程

  用户程序一般以可执行COFF(公共目标文件格式)文件格式存在(后缀名为.out),Flash编程所要完成的就是将此可执行文件转换成特定的ASCII码引导表的格式,并按此格式顺序写进Flash。Flash编程流程如图1所示。下面仅以一个动画显示程序qq.out为例,介绍如何将其烧写进Flash。

  .1 生成引导表

  通过Hex转换工具,将用户程序qq.out文件转换成十六进制形式的ASCII码流文件(ASCIIHex格式文件[2])qq.asc。首先编写一个convert.cmd命令文件。部分内容如下:

  qq.out/*用户程序*/

  -a/*转换成ASCIIHex格式文件*/

  -map qq.mxp/*包含引导表的长度等信息*/

  -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…”。

相关信息
发表评论
打印本页 关闭本页
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com