程序升级范文

2024-09-15

程序升级范文(精选7篇)

程序升级 第1篇

【编程思路】

在互联网放一个包含升级文件列表及信息的文件, 然后利用TId HTTP的GET过程下载这个信息文件, 再分析里面的内容, 对比本地的信息文件列出需要升级的文件列表, 最后根据信息列表的下载地址下载相关文件就可以了。

【编程步骤】

1 建立一个标准的Application, 添加所需控件, 编写代码.

2 主要代码:

2.1 检测按钮代码:

Down Load File () 是自己写的一个函数, 作用是从互联网下载文件, 利用Id HTTP组件的Get过程可以轻松完成这个功能:

这个函数中利用Id HTTP的Get函数将s URL地址的文件内容写入到t Stream这个内存流中, 再保存为名为s FName的文件让我们利用。Button1的代码中首先下载信息文件保存为tmp.ini文件, 然后利用ini文件的Read Sections () 函数将文件列表含有的列表名全部读入Section List中, Section List是一个TStrings类型, 即它是一个字符串列, 读入ini文件的Sections后, 里面便保存了例如File1这样的字符串列, 可以很方便的列出字符串列的内容。

2.2 下载按钮代码:

【程序小结】

本程序主要的功能由Id HTTP组件完成, 这里只是一个演示, 只是把它作为某个程序的附带升级程序, 可以做一个主程序放一个Button写入如下代码:

调用升级程序后关闭自己完成升级。

摘要:互联网的普及让程序的升级变得更加方便, 谈谈Delphi制作升级精灵程序。

程序员技术升级指南 第2篇

本人做软件开发已将近一年,在这说多不多说少不少的一年时光里,从一个编程菜鸟慢慢升级为一个代码工人,实是感触颇多,今天便趁着喝了几杯老酒,来个一吐为快!

我们做软件开发,首先便要很明确我们的目标和实现目标我们所要采取的手段,以下便是本人对软件开发着所经历的几个阶段的一些总结,当然,其中会有不少偏颇的地方,还请高手指正,不断学习!

第一阶段:入门篇【编程菜鸟】,所谓“师傅领进门,修行靠个人”,无论我们学什么东西,我们所走的第一步便是入门!而现在,随着编程技术的不断发展,入门对于很多人来说已经不难,但是我还要说说我对编程入门的一些看法!在入门阶段,我们会学到变量,函数,抽象,多态等一些软件编程的基础概念,当然我们也会学到面向对象的编程思想,我个人的学习便是不断地思考,要的便是“走火入魔”,记得刚学C语言那会儿,冒泡排序想不通,便不停地想,突然想通了,却是在梦中想通的,说出来可能有点夸张,记得那个晚上,睡前还想着这排序怎么实现的,想着想着就睡着了,然后突然地就这么想通了,然后连忙爬起来,一看才知是半夜,别人都睡了,夜很静,就只有再睡,但是却是一身轻松!不断地思考,天天带着问题,不懂就问,这样才能最快地入门!

第二阶段:进阶篇【代码工人】,当我们对编程有了一定的了解,有一定基础,能实现一些简单地功能之后,我们便进入代码工人的阶段【本人正处于这一阶段】,在这一阶段,我们的目标便是实现一个简单的项目!正如学剑法一样,我们之前学到的都是一些零碎的剑招,如上传,图片水印,ADO数据操作等等都是我们能做的简单功能实现,而这一步,我们便是要把这些功能连接起来,组成一个完整的项目,练成一套完整的剑法!而在项目过程中,我们首先想到的便是功能实现,但这还不够,我们不止是要功能实现,我们还要代码的规范性,各个模块的统一衔接,还有功能模块的效率实现,界面实现,操作实现,软件亲和力实现等等问题,都是我们要思考和历练的,要能举一反三,不断地提升自己的技术水平!

第三阶段:入行篇【程序员】,当我们进入第三阶段,我们才能称得上是初级程序员,通过前两个阶段的历练,我们能实现一个简单地项目了,但这远远不够,在这一阶段,我们要进一步提升自己的技术开发水平,我们不止要着眼于一个编程语言或是一个编程框架,而是不断地扩展我们的视野,通过学习,比较,再学习,构建我们自己的编程理想,最终所达到的目标就是我能写的代码,所实现的功能是别人不能替代的,我的技术实现,编程理想是也有自己的烙印的!在这一阶段,我们着眼的.重点就不只是某个功能的实现,而更多的是框架的思考,怎么编程使我们的项目更健壮,更有扩展性,更安全等等,我们的思考点是我们整个项目,慢慢从全局去把握项目!

第四阶段:高手篇【软件工程师】,经过第三阶段的历练和一定时间的积淀,几年之后,我们便进入第四阶段,也就成为真正的软件工程师!从这一阶段开始,我们便要从软件实现转向软件设计,也就是软件设计者,而且我们的把握力不只在一个项目,而是多个项目,我们要同时能设计多个软件,选用最适合的开发语言和开发框架,对项目开发过程中遇到的问题进行指导,而且能对一些难题进行创造性的攻关,那时,你就是项目的核心和灵魂,所有的项目开发工作都围绕你出发,得失成败系与你手!

第五阶段:一流高手篇【软件开发顾问】,这一阶段,是建立在丰富的开发经验,项目经验的基础上的,那时的你就不只是单单对着软件开发了,而要有更广的视野和更敏锐的洞察力,对软件工程师进行指导,那时的你不能单单思考一个项目,而要全局思考,你所做的软件,不再只是一个项目或是产品,而是一种思想,例如你做财务软件,那么在这个软件里就必须要有你对财务管理的独特的思考和创造性的软件实现,那时的你,通过多年的磨练,对各种各样的项目有着全局性的把握,不仅如此,你还有与软件相关的专业知识,如财会,管理等等,而且在这些领域有所建树,你所要完成的工作就是对整个软件注入新的生命与内涵,例如游戏软件,中国人做就要有中国人的文化底蕴体现在里面,而不能一味地拿来主义,那时,软件对你只是一种工具,实现你对完成各项工作所思考理念的一个实现工具,你所做的某一个软件,就可能成为这一软件领域的标杆,用古语说:“那就是一种道”!

第六阶段:天下无敌篇【布道者】,到了这一阶段,你已天下无敌,你的一句话甚至能影响这个软件行业的发展,那时的你,恕小弟愚钝,我已无法窥测你的发展!

程序升级 第3篇

工程机械设备控制系统主要包括控制器、显示屏、移动终端等智能部件。智能部件在各种复杂工作环境中会出现程序异常,从而影响主机设备正常工作,同时智能部件的应用程序需要持续升级优化,为客户提供更好服务。

对分散在全国数以万计的工程机械设备进行升级,如采用服务工程师本地升级方式,这种方式耗费成本巨大[1,2,3]。采用远程升级方式,使用者只需在远程监控中心点击鼠标即可轻松完成操作流程。远程升级为设备维护提供了一种便捷、高效和低成本的途径,能快速处理因程序异常而出现的设备故障,并且可以增强设备远程监控能力。

1 智能部件应用程序远程升级原理

智能部件应用程序远程升级工具采用B/S模式,可支持移动终端(SYMT)、控制器(SYMC)和工业显示屏(SYLD)等智能部件。

该工具可对用户创建的批量升级任务进行调度,采用SCP流传输协议,将升级文件发送至远端工程机械设备上安装的由控制器、显示屏、移动终端等组成的控制系统,利用升级文件进行升级处理,并将处理结果反馈至监控中心。工程机械智能部件应用程序远程升级过程原理如图1所示。

基于B/S模式的Web升级界面设计有较好的用户体验,且远程升级任务处理效率高。功能模块按每个操作流程设计开发,后台处理采用Windows服务程序方式,对大批量升级任务采用滑动窗口调度机制,并且根据移动终端上电状态进行排序,优先将升级文件发送至远端的智能部件。

图1 智能部件应用程序远程升级原理

2 远程升级工具功能设计

根据工程施工实际需求,本文所设计的智能部件应用程序远程升级工具分为系统主页、远程升级、版本上传、日志查询4大功能模块。系统功能结构如图2所示。

图2 系统功能结构

2.1 系统主页

满足便捷性需求,系统页面分为4个区:导航区、用户信息、查询区、查询结果区。

系统主页设计如图3所示。可根据工程机械主机设备编号、智能部件序列号、SYMC状态、SYMT状态、应用程序类型、版本号等条件查询主机和智能部件的装机关系。以便选择主机对应的智能部件进行远程升级。登录系统以后,进入系统主页。

图3 系统页面布局

2.2 版本上传

版本上传主要提供远程升级程序的版本定义和升级文件上传功能。用户输入程序类型、程序版本号、版本文件和版本说明,上传程序文件。根据程序版本类型和版本号,查询当前有效版本信息。

2.3 远程升级

远程升级功能模块可以选择主机对应的智能部件、升级程序类型、升级程序目标版本等信息,批量创建远程升级任务。

图4描述了远程升级任务处理流程。用户根据装机关系创建针对各类智能部件远程升级任务。考虑任务流传输网络带宽限制,后台批处理程序根据移动终端的上电状态进行排序,优先处理任务队列中前200项任务。调用流传输SCADA接口发送升级文件至移动终端。监控中心与移动终端、智能部件之间采用自主设计的流传输协议。

图5为创建远程升级任务的实例,在当前升级任务栏,显示当前升级任务的主机编号、程序类别、程序名称、当前版本、升级版本、文件发送进度和开始时间。点击异常按钮,可以查看当前升级中的异常信息。在历史升级任务栏,可以查看历史任务的主机编号、程序类型、程序文件名、升级前后版本、任务创建时间、主站发送状态、主站至从站处理时刻、SYLD完成接受时刻、升级时刻、是否成功,失败代码、创建人、SYMT编号、SYMC序列号、SYLD序列号等信息。

2.4 日志查询

日志查询主要便于用户根据主机编号、智能部件序列号、版本号、操作时间和操作人员等查询远程升级操作日志。该功能模块根据主机或智能部件的序列号、创建人、版本信息、任务创建时间和升级任务完成状态等信息查询远程升级操作日志。

图4 远程升级处理流程

图5 远程升级过程

3 传输机制设计

稳定可靠的流传输协议是工程机械智能部件安全高效运行的必要条件。企业监控中心与移动终端之间的无线链路通信容易受带宽、通信信号等因素的影响。针对此情况,在远程升级系统中设计了一套适用的流传输协议。移动终端、工业显示屏和控制器等智能部件之间的流传输也可以采用该流传输协议。

3.1 流传输基本流程

流传输协议分为发送方和接收方,具体步骤如图6所示。

(1)发送方将升级文件按216字节分成若干数据块,以每秒5块的频率发送至接收端。

图6 流传输过程的基本步骤

(2)接收方接收数据块后将状态反馈至发送方。反馈的信息包括缺失块。

(3)发送方根据接收方反馈的信息,调整发送频率,接收方接收越快,发送方发送越快,反之,若收方接收慢,则发送方发送调慢。并重新发送缺失块。重复步骤(1)、(2)和(3),直至数据块发送完毕。若发送方在一分钟之内未收到接收方任何反馈,则认为此次流传输失败。

(4)若发送中断,接收方向发送方发送断点续传请求,发送方根据接收方断点续传请求继续发送数据块。

(5)数据块发送完毕,发送方发送CRC32校验码,接收方判断校验码,若发送方收到正确反馈,则完成文件发送。若错误,则重传。

3.2 应用层协议及流类型定义

工程机械智能部件程序远程升级工具与流传输SCA-DA之间采用xml方式进行通信。SEHC部件远程升级典型的xml代码如下所示。

4 结语

本文介绍了一种基于B/S模式的工程机械智能部件程序远程升级工具的设计及实现过程。该工具采用一种稳定、可靠、高速的流传输协议。企业监控中心与移动终端、远端的控制系统内部CAN通信皆采用自主设计的流传输协议,协议针对移动通信中存在的信号不稳定等复杂情况进行处理,支持断点续传,为远程升级提供可靠支撑。该工具支持对SYMT、SYMC、SEHC和SYLD等关键智能部件的应用程序升级。利用该工具已高效、便捷地完成近了40 000次升级任务,为工程机械设备远程维护提供了便利。

参考文献

[1]王立奎,吴长青,魏洪兴.GPS-GPRS无线通讯系统在工程机械中的应用[J].微机应用与智能化,2005(1):2-5.

[2]吴万荣,谭祖香,谢习华.GPS/GPRS工程装备远程监控系统中车载端的应用研究[J].机电工程技术,2006,35(1):42-44.

导游证办理程序-等级调整(升级) 第4篇

(四)等级调整(升级)

一、受理单位 省旅游局。

二、办事项目 等级调整(升级)。

三、办事程序 申请-颁证。

1、申请。申请人持身份证、所申请等级《X级导游员证书》、《劳动合同》或《相关旅游行业组织导游人员登记表》,向省旅游局监督管理处报送办证申报材料,口头提交办证申请。

2、颁证。省旅游局监督管理处对申请人所持办证相关证件、申报材料、导游人员数据信息进行校验,符合规定的,制作导游证,交由申请人签收;不符合规定的,退回申请人补充或更正数据信息后重新申请办理。

四、申请条件

取得中级以上《X级导游员证书》,依法与旅行社订立劳动合同或者在相关旅游行业组织进行注册登记的导游人员。

五、申报材料 申请人原导游证。

六、申报主体 符合申请条件的个人。

七、办结时限

15日内,承诺办结时限5日内(自省旅游局监督管理处对申请人所持办证相关证件、申报材料、导游人员数据信息等,通过校验之日起计算)。

八、法律依据

1、《中华人民共和国旅游法》第三十七条、第一百零三条;

2、《导游人员管理条例》第四条、第五条、第六条、第七条、第八条、第二十七条;

3、《导游人员管理实施办法》(国家旅游局第15号局令)第二章第九条、第六章第三十条;

4、《导游证管理办法》(国家旅游局旅管理发〔2002〕13号)第六条、第七条第二款、第十一条;

5、《关于修订<导游IC卡发放管理办法(试行)等事项的通知>》(国家旅游局旅办发[2011]181号);

6、《国家旅游局关于执行〈旅游法〉有关规定的通知》(旅发[2013]280号)。

九、收费标准 免费。

十、办证提示

1、申请人应当在导游证有效期届满的三个月前提出申请,逾期提出申请的,不再办理导游证等级调整,并收缴原导游证。

2、导游证有效期自颁证或当导游人员年审结束之日起计算。

3、有下列情形之一的,不得进行导游证等级调整,并收缴原导游证:

(一)无民事行为能力或者限制民事行为的;

(二)患有传染性疾病的;

(三)受过刑事处罚的,过失犯罪的除外;

(四)被吊销导游证未逾三年的。

4、申请人办理中级以上双语或多语种导游证,应持身份证、各语种《导游员资格证》、所申请等级《X级导游员证书》、《劳动合同》或《相关旅游行业组织导游人员登记表》,向省旅游局监督管理处报送办证申报材料,口头提交办证申请。

5、申请人所在单位未在导游管理系统进行导游服务单位注册的,该旅行社、相关旅游行业组织应提交《旅行社、相关旅游行业组织基本情况登记表》。

6、申请人所在市州旅游局统一办理的,经办人持市州旅游局介绍信,以及申请人相关证件资料复印件,向省旅游局监督管理处报送申报材料,口头提交办证申请。

7、申请人委托注册机构代为办理的,经办人持注册机构介绍信,以及申请人身份证复印件、相关证件资料,向省旅游局监督管理处报送申报材料,口头提交办证申请。

8、申请人委托个人代为办理的,代理人应持本人身份证、代理委托书(注明代理事项,代理期限,代理人的姓名、身份、身份证号、工作单位、家庭住址等内容),以及申请人身份证复印件、相关证件资料,向省旅游局监督管理处报送申报材料,口头提交办证申请。

9、《X级导游员证书》复印件为具有证书编号、持证人照片、发证机关印章页面的A4纸复印,并签注“此件与原件相符,仅供办理导游证使用”的市州旅游局审核意见;身份证复印件为具有持证人照片、身份证号、签发机关名称页面的A4纸复印,并签注“此件与原件相符,仅供办理导游证使用”的市州旅游局审核意见。

*相关表格请登录甘肃旅游政务网点击《导游证办理程序》附件下载(http:///)。

*省政府政务大厅省旅游局窗口办事信息

办事地址:兰州市城关区中央广场1号(省政府正门东侧省政府政务大厅1楼省旅游局窗口)。

联系电话:0931-4609479、4609429。

*省旅游局监督管理处办事信息

办事地址:兰州市城关区农民巷2号(农民巷东口旅游大厦18楼1801室)。

联系电话:0931-8410169

*省旅游培训考试中心办事信息

办事地址:兰州市城关区农民2号(农民巷东口旅游大厦院内省旅游培训考试中心1楼办事窗口)

联系电话:0931-8411176、8411118

*省旅游局纪律监察部门信息

办公地址:兰州市城关区农民巷2号(农民巷东口旅游大厦17楼1710、1713室)。

程序升级 第5篇

关键词:SOC FPGA,高速智能总线,继电保护,在线升级

0 引言

SOC FPGA是目前芯片技术发展的新的方向, 它的优势在于在一个芯片上集成了处理器核和FPGA, 这样在继电保护装置里设计即插件时就非常方便。所以在现在的继电保护装置中, SOC FPGA被大量使用。以Microsemi公司的M2S005芯片为例, 介绍一种基于高速智能总线的SOC FPGA程序在线升级方案。

1 问题的提出

在SOC FPGA被大量使用后, 当SOC和FPGA运行程序需要升级时, 目前的方案是将插件拔出来用JTAG口烧写程序, 或者通过装置内部的串口进行程序烧写。由于继电保护装置是封闭的, 一旦投运后打开非常不便。用内部串口烧写时, 串口的速度很低, 烧写速度很慢, 一旦不成功, 还会导致升级不成功, 只能再次拔出插件用JTAG口烧写程序。由于存在这些不足, 再加上继电保护装置在停电检修时间很短的内就要完成升级, 显然这种方法不能满足现场的要求, 为此, 需要寻找一种方便快捷而且可靠的方法。

2 硬件设计

M2S005芯片是Microsemi公司生产的Smart Fusion2 So C FPGA系列的其中一款。

LVDS是一种低压差分信号技术接口。而M-LVDS (多点低电压差分信号) 是LVDS家族中的新成员, 主要用来优化多点互连应用, 其传输的高速率以及可靠性非常适合设计的需要。

硬件设计如图1所示。首先用M2S005芯片上的FPGA构建MLVDS总线, 该总线上挂若干个同样的插件。再由一片SPI FLASH实现M2S005芯片的配置文件的存储, 配置文件通过MLVDS总线传送给M2S的SOC, 其传输速率可达4M bit。M2S的SOC把配置文件存储在SPI FLASH里。

当配置文件存储结束后, SOC通过程序发出命令, 进入配置更新子程序, SOC把配置文件读入, 同时进行自身程序和FPGA程序的升级。此时, 升级程序由每块插件上的SOC独立运行, 不再占用整个装置的系统资源。

3 软件方案设计

基于以上硬件设计思路, 用C语言实现其软件功能。软件设计分为两部分:SOC通过MLVDS总线接受配置文件, 然后存储到SPI FLASH中, 程序如图2所示;SOC从SPI FLASH读出配置文件, 进行升级, 程序如图3所示。

4 结语

以上设计方案达到了以下的效果:升级时不需要打开机箱, 拔出插件;升级速度至少是原来速度的4倍, 在插件多的时候, 大大提高了效率;解决了原来一旦传输错误, 升级失败就要用JTAG来烧写的难题。

参考文献

[1]赵忠文, 曾峦, 熊伟.LVDS技术分析和应用设计[J].指挥技术学院学报, 2001, (06)

[2]高森美.Libero So C v11.4软件提升FPGA设计生产率[J].单片机与嵌入式系统应用, 2014, (10)

[3]郭之光.LVDS (Low-Voltage Differential Signaling) 设计及应用[D].西安:西安电子科技大学, 2007

[4]杨毅.高速LVDS接口单元接收器电路设计[D].沈阳:辽宁大学, 2008

程序升级 第6篇

TMS320F28335是TI公司DSP2812的升级产品, 是目前专门用于控制领域的最高性能的芯片, 具有浮点运算功能, 其控制精度高、运行速度快, 同时具有用于控制的各种接口, 很容易将系统的多种控制功能集中在一个芯片上完成, 目前已在各个控制领域的嵌入式系统中广泛的应用[1]。DSP28335嵌入了128×16的Flash存储器, 用于用户存放程序代码和运行数据。但对于大部分控制系统而言, 需要远程更改和进一步完善程序, 而利用仿真器的方式下载程序需要专业技术人员才能完成, 所以当需要修改程序时, 往往需要技术人员到设备的现场进行操作, 显然, 这种方式增加了设备的维护成本。为了解决这个问题, 就需要嵌入式系统具有软件的在线升级功能。目前, 软件在线升级已经成为嵌入式系统的不可缺少的功能, 为系统的调试、维护和功能的完善提供了一种有效的手段。而对于基于PCI总线的嵌入式系统而言, 可以采用基于PCI总线的DSP28335程序在线升级工具对程序进行更新。

2、程序设计

DSP28335程序在线升级的程序设计主要包括两部分的内容, 首先利用仿真器, 在DSP上烧写一个核程序, 该核程序主要完成从PCI总线发送来的DSP系统的运行程序代码, 由于DSP对Flash进行擦除和烧写时要求的实时性很高, 所以在设计此段程序时, 要求先将PCI发送来的数据存放到DSP内部的数据存储器中, 等接收完整个程序数据, 经过校正无误后, 程序关闭中断, 对Flash的程序存储区进行擦除、烧写程序。从整个在线烧写过程来看, 要实现程序的在线升级, 需要进行上位机端程序的设计和DSP端核程序的设计。

2.1 上位机端程序

上位机程序功能主要是将要下载的DSP程序的二进制代码, 按照通讯协议, 解析成数据包, 并通过PCI总线与DSP进行通讯, 将程序代码发送给DSP端核程序, 最后控制DSP端核程序进行程序的烧写工作。图1为上位机端程序的流程。

DSP28335的开发环境是CCS3.1, 其程序经过编译系统编译、链接后, 生成.out格式的程序代码, 在系统研制阶段时, 通常采用仿真器将程序代码烧写到DSP的片上Flash上, 但当系统进入工程应用阶段, 对于使用者和维护人员, 如果要更新程序, 就必须将.out格式的文件转化成能被DSPBootloader程序所能识别的引导表数据流格式后, 才能实现程序的远程、在线更新。同时, TI公司提供一个数据转换工具Hex2000, 此工具可以将.out文件转化成二进制的数据流文件[2]。上位机端程序首先读取数据流文件, 按照数据流文件的格式和与DSP端核程序的通讯协议将数据流的数据段部分分解成为多帧数据, 上位机端的程序与DSP端核程序通过PCI总线的方式进行通讯, 为了程序数据能够准确发送给DSP端程序, 上位机端程序采取了以下措施: (1) 每帧数据都自带校验和, 在DSP端核程序收到数据后, 对数据进行确认, 确认完毕后, 将确认帧发送给上位机端程序, 上位机端程序收到确认帧后, 发送下一帧数据; (2) 当全部数据发送完毕后, 上位机端程序将程序数据的总长度发送给DSP端程序, DSP端程序将收到的数据长度与总长度比较, 把比较的结果发送给上位机端程序, 实现了整个程序数据的总校验。

2.2 DSP端核程序

利用PCI总线, DSP端核程序接收从上位机端发送来的数据流文件, 其文件主要包含两部分, 一部分是系统程序的二进制代码, 一部分是用于对应存储程序代码的地址文件。为了DSP端程序准确无误的接收数据, 首先DSP程序关闭了占用RAM或Flash等外扩存储资源的应用程序代码, 保证了接收PCI数据的实时响应, 其次, 关闭了其他的外部中断, 只保留PCI中断, 保证接收数据时不受干扰。接收的程序数据首先被放在外扩的RAM上中, 再接收完整个数据后, 再进行程序的烧写, 这样的处理方法可以防止数据传输过程中如果出现意外, 影响原系统程序的正常工作。图3为DSP端程序的流程。

DSP核程序还有一个重要的功能是烧写程序的工作, 烧写程序是指D S P核程序按照程序数据的代码, 按照固定的地址写到TMS320F28335的片内Flash中去, 片内的Flash分成几个扇区, 但并不支持从其中一个扇区去擦出烧写另一个扇区, 所以DSP端核程序必须完全运行在片外的存储器中或片内的RAM中。程序的烧写主要是利用TI公司提供的API库函数, 对Flash进行擦除、烧写、和代码验证等工作。

3、程序在线升级的步骤

DSP28353程序在线升级具体实施过程主要分以下三个步骤: (1) 首先利用仿真器, 将DSP端核程序烧写完毕, 使DSP具有PCI总线的烧写功能, 此功能同时被嵌入到系统的应用程序中; (2) 将工程程序编译, 生成.OUT文件, 利用PCIFlash程序进行烧写。 (3) 程序烧写完成后, 将DSP电路板重新上电, 电路板即可运行新更新的程序, 完成了程序的远程下载更新功能。

4、结语

本文研究的PCI总线的DSP28335程序在线升级方法目前以成功应用到基于到DSP的控制系统上, 该技术的研究使DSP的程序的更新可以脱离仿真器, 为程序的更新和程序的远程维护提供了方便, 具有很强的实用性。

摘要:本文基于PCI总线的基础上, 对DSP28335程序的在线升级方法进行了研究, 开发了上位机端程序和DSP端核程序, 为DSP技术开发和维护人员提供了一个方便快捷的维护程序的方法。

关键词:DSP28335,程序烧写,引导装载

参考文献

[1]TMS320C28x DSP Reference Guide, Texas Instruments, 2001.

程序升级 第7篇

TMS320F28335内嵌256KB的Flash和34KB的SRAM, 用于用户存放程序代码和运行数据。但对于大部分控制系统而言, 需要升级和完善程序, 通常Flash写入的方法有:通过编程器写入, 这种方法简单快捷, 但是对于贴片Flash, 器件一旦焊上, 不便再取下来使用编程器写入程序;在研发阶段, TMS320F28335的应用程序通常都是通过仿真器和CCS集成开发环境来下载到DSP的内部Flash单元。而利用仿真器的方式下载程序, 对升级环境要求较多:计算机上必须安装专业的CCS开发环境, 必须配置仿真器, 并需要安装仿真器的驱动程序。需要专业技术人员才能完成, 所以当需要修改程序时, 往往需要技术人员到设备的现场进行操作, 显然, 这种方式工作量极大, 费时费力, 增加了设备的维护成本[1,2]。

为了解决这个问题, 就需要嵌入式系统具有软件的在线升级功能。方案是使用DSP系统的外部接口, 用PC机, 通过RS232标准串口将升级软件转换成的二进制文件传输给DSP的外部RAM, 这里选择外部RAM, 因为大多数情况下, 程序的数据量比较大, 内部RAM空间一般不足, 然后再由外部RAM烧写到内部Flash, 实现DSP的在线升级。

1 实现方法和系统功能结构 (1)

1.1 可传输的二进制文件的生成

利用TI公司的DSP集成软件开发环境对用户程序进行编译和连接生成的是通用目标文件格式 (COFF) 的文件。这种格式的目标文件结构复杂, 不仅包含了程序代码, 还包含了头文件、符号表、段地址及初始化段入口等其他的信息, 而且不能用常规方法打开为用户可读的形式[3]。COFF文件不能通过串口传输, 因此必须转换成普通的bin文件。方法是使用hex2000.exe将COFF文件转化为hex文件, 然后采用hex2bin.exe转换为bin文件。

TI公司提供的hex2000工具可以将COFF格式的目标文件转化成常见的16进制格式的数据流文件, 包括ASCII-Hex、Intel MCS-86、MotorolaS、TI-Tagged及Tektronix等类型。hex200的使用方式有命令行方式和批处理方式:

批处理方式可以多次使用, 比较方便, 本项目中使用的批处理文件内容为:

具体命令含义如下:

-boot转换所有段为可启动形式

-order MS指定输出文件为大模式

-ci8通过SCI启动, 8位模式

-map创建映射文件

-o指定一个输出文件名

-I指定输出文件为Intel格式

通过上面的处理可以得到TestPrj.hex的16进制文件。此时hex文件的内容就包括要烧写到Flash的代码数据, 数据结构见表1, 为了便于通过串口传输可以通过hex2bin得到TestPrj.bin文件。

hex文件内容根据批处理文件内命令的不同略有不同。

1.2 上位机软件的实现

上位机端程序首先读取数据流文件, 按照数据流文件格式和DSP端程序的通信协议将数据流的段部分分解成多帧数据, 并给每帧数据加上协议的报头等信息, 上位机端的程序与DSP端核程序通过RS232总线方式进行通信。上位机软件用于选择升级的文件, 其界面如图1所示。

1.3 DSP端底层程序

针对上述串口数据流, 在SCI的中断函数中将串口接收到的数据分别存放在外部RAM空间中。新代码下载到DSP的RAM后调用TI对Flash的接口函数库中的函数, 将新代码烧写到指定的Flash区域中, 从而实现在线升级, 其程序流程如图2所示。

能否成功调用Flash_API是在线升级的关键所在, TI公司提供了专用的Flash库文件, 用于在线烧写Flash。由于DSP芯片只有一个Flash区域, 而Flash的结构体系限制了同一时刻Flash只能执行一个操作, 同时Flash的库函数对时序的要求比较严格, 这两个因素要求必须把Flash的API函数拷贝到内部RAM运行, 为了提高各个部分的运行速度, 把整个程序都拷贝到内部RAM运行, 同时也满足了Flash API的运行环境。存储与运行空间的分布在cmd文件中有所体现, .text段放在内部RAM运行, 具体代码如下:

同样的方法把.bss、.cinit、.const及.econt等段都下载到Flash内, 但都是从RAM区域运行。Flash API除了在RAM运行外, 在调用相关函数前还需进行一些初始化, 如添加库文件初始化PLL等常规操作。同时对于Flash_CPUScaleFactor和Flash API回调函数的初始化也应注意, 即使不使用回调函数, 也应进行初始化, 防止程序陷阱。

Flash使用的库函数有:Flash_Erase, Flash_Program和Flash_Verify。为处理方便, 定义了结构体变量供函数使用, 定义的结构体struct HEADER{Uint32 BlockSize;Uint32 DestAddr;}BlockHeader, 升级函数通过BlockHeader结构体, 将升级程序写进Flash内。

1.4 DSP的软件复位

升级程序烧写完成以后, 利用TMS320F28335自带的软件看门狗实现软件复位重启, TMS320F28335的看门狗框图 (WDRST方式) 如图3所示。

TMS320F28335的看门狗有两种方式:WD-INT的中断唤醒方式和WDRST方式, 可以在SC-SR寄存器中选定其中一种[4]。这里是要求系统复位重启, 而WDINT是实时监控系统的, 并不能按要求实现软件复位, 所以需要WDRST。复位模式下, 当看门狗计数器达到最大计数值时, WDRST信号将会持续拉低XRS引脚512个信号周期, 从而使得控制器复位[4]。

2 实验效果

用笔者提供的方法生成bin文件, 使用编写的上位机软件, 通过串口向DSP烧写更新程序, 升级成功界面如图4所示。

经实验验证, 通信稳定, 升级效果较好。

3 结束语

介绍了基于串口通信的DSP程序升级方法, 产品安装到现场后, 程序的升级和维护可以通过串口方式来完成, 简单明了的升级界面给用户良好的使用体验, 给产品的升级和维护带来了极大的方便, 提高了系统可维护性、可扩展性和灵活度, 具有较好的使用价值, 在其他系列的DSP上也有很强的通用性。对于不便到达现场的设备, 如果加上GPRS模块或者网络接口可以实现远程升级, 更加提高了工作效率, 给维护升级带来极大便利。

摘要:为解决DSP程序升级和维护的问题, 在研究DSP系统结构、Flash烧写和程序自举原理的基础上, 设计了基于串口通信的DSP系统程序的升级软硬件系统。用户可以通过上位机软件方便地对DSP程序进行升级维护, 并实现程序的自加载, 具有较强的实用性。

关键词:在线升级,TMS320F28335,串口

参考文献

[1]吴小朦, 李正宇, 周进松.通过RS232串口实现DSP并行FLASH程序升级[J].通信技术, 2012, 45 (1) :141~143.

[2]王敏, 黄战华, 孙秋实, 等.DSP系统程序远程更新的研究与实现[J].计算机工程与应用, 2012, 48 (8) :109~111.

[3]苗军, 倪奇志.COFF文件分析提取器的实现及其应用[J].现代电子技术, 2009, 32 (2) :42~44.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

【程序升级】相关文章:

煤矿转型升级中的项目建设程序06-21

扩容升级05-05

组织升级05-07

升级测试05-08

质量升级05-14

升级路线05-21

升级障碍06-13

整合升级07-05

升级拓展07-08

升级建议07-09

上一篇:情感体会下一篇:多功能电子时钟设计