碧波液压网 欢迎你,游客。 登录 注册

基于TMS320C6713的软件自动更新方案设计

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  

  引 言

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

  笔者通过对TMS320C6713 DSP系统引导过程的分析和COFF(公共目标文件格式)文件格式的分析,提出了一个软件自动更新的方案,并在基于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的数据空间,这个初始化为O的动作在C语言环境建立时进行,属于系统程序的一部分,与引导程序无关,称为“不需要初始化的段”。这样,只需要保存初始化的段到 Flash中,而并不需要通过段的名称来识别哪些段是需要初始化的段,哪些是不需要初始化的段,两种类型可以通过COFF文件中的段信息表部分来区分。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论