CN108845823A - 一种基于f2812芯片的软件在线升级方法 - Google Patents
一种基于f2812芯片的软件在线升级方法 Download PDFInfo
- Publication number
- CN108845823A CN108845823A CN201810790518.8A CN201810790518A CN108845823A CN 108845823 A CN108845823 A CN 108845823A CN 201810790518 A CN201810790518 A CN 201810790518A CN 108845823 A CN108845823 A CN 108845823A
- Authority
- CN
- China
- Prior art keywords
- software
- resident
- resident software
- chip
- test equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于F2812芯片的软件在线升级方法,该方法包括如下步骤:步骤一:将驻留软件和初始工作软件存储在F2812芯片的FLASH空间中;步骤二:上电,驻留软件启动,判断上电时间是否在时间窗内,如果上电时间在时间窗内,驻留软件接收升级指令,驻留软件进一步接收新的工作软件,把初始工作软件擦除,并写入新的工作软件,新的工作软件开始工作;如果上电时间不在时间窗内,驻留软件对存有初始工作软件的片区进行校验。本发明提高了工作效率,降低运行维护成本。
Description
技术领域
本发明属于嵌入式系统运行维护领域,尤其涉及一种基于F2812芯片的软件在线升级方法。
背景技术
嵌入式系统已经广泛地被应用于各种控制、测量等装备制造领域中。嵌入式软件相较硬件电路有更改便利、没有贮存期、更改不会引入新元器件或可靠性变化等优点。
随之而来的是软件升级成为产品研制及后期维护中重要的日常工作。目前针对F2812硬件平台的嵌入式设备一般需要通过电路板上的JTAG接口进行升级。需要首先打开设备的密封结构,再将仿真器与电路板进行物理连接,升级完成后,重新组装密封设备,补做必要的实验。过程十分不便,并且对于结构件和密封都造成损耗。如果设备数量较多,对于结构件的拆装和实验将耗费人力、物力、财力。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种基于F2812芯片的软件在线升级方法,能够在系统中完成软件升级,无需将设备返厂升级,并且在升级中出现意外的情况下,仍无需分解系统返厂维修,再次进行一次正常的软件升级即可,解决F2812嵌入式软件只能通过JTAG接口进行升级的问题,降低运行维护成本。
本发明目的通过以下技术方案予以实现:一种基于F2812芯片的软件在线升级方法,所述方法包括如下步骤:步骤一:将驻留软件和初始工作软件存储在F2812芯片的FLASH空间中;步骤二:上电,驻留软件启动,判断上电时间是否在时间窗内,如果上电时间在时间窗内,驻留软件接收升级指令,收到升级指令后,驻留软件进一步接收新的工作软件,把初始工作软件擦除,并写入新的工作软件,则驻留软件跳转进入新的工作软件,新的工作软件开始工作;如果上电时间不在时间窗内,驻留软件对存有初始工作软件的片区进行校验,采用CRC算法进行校验,如果校验成功,则驻留软件跳转进入初始工作软件,初始工作软件开始工作;如果校验不成功,则驻留软件接收升级指令,收到升级指令后,驻留软件进一步接收新的工作软件,把初始工作软件擦除,并写入新的工作软件,则驻留软件跳转进入新的工作软件,新的工作软件开始工作。
上述基于F2812芯片的软件在线升级方法中,在步骤二中,时间窗为30s-1min。
上述基于F2812芯片的软件在线升级方法中,在步骤一中,将F2812芯片的FLASH空间分为片区A~片区J共10个片区,并将驻留软件的存储地址设置为片区A,初始工作软件的存储地址设置为片区C。
上述基于F2812芯片的软件在线升级方法中,在步骤二中,驻留软件接收测试设备的升级指令,收到升级指令后,驻留软件进一步接收测试设备的新的工作软件的具体过程:测试设备通过1553B总线的BC端发送升级指令,驻留软件通过1553B总线回复测试设备,测试设备通过1553B总线的BC端给驻留软件发送新的工作软件。
上述基于F2812芯片的软件在线升级方法中,在测试设备通过1553B总线的BC端给驻留软件发送新的工作软件中,新的工作软件包括多包数据,测试设备通过1553B总线的BC端对每包数据分别发送给驻留软件,驻留软件接收到每包数据后会回复给测试设备,如果测试设备对回复判断为错误,则测试设备中止发送新的工作软件。如果测试设备对接收到每包数据后的回复判断均为正确,则测试设备通过1553B总线的BC端给驻留软件发送烧写指令。
上述基于F2812芯片的软件在线升级方法中,在步骤二中,采用16位CRC算法进行校验。
上述基于F2812芯片的软件在线升级方法中,采用16位CRC算法进行校验包括:初始16位CRC校验码为0,当需要计算当前字节数据交验码时,首先将上一步16位CRC校验码的高8位暂存,将上一步16位CRC校验码的低8位左移8位,之后,暂存的高8位和当前字节相加后查表得到16位数据,再加上上一步16位CRC校验码得到新的16位CRC校验码,当前字节计算完,再计算下一字节,直至所有数据计算完毕得到总CRC校验码。
本发明与现有技术相比具有如下有益效果:
本发明能够在系统中完成软件升级,无需将设备返厂升级,并且在升级中出现意外的情况下,仍无需分解系统返厂维修,再次进行一次正常的软件升级即可,解决F2812嵌入式软件只能通过JTAG接口进行升级的问题,提高了工作效率,降低运行维护成本。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例提供的基于F2812芯片的软件在线升级方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本实施例为基于F2812芯片升级方法,与F2812芯片通讯可采用多种方式,下面以1553B通讯为例说明具体实施方式。
本实施例支持以下两种使用场景:
场景一:升级正常。当需要进行软件升级时,按正确的方式将设备通过1553B接口与测试设备连接,对软件进行升级,升级完成后断电,重新上电,设备就能开始运行升级后的软件。
场景二:升级异常处理。在正常升级的工作流程中,如果出现某种意外情况导致工作软件破损而无法通过校验。设备启动后将不会跳转至工作软件,而继续等待软件升级。直至完成一次正常的升级。
图1是本发明实施例提供的基于F2812芯片的软件在线升级方法的流程图。如图1所示,该方法包括如下步骤:
步骤一:将驻留软件和初始工作软件存储在F2812芯片的FLASH空间中;
步骤二:上电,驻留软件启动,判断上电时间是否在时间窗(30s-1min)内,如果上电时间在时间窗内,驻留软件接收升级指令,收到升级指令后,驻留软件进一步接收新的工作软件,把初始工作软件擦除,并写入新的工作软件,则驻留软件跳转进入新的工作软件,新的工作软件开始工作;
如果上电时间不在时间窗(30s-1min)内,驻留软件对存有初始工作软件的片区进行校验,采用CRC算法进行校验,如果校验成功,则驻留软件跳转进入初始工作软件,初始工作软件开始工作;如果校验不成功,则驻留软件接收升级指令,收到升级指令后,驻留软件进一步接收新的工作软件,把初始工作软件擦除,并写入新的工作软件,则驻留软件跳转进入新的工作软件,新的工作软件开始工作。
在步骤一中,将F2812芯片的FLASH空间分为片区A~片区J共10个片区,并将驻留软件的存储地址设置为片区A,初始工作软件的存储地址设置为片区C。
在步骤二中,驻留软件接收测试设备的升级指令,收到升级指令后,驻留软件进一步接收测试设备的新的工作软件的具体过程:测试设备通过1553B总线的BC端发送升级指令,驻留软件通过1553B总线回复测试设备,测试设备通过1553B总线的BC端给驻留软件发送新的工作软件。
在测试设备通过1553B总线的BC端给驻留软件发送新的工作软件中,新的工作软件包括多包数据,测试设备通过1553B总线的BC端对每包数据分别发送给驻留软件,驻留软件接收到每包数据后会回复给测试设备,如果测试设备对回复判断为错误,则测试设备中止发送新的工作软件。如果测试设备对接收到每包数据后的回复判断均为正确,则测试设备通过1553B总线的BC端给驻留软件发送烧写指令。
在步骤二中,采用16位CRC算法进行校验。具体包括:初始16位CRC校验码为0,当需要计算当前字节数据交验码时,首先将上一步16位CRC校验码的高8位暂存,将上一步16位CRC校验码的低8位左移8位,之后,暂存的高8位和当前字节相加后查表得到16位数据,再加上上一步16位CRC校验码得到新的16位CRC校验码,当前字节计算完,再计算下一字节,直至所有数据计算完毕得到总CRC校验码。
总体方案如图1所示采用,嵌入式系统采用上电二次引导,首先运行驻留程序,在适当时机进入工作程序。升级入口采用上电时间窗,即在上电x秒到y秒之间,允许升级,之后处于正常工作状态时,不允许升级。在升级时以1553B通讯接口为例,设计通讯协议完成升级。
F2812芯片片内RAM 18K×16b、片内FLASH 128K×16b;
具体位置分别为:片内RAM:0x40~0x400、0x8000~0x9fff、0x3f8000~0x3f9fff;片内Flash:0x3d8000~0x3f7ff7;
驻留程序和工作程序均为非易失存储,需要存放在FLASH空间中。片上128K FLASH空间还有具体代码段,每个段可以独立擦写。从高地址向低地址共分为段A~段J,10个片区,其中段A为上电后程序的口,入口地址为0x3F7FF6~0x3F7FF7。上述FLASH段中,B、I、J的大小位8K,其余段均为16K。一般工作程序需要至少16K的FLASH存储空间。
将段A作为驻留程序的存储空间。考虑安全性因素,暂不使用段B,使驻留程序与工作程序在物理上有分隔。
从段C开始放置工作程序,后续片区的使用均由工作程序根据当前任务确定。驻留程序不再干涉。
在驻留程序设计时,为保证软件启动的安全性,采用判断工作程序是否有效的方式,条件跳转进入工作程序。即在上电运行驻留程序后,检验是否有有效的工作程序,如果有则执行跳转,进入工作程序。如果没有则等待软件升级。防止在工作程序损坏或为空白时跳转进入工作程序,使程序运行到不可控分支。
驻留程序软件通过1553B总线与外部进行通讯,测试设备作为BC,本机F2812作为RT。整体流程需要首先进行握手,之后进行升级数据的传输,最后升级结束对于已升级程序的校验。
首先握手信号由BC端发出,RT在规定时间内响应,表明RT已经进入等待升级状态,可以进行后续交互。与普通的握手不同,之后需要进行的是软件升级。软件升级的第一个步骤是擦除FLASH,即擦除老的软件。所以,在这种背景下可以将握手与擦除合并,这样当RT回复命令的时候,不仅表示已切换到升级状态,还完成了相应片区的擦除,可以传送新软件的数据了。
由于1553B帧长度32个字的限制,软件升级数据需要多包交互。出于安全性考虑,采用一问一答的模式。即BC发送一个数据帧,RT回复一帧信息,表示接收校验无误,如此往复直到发送完全布数据。如果中间有一帧RT回复出现错误,BC立即终止本次升级。这样可以在错误发生的第一时间终止,重新升级。避免传输中间帧有错误,却在升级完成后才知晓,造成时间上不必要的浪费。
最后,需要一个软件升级是否成功的标志。本方案采取计算升级后新软件的CRC校验和。所以,设计一条指令读取整个软件的CRC校验和,当BC收到的校验和与自身计算的校验和一致时,认为软件升级成功。
升级入口采用上电时间窗。时间窗的具体位置和宽度一般根据嵌入式系统的整体功能性能要求确定。本发明以升级入口时间窗为上电后1s开始,宽度为1s为例实现。
CRC校验方法:CRC计算顺序由低字节到高字节顺序处理。
本实施例能够在系统中完成软件升级,无需将设备返厂升级,并且在升级中出现意外的情况下,仍无需分解系统返厂维修,再次进行一次正常的软件升级即可,解决F2812嵌入式软件只能通过JTAG接口进行升级的问题,降低运行维护成本。
以上所述的实施例只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (7)
1.一种基于F2812芯片的软件在线升级方法,其特征在于,所述方法包括如下步骤:
步骤一:将驻留软件和初始工作软件存储在F2812芯片的FLASH空间中;
步骤二:上电,驻留软件启动,判断上电时间是否在时间窗内,如果上电时间在时间窗内,驻留软件接收升级指令,收到升级指令后,驻留软件进一步接收新的工作软件,把初始工作软件擦除,并写入新的工作软件,则驻留软件跳转进入新的工作软件,新的工作软件开始工作;
如果上电时间不在时间窗内,驻留软件对存有初始工作软件的片区进行校验,采用CRC算法进行校验,如果校验成功,则驻留软件跳转进入初始工作软件,初始工作软件开始工作;如果校验不成功,则驻留软件接收升级指令,收到升级指令后,驻留软件进一步接收新的工作软件,把初始工作软件擦除,并写入新的工作软件,则驻留软件跳转进入新的工作软件,新的工作软件开始工作。
2.根据权利要求1所述的基于F2812芯片的软件在线升级方法,其特征在于:在步骤二中,时间窗为30s-1min。
3.根据权利要求1所述的基于F2812芯片的软件在线升级方法,其特征在于:在步骤一中,将F2812芯片的FLASH空间分为片区A~片区J共10个片区,并将驻留软件的存储地址设置为片区A,初始工作软件的存储地址设置为片区C。
4.根据权利要求1所述的基于F2812芯片的软件在线升级方法,其特征在于:在步骤二中,驻留软件接收测试设备的升级指令,收到升级指令后,驻留软件进一步接收测试设备的新的工作软件的具体过程:测试设备通过1553B总线的BC端发送升级指令,驻留软件通过1553B总线回复测试设备,测试设备通过1553B总线的BC端给驻留软件发送新的工作软件。
5.根据权利要求4所述的基于F2812芯片的软件在线升级方法,其特征在于:在测试设备通过1553B总线的BC端给驻留软件发送新的工作软件中,新的工作软件包括多包数据,测试设备通过1553B总线的BC端对每包数据分别发送给驻留软件,驻留软件接收到每包数据后会回复给测试设备,如果测试设备对回复判断为错误,则测试设备中止发送新的工作软件。如果测试设备对接收到每包数据后的回复判断均为正确,则测试设备通过1553B总线的BC端给驻留软件发送烧写指令。
6.根据权利要求1所述的基于F2812芯片的软件在线升级方法,其特征在于:在步骤二中,采用16位CRC算法进行校验。
7.根据权利要求6所述的基于F2812芯片的软件在线升级方法,其特征在于:采用16位CRC算法进行校验包括:初始16位CRC校验码为0,当需要计算当前字节数据交验码时,首先将上一步16位CRC校验码的高8位暂存,将上一步16位CRC校验码的低8位左移8位,之后,暂存的高8位和当前字节相加后查表得到16位数据,再加上上一步16位CRC校验码得到新的16位CRC校验码,当前字节计算完,再计算下一字节,直至所有数据计算完毕得到总CRC校验码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810790518.8A CN108845823B (zh) | 2018-07-18 | 2018-07-18 | 一种基于f2812芯片的软件在线升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810790518.8A CN108845823B (zh) | 2018-07-18 | 2018-07-18 | 一种基于f2812芯片的软件在线升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108845823A true CN108845823A (zh) | 2018-11-20 |
CN108845823B CN108845823B (zh) | 2021-07-13 |
Family
ID=64197890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810790518.8A Active CN108845823B (zh) | 2018-07-18 | 2018-07-18 | 一种基于f2812芯片的软件在线升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108845823B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933347A (zh) * | 2018-11-23 | 2019-06-25 | 航天恒星科技有限公司 | 一种基于1553b总线的多嵌入式处理器软件可靠升级方法 |
CN111176675A (zh) * | 2019-12-03 | 2020-05-19 | 北京星际荣耀空间科技有限公司 | 一种芯片应用程序的升级应用方法 |
CN114168171A (zh) * | 2021-11-08 | 2022-03-11 | 陕西千山航空电子有限责任公司 | 一种程序在线分段升级方法及其应用 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7082495B2 (en) * | 2002-06-27 | 2006-07-25 | Microsoft Corporation | Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory |
US20090271780A1 (en) * | 2008-04-24 | 2009-10-29 | Moschip Semiconductor Technology Limited | Automatic complete firmware upgrade |
CN101820447A (zh) * | 2010-03-31 | 2010-09-01 | 青岛海信宽带多媒体技术有限公司 | 软件升级方法及升级装置 |
CN105656659A (zh) * | 2014-12-02 | 2016-06-08 | 中兴通讯股份有限公司 | 一种网元升级的管理方法及装置 |
CN106502723A (zh) * | 2016-09-29 | 2017-03-15 | 四川九洲电器集团有限责任公司 | 用于实现fpga程序动态升级及自加载的装置及方法 |
-
2018
- 2018-07-18 CN CN201810790518.8A patent/CN108845823B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7082495B2 (en) * | 2002-06-27 | 2006-07-25 | Microsoft Corporation | Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory |
US20090271780A1 (en) * | 2008-04-24 | 2009-10-29 | Moschip Semiconductor Technology Limited | Automatic complete firmware upgrade |
CN101820447A (zh) * | 2010-03-31 | 2010-09-01 | 青岛海信宽带多媒体技术有限公司 | 软件升级方法及升级装置 |
CN105656659A (zh) * | 2014-12-02 | 2016-06-08 | 中兴通讯股份有限公司 | 一种网元升级的管理方法及装置 |
CN106502723A (zh) * | 2016-09-29 | 2017-03-15 | 四川九洲电器集团有限责任公司 | 用于实现fpga程序动态升级及自加载的装置及方法 |
Non-Patent Citations (1)
Title |
---|
姜建平等: ""基于TMS320F2812的通用鱼雷信号模拟器的软件设计"", 《南昌大学学报(工科版)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933347A (zh) * | 2018-11-23 | 2019-06-25 | 航天恒星科技有限公司 | 一种基于1553b总线的多嵌入式处理器软件可靠升级方法 |
CN111176675A (zh) * | 2019-12-03 | 2020-05-19 | 北京星际荣耀空间科技有限公司 | 一种芯片应用程序的升级应用方法 |
CN114168171A (zh) * | 2021-11-08 | 2022-03-11 | 陕西千山航空电子有限责任公司 | 一种程序在线分段升级方法及其应用 |
Also Published As
Publication number | Publication date |
---|---|
CN108845823B (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102495744B (zh) | 基于can总线的电动汽车电控设备控制软件升级方法 | |
CN108845823A (zh) | 一种基于f2812芯片的软件在线升级方法 | |
CN104090796B (zh) | 一种嵌入式设备程序更新方法和系统 | |
CN104102518B (zh) | 一种双cpu系统及其程序升级方法 | |
CN106227572A (zh) | 一种变频器控制系统程序升级方法 | |
CN104899065A (zh) | 一种可批量软件在线恢复与软件在线升级的方法和系统 | |
CN109358887B (zh) | 一种单片机程序的在线升级方法、装置及系统 | |
CN112910714B (zh) | 具有主从机结构的物联网终端设备的远程固件升级方法 | |
CN103761122A (zh) | 一种芯片固件的升级方法和系统 | |
CN109189445A (zh) | 一种物联网设备程序升级的方法 | |
CN106569833B (zh) | 一种具有二级boot的dsp程序在线升级方法 | |
CN103226484A (zh) | 一种星载综合电子系统程序的在轨更新方法 | |
CN107832065A (zh) | 固件升级方法、净水器、升级系统及可读存储介质 | |
CN101183330A (zh) | 嵌入式系统的在线调试系统及其调试方法 | |
CN108182078B (zh) | 一种优化的弹载设备不拆弹软件在线升级方法 | |
CN104793975A (zh) | 电子控制单元中应用程序的更新方法及装置 | |
CN109189434A (zh) | 一种电能表的在线升级方法 | |
CN112433769A (zh) | 一种bmc启动方法、装置、计算机设备及存储介质 | |
CN107797812A (zh) | 一种充电机远程在线升级方法及系统 | |
CN106598654A (zh) | 一种在线更新PowerPC主板引导芯片的方法 | |
CN109766140A (zh) | 一种机顶盒启动异常的定位方法及装置 | |
CN100570560C (zh) | 启动芯片软件版本信息设置方法和装置 | |
CN108958752A (zh) | 单片机在线升级系统及方法 | |
CN116088911A (zh) | 一种分布式io的固件批量升级系统、方法及终端装置 | |
CN104391718A (zh) | 一种ePLC程序远程下载方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |