基于GPRS的DSP程序远程升级的研究实现

所需积分/C币:15 2016-07-28 12:53:49 299KB PDF
收藏 收藏
举报

GPRS远程升级的研究
33922010,31(15) 计算机工程与设计 Computer Engineering and Desig 0x3F7FF6处烧写cint00函数的入口地址,这样复位时DsP PAGE 1 才能实现自举运行 RAMMO origin=0x000000, length=0x000400 23C语言程序的地址定位 /嶂RAM0空间 231C程序的分段 RAMLI origin=Ox009000, length=0x001000 T公司新的汇编器和编译器创建的目标文件采用 COFF /RAMLI空间 ( common object file format)的目标文件格式。COFF格式的 基本思想是:鼓励程序员在用汇编语言或C语言编程时运用 SECTIONS 代码块和数据块的概念。这种块称为 SECTION,是目标文 stack RAMMO PAGE=1 栈的分配* 件中的最小单位。所有的块分为两大类:已初始化块和未初 bss :>RAMLI PAGE 全局静态 始化块。 变量空间分配 已初始化块包含程序代码和数据,未初始化块是为未初 text:> FLASHA PAGE=0/代码段分配嘲 始化的数据在存储器中的保留块,预留的存储器中空间,一般 codestart:> BEGIN PAGE=0摩启动代码分配* 是在RAM里。未初始化段在目标文件中没有实际的内容,它 们仅仅是用来预分配空间用的,程序在运行的时候可以用这 3远程升级的实现 些空间来创建和存储变量。 C编译器对C程序编译后产生已初始化块和未初始化块,31上位机代码数据生成程序 已初始化块如:text块、 const块、 init块;未初始化块如:.bs 经编译生成的用户程序是COFF格式的文件,这种文件 块、 stack块。表2是各个块的具体内容。 不能直接烧写到 FALSH中,需要将COFF文件转换成HEX文 F2812将存储器分为两种:程序空间(pae0)和数据空间件,再将HX文件中的地址信息剔除,将ASCm码形式的数据 (page),其中程序空间包括可执行代码、初始化表、 switch表;转换成二进制代码保存。这时生成的二进制代码才是升级要 数据空间包括全局、静态变量和堆栈 用到的代码数据。这一系列转换过程如图3所示,其中 2.3.2链接器的cmd文件编写 Hex2000exc是TI公司提供的转换工具,Hex2 bin. exe是在分析 由于DSP的编译器的编译结果是未定位的,DSP没有操了所有HEX文件格式后,使用C语言开发的转换程序,该程 作系统来定位执行代码,所以需要一种机制来定位程序,这序支持 ASCH-hex, Extened tektronix, Intel mcs86(ntel,Moto 个机制就是 Linker的CMD文件,用于将COFF格式的代码 rola Exorciser(Motorola-S)4种格式。 定位到DSP的存储空间。CMD文件的专业名称叫链接器配 经 hexin.exe程序生成的BN格式文件,根据无线传输 置文件,是存放链接器的配置信息的,简称为链接器的命令的需要分成多个数据包,通过GPRS方式发送到远端嵌入式 文件,其中比较关键的就是 MEMORY和 SECTIONS两个伪终端上。 指令的使用。 32GPRs无线传输的实现 MEMORY是用来对芯片的ROM和RAM按区间进行划分 本系统中,无线传输选用的是GPRS方式,选用西门子公 并指定每个区间的大小。 SECTION用来指定代码段和数据段司的MC55模块作为通信芯片MC5支持900MHz,1800MHz 在存储器的某个区间的分配。下面给出CMD文件的示意写法:和1900MHz这3种频段,内嵌TCP/P协议,这大大减少了系 MEMORY 统的开发成本DSP通过AT指令控制MC55模块实现GPRs PAGE O: 的链接,数据收发等操作 FLASHA: origin=Ox3F6000, length=0x00lF80 33Fh在线编程的实现 FLASHA空间峰 代码数据由上位机按规定的数据格式通过GPRS方式发 BeGin origin=Ox 3F7FF6, length=0x000002 /0x3F 7FF6处的跳转指令事 程序源码( ch asm) Compile/Linker 衰2c程序的段 COFF (out) 代码块「存储器类型|萸号 内容 Hex2000.exe FLASHRAM0 可执行代码和常数 Hex文件 init FLASHRAM|0用来存放对全局和静态变量的初始化常数值 (ASCII-Hex/otel/Motorols-S/Tecktronix) FLASHRAM0 全局和静态变量的初始化常数值(C+) witch语句产生的常数表格 Hex2bin. exe switch FLASH/RAMo/ constFLASHRAM1|全局和静态的co变量初始化值和字符串常数 Binary econt FLASHRAM 1 长, const数据 按协议组帧 RAM 存放全局和静态变量 RAM 长调用的bs GPRs发送效据包 RAM 存放C语言的栈 上位机软件包生成 sysem RAM 存放C语言的堆 RAM 长调用的 sysem 图3程序文件转换流程 下转第3450页) 34502010,31(15) 计算机工程与设计 Computer Engineering and Design 小重新排列,将重新排列后的灰度级与预先确定的码字 [2]冯希几种图像无损压缩与编码方法的比较研究[D]西安中 对应,得到新的编码表,新的编码表中概率大的灰度级对应 国科学院西安光学精密机械研究所,2008. 短码,概率小的灰度级对应长码,由此达到图像压缩的目的。[3]王学武石跃样对图像灰度级分段的压缩编码[月计算机工程 同时本方法中组号与组内的灰度表示分开存放,可以对组号 与设计2006,27(2):22222 利用游程等方法进行编码,组内的码字用本方法进行二次编[4] Rafael C Gonzalez Richard E Woods数字图像处理[M]阮秋 码,由此达到进一步压缩的目的由上面的实验结果可以看 琦阮宇智译2版北京:电子工业出版社2007:326-364. 出,本文提出的无损压缩编码方法相比于 Huffman编码压缩[5]陈天华数字图像处理M北京清华大学出版社2007 比更高,编解码速度更快,同时本方法简单易行,所需系统6]王慧琴数字图像处理M北京北京邮电大学出版社2006 开销小。 [7]田勇,丁学君数字图像压编技术的研究及进展U装备制造技 参考文献 术2007(4:72-75. 8]籍俊伟无损图像压缩技术的研究与应用[D]北京北京化工 [1]黄贤武王加俊李加华数字图像处理与压编编码技术M成 大学2004 都电子科技大学出版社200 [9]孙鑫余安萍VC艹深入详解M]北京电子业出版社,2006 上接第3392页) 送到嵌入式终端,已运行在终端的接收程序按协议约定接收后,执行烧写程序然后重启实现自举启动。实验证明,1K大 数据包,接收结束后,将所有的数据包组合成不同的程序段,小的程序代码,只需5就可以发送到终端上,系统升级的整 这些程序段包括text、bs等以初始化段和一条烧写至0X3F个过程,在效率方面30s内完成成本方面只需几分钱的GPRS HF6处的跳转指令。数据包接收结束后,启动运行在RAM上流量费用,这与传统的方式相比有了极大的改善。 的烧写函数,将程序段和跳转指令烧写各个扇区。烧写结束, 5结束语 启动看门狗使系统复位开始执行新的程序。 F2812片内自带了128 K FLASH,分为4个8KBx16位和6 这种基于GPRS的DS程序远程升级方法在产品出厂时, 个16KBx6位的扇区,用户可以单独擦除、编程和验证 Flash使用丌TAG仿真器完成首次程序烧写,产品安装到现场后,程 的任意一个扇区而不会影响其他扇区,但不能通过运行在序的改动都可以通过无线的方式远程来完成,给产品的升级 Flash上的程序对Fash的扇区进行擦除或编程等操作。基和维护带来了极大的方便。该方法在T公司的TMSF2812 于此,进行烧写的代码需要搬移到RAM上去运行,具体实现DSP上得到了验证,大大提高系统的可维护性和可扩展性,具 由配置CMD文件来完成因。 有较好的实用价值,在其他系列的DSP上也有很强的通用性, Flas2812APIV2l0函数库是TI公司的编程算法。该算对于其他平台的遥测遥控系统也有一定的借鉴意义 法定义良好操作简单,而且可以脱离烧写插件,真正实现在参考文献: 线烧写。编程算法中函数定义如下: 1)擦除扇区的函数为Uimt6Fa2812Erae( SectorMask,[1]杨枢贾小涛叶蔚嵌入式系统软件远程在线升级的研究与实 & STatus),其中, Sectormask为擦除指定扇区;&Fsus为状态 现[微型电脑应用,2008(11):3085-3087. 值,判断操作是否成功。 [2] Texas Instruments. TMS320C28x assembly language tools user (2烧写程序到F1sh函数为Unt6 Flash2812 Program(& guide [m].Texas Instruments, 2007: 24-56 FlashAddr,&BuffAddr, Length, &FStatus),t +&FlashAddr *#E [3] Texas Instruments. TMS320C28x optimizing C/C++ compiler 序在Fash中烧写的起始地址;& BuffAddr为程序当前存放在 ide [m]. Texas Instruments, 2007: 78-123 内存空间的首地址: Length为程序长度:& Status为状态值,判[4] Texas instruments. Copying compiler sections from Flash to 断操作是否成功。 RAM on the TMS320F28XX DSCS MI. Texas Instruments (3)校验烧写到 Flash中的程序为Untf6 Flash2812 Verif 2008:23-68 (&FlashAddr, &BuffAddr, Length, &STatus) 15] Texas Instruments. TMS320F281x Boot ROM serial Flash pro- 4实验结果与分析 gramming [M]. Texas Instruments, 2007: 21-64. [6】邓中亮孙静嵌入式设备在线系统升级的设计与实现[计算 为了验证该方案的可行性,在硬件上使用F320F2812DSP 机工程与设计,2009,30(13):3739 为工作平台。软件上,使用ⅴC+60开发环境编写上位机软[]李静张树团TMS320F2812片内 Flash在线烧写技术研究J 件,该软件作为更新系统的服务器端,远端的嵌入式终端通过 国外电子元器件2008(10):3740 GPRS模块和服务器端通信。打包程序将经格式转换后得到[8】孙轶许少尉TMs320F2812芯片的 Flash烧写技术门航空计 的代码组装成升级包,逐帧发送到远端终端。终端接收解析 算技术,006(94649

...展开详情
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
上传资源赚积分or赚钱
最新推荐