APP下载

TI F2812芯片串口程序更新研究

2018-02-08孙志鹏

微处理机 2018年1期
关键词:批处理下位串口

彭 云,孙志鹏

(1.中国电子科技集团公司第二十六研究所,重庆400060;2.爱立信(西安)信息通信技术服务有限公司大连分公司,大连116023)

1 引 言

在传统的传感器设备中,设备程序的烧写一般用JTAG接口来进行。这种方式的特点是可以用芯片厂商提供的烧写软件和烧写器进行程序的烧写,节省人力和资金成本。但当传感器产品最后出厂时,这种烧写方式的缺点就非常突出了——JTAG接口不利于更新程序,因为在多数情况下,需要打开设备的盖子,然后进行程序的烧写[1-3]。

TI F2812DSP的Boot启动模式选择有很多种,详见表1[4]。

在DSP编程中,大部分都采用Jump to Flash/ROM模式,这种模式启动方便,利于程序控制。基于此种启动方式,设备能通过串口进行硬件DSP程序的更新。

2 下位机Flash分配设计

2.1 TI F2812DSP Flash区域划分概述

TI F2812DSP的Flash大小是12K×16,分为10个Sector,每个Sector有其各自的大小。

F2812 Flash Sector地址区域划分的详细信息见表2[4]。

表1 TI F2812DSP启动模式

表2 F2812 Flash Sector地址区域划分

从表2可以看出,位置为0x3F7FF6~0x3F7FF7处为Boot-to-Flash的跳转入口,并且由于F2812的每个Sector大小固定,所以可以灵活的在程序中加以设计。研究中,将Flash区域进行如表3所示划分,可以实现由Bootloader启动后进入原始程序,或者新程序,并且在Bootloader过程中可以对设备进行更新。

2.2 下位机存储区实现

存储区实现主要是靠修改.cmd文件来完成[5]。其中位于程序空间(Page 0)可进行如下设置:

表3 F2812 Flash重新设计

在进行如上设计后,即可实现Flash区域划分的实现。最后,通过对Section的设计即可确定Flash程序烧写的位置:

3 下位机更新数据设计

3.1 更新数据类型概述

研究所实现的bootloader中,更新数据类型采用Intel HEX文件。Intel HEX文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码和(或)常量数据的十六进制编码数字组成。Intel HEX文件通常用于传输将被存于ROM或者EPROM中的程序和数据。大多数EPROM编程器或模拟器使用Intel HEX文件[6]。

下面是生成的一段HEX文件:

以第一行为例,冒号后的数据的作用是:

20是这行数据的字节数(0x20);

0000是数据将被下载到存储器当中的位置(在本研究中不使用此参数);

00是数据记录的类型;

AA08……00020001是数据,0x20个字节;

AF是校验和。

详细的数据分析通过之后更新数据分析函数来实现。

3.2 下位机更新数据实现

生成更新程序的HEX文件需要TI提供的hex2000.exe工具和一个自己编写的CMD批处理文件。批处理文件内容如下:

将批处理文件(例如build2812hex.cmd)和TI提供的工具(hex2000.exe)放在同一路径下,然后命令行中进入该路径输入:hex2000.exe build2812hex.cmd即可生成更新需要的HEX文件[7]。

4 更新程序设计

4.1 程序运行流程

程序运行的主要流程如图1所示。

图1 程序运行流程图

4.2 主要函数设计

4.2.1 Flash烧写函数

Flash烧写主要用到TI公司提供的API函数。首先需要将用于烧写的Lib库函数载入,具体可以通过修改.cmd文件来实现,如下所示:

之后即可调用Flash_Program(Flash_ptr,array,Length,&ProgStatus)和Flash_Verify(Flash_ptr,array,Length,&VerifyStatus)来进行 Flash的烧写[8]。

4.2.2 更新数据分析函数

正如前面所提到的,对于更新数据的分析应该分多种情况加以考虑,本研究中实现了DataAnalyse(Uint16*data)函数,函数实现的主要算法如下:

5 结束语

这个通过串口进行程序更新的方法,可以广泛运用于嵌入式芯片Flash的读写。这种方法可以克服传统的JTAG带来的不便。另外,HEX文件格式也被大多数编程器和解释器所使用,通过掌握这种文件格式,可以更好的对更新程序进行设计,以满足不同开发人员的需求。

特别地,这种对Bootloader的程序的设计,可以方便的与上位机配合使用。比如通过适当的编程语言,实现上位机的图形化界面操作,就可以实现通过图形化界面对DSP Flash进行程序的烧写和升级。

[1]王薇.基于嵌入式Linux的BootLoader的设计与应用[D].成都:西南交通大学,2006.WANG Wei.Design and application of Bootloader based on embed Linux system[D].Chengdu:Southwest Jiaotong University,2006.

[2]戴卫彬.基于JTAG的在系统编程和硬件调试研究与应用[D].昆明:昆明理工大学,2005.DAI Weibin.Research and application of JTAG in system programming and hardwaredebugging[D].Kunming:Kunming University of Science and Technology,2005.

[3]邓启辉.用JTAG烧写Flash的方法[J].兵工自动化,2005,24(1):86-87.DENG Qihui.A method to use JTAG to write Flash[J].Ordnance Industry Automation,2005,24(1):86-87.

[4]TEXAS INSTRUMENTS.Digital Signal Processors Data Manual.Apirl 2001.http://www.ti.com/lit/ds/symlink/tms320f-2810.pdf

[5]陈娟,戴文进.一种烧写TMS320LF240xA的新方法[J].通信电源技术,2007,24(2):49-51.CHEN Juan,DAI Wenjin.A new way to write TMS320LF2-40xA[J].Telecom Power Technology,2007,24(2):49-51.

[6]邢矫健.如何在单片机上调试Hex文件的程序[J].电子世界,2003(11):31-32.XING Jiaojian.How to debug HEX file in DSP[J].Electronics World,2003(11):31-32.

[7]何艳丽.TMS320F2812在线编程中的文件格式转换[J].煤炭技术,2012,31(2):228-230.HE Yanli.Online programing file format translation in TMS-320F2812[J].Coal Quality Technology,2012,2:220-222

[8]杨东军,方伟,叶新.TMS320C30外部FLASH在线烧写及代码搬移的实现[J].计算机测量与控制,2011,19(9):2227-2229.YANGDongjun,FANGWei,YEXin.Implementationof external flash online writing and code migration in TMS320C30[J].Computer Measurement&Control,2011,19(9):2227-2229.

猜你喜欢

批处理下位串口
浅谈AB PLC串口跟RFID传感器的通讯应用
恶意批处理文件导致电脑黑屏、反复重启、无响应的原因分析及应对思路
不装软件批处理为文件夹加锁
发射机房监控系统之下位机
借助批处理 让Cortana变聪明
景洪电厂监控系统下位机数据传输网络改造
围观党“下位”,吐槽帝“登基”
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式