|
技术文库首页
|
编程
|
IC
|
晶体管
|
精解
|
中频
|
其它
|
电源
|
基础
|
电脑
|
无线
|
液晶
|
微波
|
空调
|
手机
|
|
热水器
|
电动车
|
LED屏
|
焊机
|
您现在的位置: 华玉生活网 >> 技术文库 >> 无线 >> 正文>> 繁體中文

TMS320C6713的软件自动更新方案设计,软件自动更新,COFF文件解析,两级引导程序,TMS

引言目前市面上存在大量基于DSP的嵌入式系统,随着系统的完善和功能的增强,几乎所有的DSP系统都面临着软件更新的问题,这时,更新方法的简易和高效就显得特别重要。在基于DSP(数字信号处理器)的嵌入式系统中,软件更新通常需要借助仿真器将最新的程序下载到目标板上,然后将程序写入非易失型存储器中。同时,由于新程序编泽、链接后生成的各段的大小和运行空间会发生变化,系统引导程序也需要作相应的改动。例如:上一个版本的程
引 言

目前市面上存在大量基于DSP的嵌入式系统,随着系统的完善和功能的增强,几乎所有的DSP系统都面临着软件更新的问题,这时,更新方法的简易和高效就显得特别重要。在基于DSP(数字信号处理器)的嵌入式系统中,软件更新通常需要借助仿真器将最新的程序下载到目标板上,然后将程序写入非易失型存储器中。同时,由于新程序编泽、链接后生成的各段的大小和运行空间会发生变化,系统引导程序也需要作相应的改动。例如:上一个版本的程序对应的.text段的运行空间位于0x80000000~0x80000l00,而新程序对应的.text段的运行空间则位于0x80001000~0x80001110,.text段的运行空间和长度都发生了变化。另外,引导程序的任务之一是将.texl,段的数据从Flash中复制到其运行空间,因此就必须重新修改引导程序,将.text段复制的起始地址由0.x80000000改为0x80001000,并将复制长度改为0xll0,每一次软件更新都会重复上面的步骤。在远程系统控制应用中,这种更新方法就显得非常不便;在需要同时对大量的DSP系统进行软件更新或经常需要软件更新的情况下,这种方法的效率也非常低下。

笔者通过对TMS320C6713[1]DSP系统引导过程的分析和COFF[2](公共目标文件格式)文件格式的分析,提出了一个软件自动更新的方案,并在基于TI公司的TMS320C6713芯片与SST公司的SST39VFl601并行Flash芯片组成的硬件平台上实现;最后还简单介绍了本方案在TMS320VC5409系统上的实现。实现本方案的一个前提是DSP硬件系统上具有某种接口,可以从计算机中下载COFF文件到本地系统上,笔者使用的平台是通过UART接口连接计算机,使用Windows自带的超级终端工具,通过Xmodem协议将COFF文件下载到目标系统上,当下载完成后更新就会自动完成。DSP重新上电或复位后运行的就是最新的程序。本方案主要包括两个过程:一是通过解析COFF文件得到所需的数据并烧入Flash;二是系统上电后自动根据Flash中最新的数据引导、运行。下面详细描述两个过程的实现方法。

1 COFF文件解析

C或汇编程序在编译后会生成很多段(如.text、.bss、.switch、.cinit、.data等),这些段又可以分为需要初始化的段和不需要初始化的段。这里,需要初始化和不需要初始化是针对系统引导来说的。例如:.text为程序代码数据,系统上电后需要引导程序从Flash中复制到其运行空间中,称为“需要初始化的段”;.bss为初始化为0的数据空间,这个初始化为0的动作在C语言环境建立时进行,属于系统程序的一部分,与引导程序无关,称为“不需要初始化的段”。这样,只需要保存初始化的段到Flash中,而并不需要通过段的名称来识别哪些段是需要初始化的段,哪些是不需要初始化的段,两种类型可以通过COFF文件中的段信息表部分来区分。

1.1 COFF文件简介

COFF文件是DSP汇编器和链接器创建的目标文件,通常为项目目录下的Debug目录里后缀为.0ut的文件。在COFF文件中包含文件头、可选择的头信息、段信息表、每个初始化段的数据和重定位信息、符号表、字符串表。从中可以看出,COFF文件中包含了很多冗余的信息成分。为了节省空间、提高效率,在这里不直接将COFF文件烧进Flash,而只保存所需的信息,即每个初始化段的数据和程序的人口地址。下面详细描述如何从COFF文件中得到这些信息。

1.2 COFF文件格式

在COFF文件中,文件头部分提供了该文件中包含的段的个数,解析程序会根据段的个数扫描每个段的信息并保存初始化段的数据;可选择的头信息包含了程序的入口地址,在系统引导结束后会直接跳转到这个地址,系统就开始正常工作。段信息表的格式说明如表1所列。其中,段物理地址是该段的执行地址,也就是程序运行时该段所在的空间;原始数据文件指针指向段数据在COFF文件中的位置,如果该段为初始化段,那么从这里就可以得到需要写入Flash的数据的位置。计算如下:


段数据地址=COFF文件起始地址+原始数据文件指针

标志信息用于判断该段是否为需要初始化的段,如表2所列。需要初始化的段标志为0x40和Ox20,这样就获得所有需要引导程序复制的段数据。此时不能将这些数据直接烧人Flash,若直接烧入Flash,则引导程序将无从知道段数据的起始位置、运行空间地址和长度。本方案设计了一个简单的数据结构放在段数据前,称为“段头”。数据结构如下:

1.3 Flash存储空间安排

获得所需的数据后,下一步就是将这些数据烧人Flash。Flash空间的数据格式如下:

除了保存段头和段数据,还需要记录程序入口地址和后面所有段的个数。程序入口地址是目标程序第一步开始执行的地址,当引导程序复制完所有的数据后就直接跳到这个地址开始运行。段的个数用于引导程序判断是否所有段的数据已复制完。

在烧写Flash前还需要对Flash空间进行划分。以本系统为例,Flash空间为0x90000000~0x90400000,共4MB。划分如下:

◆第一部分存储的是第一级引导程序。对TMS320C6713系统来说,这部分代码编译后产生所有初始化段大小必须小于1 KB(其详细分析见后),所以这部分空间大小固定为1 KB,即0x90000000~0x900003ff。

◆第二部分存储的是第二级引导程序,这部分按照上述数据格式烧写。其长度没有特别限制,只需根据保存第二级引导程序所需的最大空间安排。由于Flash每个扇区的大小为8 KB,为了便于对上一部分的擦除操作,将第二部分的起始地址延长到Flash第二个扇区的起始地址,其空间为0x90002000~0x90003fff,共8 KB。

◆第三部分为系统程序,其长度根据保存系统程序所需最大空间安排。数据格式与第二部分相同,对应地址为0x90004000~0x90103fff,共1 MB。剩余的Flash空间作其他用途。

整个Flash空间划分如图1所示。注意:以上3个部分一旦规划好,每个部分的位置就不能改动。对于第二部分,只要第二级引导写好,这部分需要的空间也就确定了;而第三部分在每次软件更新时都要同时更新,因此需要预留足够大的空间。

整个COFF文件解析流程如图2所示。

2 系统引导程序设计

TMS320C6713支持3种引导方式:主机引导、仿真引导和EMIF引导。本方案采用EMIF引导,在此模式下,位于外部存储空间CE1的Flash中的1 KB代码通过EDMA拷贝到片内RAM地址0处。由于大多数引导程序代码大于1 KB,因此本方案采用两级引导方式[3]。编写引导程序的目的就是,将所有初始化段的数据从Flash中拷贝到其对应的运行时的存储空间。

2.1 第一级引导程序设计

对于基于TMS320C6713的系统,第一级的引导程序大小被严格限制在1 KB内,因此只能用汇编语言编写程序。在系统上电后第一级的引导程序由EDMA从Flash拷贝1 KB到片内RAM并开始执行,因此第一级引导程序编译后所有初始化段的长度不能大于1 KB。对于笔者提供的程序,这段程序编译后产生的初始化段只有.text段。其任务是根据数据格式找到段数据并拷贝到对应的物理地址中,然后跳到第二级引导程序入口处。第一级引导程序流程如图3所示。

2.2 第二级引导程序设计

第二级引导程序大小没有限制,因此本方案使用C语言来实现。在本硬件系统中,系统程序在SDRAM中运行,因此在第二级引导程序拷贝段数据之前还需要初始化EMIF。如果在硬件上还用到了其他外设,也可以在这里完成初始化。初始化完成后就开始拷贝数据的过程,这与第一级引导程序的拷贝过程是完全相同的。第二级引导程序流程如图3所示。

这里用简单的例子来解释系统引导程序如何工作的。在Flash空间中,所有的段头和段数据都是紧凑安排的。也就是说,上段头后面紧接着段数据,本段数据结束后就是下一段的段头。这种安排是必须的,否则,引导程序在复制完上一个段的数据后就无法找到下一个段头的地址。以第一级引导程序复制Flash中第二级引导程序为例说明。第二级引导程序的各段数据在Flash中的起始地址为0x90002000,首先从头两个字中读出程序入口地址、所有数据大小和段个数;然后读取段头,段大小用于确定本段数据长度;跳过本段数据区为下一段头开始位置,段物理地址则说明了段数据复制的目的地址。若复制的段个数等于开始读出的段个数,则表明所有数据复制均已完成,然后跳转到程序人口地址。从这个过程中可以看出,引导程序的复制过程完全是根据段头的信息来的。当软件更新时,段头信息也会相应更新,与引导程序无关。因此,引导程序可以自适应新程序段的变化,而不需要重新修改引导程序。

3 在TMS320VC5409系统上的实现

大多数DSP系统的引导过程都大同小异,笔者也将本方案应用在基于TMS320VC5409的硬件平台上。对于COFF文件的解析,两种平台没有区别,解析得到的段数据也同样是加上段头后烧进Flash。TMS320VC5409与TMS320C6713唯一的区别在于其引导过程。TMS320VC5409的引导方式较多,对本方案的实现也多种多样,这里只简单介绍笔者所使用的方法。

将MP/MC引脚拉高,使TMS320VC5409为微处理器模式。这样程序空间0xff80~0xffff映射到外部,同时硬件上将Flash空间连接到DSP的0x8000~0xfff程序空间上。DSP上电复位后,PC从程序空间的0xff80开始执行,需要做的是在0xff80对应的Flash空间中写入一个跳转语句,将DSP跳转到引导程序开始的位置。可以看出,由于引导程序没有长度限制,因此采用一级程序引导。注意:此时的引导程序并没有复制到片内RAM中,而是直接在Flash上执行,所以在编译引导程序时要注意链接文件的书写。当引导程序开始执行后,直接在预先设定 好的Flash空间中根据1.2小节中的结构体寻找段数据并复制,复制完成后跳转到系统程序入口处。

编者注:实现代码见本刊网站.cn。

4 结 论

本文介绍了一种基于TMS320C6713系统的软件自动更新方案。该方案具有实现简单、效率高的优点,且一旦实现后,每次软件更新时无须改动引导程序。目前该方案已应用在国家自然科学基金项目自动指纹识别系统中,收到了非常好的效果。实践表明,本方案具有很好的可移植性,可以在TI公司的多种DSP平台上得到应用。


瑞达币购买
桂山秋竹_唐年桂2023年
桂北云雾图_唐年桂202

  • 扩展阅读
  • 上一个文章:
  • 【返回网站首页】 【返回无线】
  • 下一个文章:
  • 【字体: 】【】【发表评论】【加入收藏】【告诉好友】【打印此文
    文章 软件 电影 商品

    相关文章

    本站公告

    • 扫一扫,打赏给我们,谢谢!

      本站2016年12月16日起取消ruida.org.cn域名,该域名正式作废,该域名发布任何信息与本站无关。


      启用ruida.orghy928.net域名;

      瑞达网,瑞达科技网宣

    附页内镶内容
    健康养生 商场新品 股市K线、指标知识
     六种药酒配制法[11月7日]
     玉容散·主治妇女面无光彩,[4月23日]
     玉容散·功效祛风止痒,化斑[4月23日]
     玉容散·功效祛风利湿,消斑[4月23日]
     玉容散·功效馨香,去垢腻,主[4月23日]
     玉容散·主治黧黑皯黯(又名黧[4月23日]
     玉容散·功效白面嫩肌,主治黧[4月23日]
     玉容散·主治面上诸(黑干)(黑[4月23日]
     玉容散·主治润颜色[4月23日]
     七子白粉_美白、祛斑、去痘、[4月23日]
     瑞达币购买
     桂山秋竹_唐年桂2023年新作品
     桂北云雾图_唐年桂2023年新作品
     广西2019年《高考指南》+《招生计
     金士科前置过滤器
     金牛前置过滤器
     USB口24系列编程器第二版含USB延
     液晶电视、液晶显示器图纸、维修
     彩电、显示器、DVD、EVD打印机等
     高清CRT彩电、显示器图纸刻录 4G
     [理财]各种短视频赚钱方法
     [会员]专业交易实战控制系统
     [理财]1分2分5分硬币回收价格表(20250123)
     [理财]1分2分5分硬币回收价格表(20230928)
     [理财]1分2分5分硬币回收价格表(20230624)
     [理财]2022 年新版1分2分5分硬币回收价格表…
     [理财]微信收款码如何开通商业版收信用卡费…
     [指标]R平方_基金指标
     [指标]标准差_基金指标
     [指标]平均回报_基金指标
    装修案例 网站建设 电器维修
     一般水电安装几个常用尺寸[1月29日]
     三相电表接法及度数的正确读…[5月8日]
     万能通用卧室房门锁更换步骤…[2月22日]
     乳胶漆的八大施工步骤及涂刷…[2月14日]
     旧墙翻新步骤及注意事项[2月14日]
     屋面防水施工工艺流程及注意…[1月16日]
     专利产品“防污吸气帽”新产…[1月8日]
     鲁班尺吉数对照表高清图片查…[10月29日]
     砂浆胶作用与危害[9月21日]
     4种处理水泥地面起砂方法[9月21日]
     网页html点击切换显示内容完[11月7日]
     动易SiteWeaver6.6网站管理系[7月31日]
     中国阴历农历JS支持 HTML网页[2月26日]
     java script error 容错处理[2月15日]
     几款还不错的网页特效显示日[2月14日]
     图片可以调大小的代码[12月14日]
     动易SW6.8网站系统改自适应支[11月20日]
     网站建设_套餐服务[12月4日]
     网站建设-费用明细[12月4日]
     不显示出来的代码[12月3日]
     联想 小新Air 14 2019笔记本…[6月15日]
     滚筒洗衣机脱水声音大原因及…[4月17日]
     智能电视不能开机强制恢复出…[1月16日]
     各大品牌智能电视机恢复出厂…[1月16日]
     洗衣机自己排水或不存水漏水…[6月15日]
     海尔冰箱出现-03还滴滴报警[5月29日]
     TCL电视通用教程安装教程[2月2日]
     TCL L43V7300A-3D液晶彩电出…[2月2日]
     先锋液晶电视LED-32B550无光…[1月17日]
     智能电视主板的应用与维修(…[1月11日]
    电器资料 下载 读书
     手机恢复出厂设置具体操作方…[3月29日]
     三个代码让电脑提速畅通秘籍[3月13日]
     视得安750D6对讲门铃工作原理…[9月13日]
     什么是量子芯片和光子芯片[5月14日]
     沃尔沃S90汽车遥控钥匙失灵的…[1月19日]
     LED显示屏瑞合信PLus单双色全…[12月22日]
     Windows 照片查看器无法显示…[8月6日]
     已经设置IE主页,但是打开还…[7月6日]
     如何调整空压机压力?空压机…[6月8日]
     剪映-视频编辑软件手机版使用…[5月28日]
     [书籍]幼学琼林全文
     [书籍]滕王阁序_原文_注释译文_白
     [书籍]《天工开物》明代宋应星初
     [电影]《抓娃娃》高清电影
     [联想]Lenovo S540-14API Compl 
     [书籍]《墨子》原文注释译文
     [LED条屏]瑞合信单双色/全彩控制系统
     [LED条屏]LED显示屏瑞合信手机APP6.
     [书籍]全本新注聊斋志异
     [书籍]广西2023年高考指南 招生计
     黄历干支年号公元皇帝对照年[4月17日]
     广西高考2024~2022年历史类([6月25日]
     花木[4月16日]
     鸟兽[4月16日]
     释道鬼神[4月16日]
     讼狱[4月16日]
     技艺[4月16日]
     制作[4月16日]
     科第[4月16日]
     文事[4月16日]
    珠宝玉器 在线电视台
     鸡血石与鸡血玉有什么区别[6月12日]
     鸡血玉[6月12日]
     鸡血石 (bloodstone)[6月12日]
     什么是莫桑石(Moissanite)[6月12日]
     可以戴钻石洗澡吗[1月22日]
     钻石如何保养才好呢?[1月22日]
     PT容易花的问题和钻戒保养问…[1月22日]
     切工 钻石的雕刻艺术[1月22日]
     如何保养好钻戒[1月22日]
     钻戒保养方法[1月22日]
     中央体育台
     中央新闻台
     宁夏卫视
     湖北卫视
     西藏卫视
     辽宁卫视
     河北卫视
     北京卫视
     政法频道
     农民频道
     湖南经视
     湖 南 台
     河南频道
     湖南卫视
     兵团卫视
     江苏卫视
     旅游卫视
     湖南都市
     七彩戏剧
     动漫秀场
     游戏风云
     法制天地
     魅力音乐
     新 娱 乐
     南 方 TV
     浙江卫视
     齐鲁频道
     山西影视
     东南卫视
     上海卫视
     贵州电视台
     重庆电视台
     山东卫视
     哪吒之魔童闹海《哪吒2》在线
     《抓娃娃》在线电影
     流浪地球2剧情介绍
     《万里归途》完整版
     《阿凡达2:水之道》耗资3.1
     2021港剧《梅艳芳》5集全.HD
     误杀2 -电影-完整版视频在线
     亲爱的/亲爱的小孩/打拐/家之
     《第一炉香》-电影-完整版视
     《扬名立万》-电影-完整版视
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论

    | 服务声明 | 充值中心| 华安五金电器 | 收费标准| 论坛| 留言| 实用查询| 会员中心| 下载帮助| 设为首页|

    技术支持:瑞达科技 即时交谈QQ:237013889 QQ群:13810759 E-Mail:237013889@qq.com
    非盈利网站,如有侵权,请来信来电告知,第一时间处理,谢谢!
    桂ICP备17008104号 华玉生活网网站统计
    tj