CN106528336A - 一种防止bms软件升级失败导致不能重新开机启动的方法 - Google Patents
一种防止bms软件升级失败导致不能重新开机启动的方法 Download PDFInfo
- Publication number
- CN106528336A CN106528336A CN201610946206.2A CN201610946206A CN106528336A CN 106528336 A CN106528336 A CN 106528336A CN 201610946206 A CN201610946206 A CN 201610946206A CN 106528336 A CN106528336 A CN 106528336A
- Authority
- CN
- China
- Prior art keywords
- programming
- application program
- dflash
- program
- flag bit
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种防止BMS软件升级失败导致不能重新开机启动的方法,在应用程序升级时,在BMS软件外部EEPROM和DFLASH中烧写标志字符,在应用程序刷死时,通过识别在BMS软件外部EEPROM和DFLASH中烧写标志字符,防止应用程序刷死。本发明所述的一种防止BMS软件升级失败导致不能重新开机启动的方法可以有效的防止BMS软件升级时应用程序被刷死。
Description
技术领域
本发明属于电动汽车领域,尤其是涉及一种防止BMS软件升级失败导致不能重新开机启动的方法。
背景技术
处于开发后期的产品BMS将不再提供程序调试接口,需要用专门的上位机设备来完成应用程序的更新。BMS需要集成到电池包中,通过Bootloader技术来实现BMS软件代码的更新。Bootloader功能的稳定性已经成为BMS控制器开发中不可或缺的部分。
现有技术中,经常在Bootloader更新程序过程中经常发生程序刷死的情况。如果在烧写程序的过程中,BMS中的程序被刷死,则只能通过拆电池包,更换BMS硬件。无疑这样给BMS后期的维护增加了很多成本。
发明内容
有鉴于此,本发明旨在提出一种防止BMS软件升级失败导致不能重新开机启动的方法,以解决BMS软件升级的过程中,应用程序被刷死的难题。
为达到上述目的,本发明的技术方案是这样实现的:
一种防止BMS软件升级失败导致不能重新开机启动的方法,包括烧写标志位,在外部EEPROM和DFLASH中烧写标志字符,防止应用程序刷死的方法。
进一步的,烧写标志位的方法如下:
S21、收到上位机烧写指令;
S22、应用程序把外部EEPROM和DFLASH中烧写标志位,写入标志字符;
S23、烧写完标志位,应用程序通过写死看门狗复位,重启应用程序。
进一步的,防止应用程序刷死的方法如下:
S31、应用程序重新启动后,首先进入Bootloader程序;
S32、Bootloader程序如果收到上位机强制烧写指令则直接进行程序下载,进行应用程序烧写;
S33、如果未收到,则去判断外部EEPROM和DFLASH中烧写标志位是否为标志字符,如果外部EEPROM和DFLASH中的烧写标志位一致,且都是标志字符,则强制进行应用程序烧写;
S34、如果外部EEPROM和DFLASH中的烧写标志位不一致,则不烧写,直接进入应用程序。
进一步的,所述Bootloader程序中加入了识别上位机强制烧写程序的指令,在程序重启的瞬间识别上位机发送的烧写程序的指令。
相对于现有技术,本发明所述的一种防止BMS软件升级失败导致不能重新开机启动的方法具有以下优势:
本发明所述的防止BMS软件升级失败导致不能重新开机启动的方法可以有效的防止BMS软件升级过程时,应用程序被刷死。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的一种防止BMS软件升级失败导致不能重新开机启动的方法流程图;
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
如图1所示,一种防止BMS软件升级失败导致不能重新开机启动的方法,其特征在于:包括烧写标志位,在外部EEPROM和DFLASH中烧写标志字符,防止应用程序刷死的方法。
烧写标志位的方法如下:
S21、收到上位机烧写指令;
S22、应用程序把外部EEPROM和DFLASH中烧写标志位,写入标志字符;
S23、烧写完标志位,应用程序通过写死看门狗复位,重启应用程序。
防止应用程序刷死的方法如下:
S31、应用程序重新启动后,首先进入Bootloader程序;
S32、Bootloader程序如果收到上位机强制烧写指令则直接进行程序下载,进行应用程序烧写;
S33、如果未收到,则去判断外部EEPROM和DFLASH中烧写标志位是否为标志字符,如果外部EEPROM和DFLASH中的烧写标志位一致,且都是标志字符,则强制进行应用程序烧写;
S34、如果外部EEPROM和DFLASH中的烧写标志位不一致,则不烧写,直接进入应用程序。
所述Bootloader程序中加入了识别上位机强制烧写程序的指令,在程序重启的瞬间识别上位机发送的烧写程序的指令。
收到上位机发送的烧写指令,外部EEPROM和DFLASH中烧写标志位写入标志字符,所述标志字符为0xA5A5A5A5。
所述外部EEPROM带有写保护功能,防止被复写。
Bootloader程序中加入了可以识别上位机强制烧写程序的指令,这样就可以在程序重启的瞬间识别上位机发送的烧写程序的指令。如果识别到上位机发送的烧写程序指令,就会强制烧写新的应用程序;如果识别不到上位机发送的烧写程序指令,则去判断外部EEPROM和DFLASH中烧写标志位是否为标志字符,如果标志位一致就会烧写应用程序,如果标志位不一致,则会返回到应用程序,防止刷死的应用程序不能再次被刷新。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种防止BMS软件升级失败导致不能重新开机启动的方法,其特征在于:在应用程序升级时,在BMS软件外部EEPROM和DFLASH中烧写标志字符,在应用程序刷死时,通过识别在BMS软件外部EEPROM和DFLASH中烧写的标志字符,防止应用程序刷死。
2.根据权利要求1所述的防止BMS软件升级失败导致不能重新开机启动的方法,其特征在于,烧写标志位的方法如下:
S21、收到上位机烧写指令;
S22、应用程序把外部EEPROM和DFLASH中烧写标志位,写入标志字符;
S23、烧写完标志位,应用程序通过写死看门狗复位,重启应用程序。
3.根据权利要求1所述的防止BMS软件升级失败导致不能重新开机启动的方法,其特征在于,防止应用程序刷死的方法如下:
S31、应用程序重新启动后,首先进入Bootloader程序;
S32、Bootloader程序如果收到上位机强制烧写指令则直接进行程序下载,进行应用程序烧写;
S33、如果未收到,则去判断外部EEPROM和DFLASH中烧写标志位是否为标志字符,如果外部EEPROM和DFLASH中的烧写标志位一致,且都是标志字符,则强制进行应用程序烧写;
S34、如果外部EEPROM和DFLASH中的烧写标志位不一致,则不烧写,直接进入应用程序。
4.根据权利要求3所述的防止BMS软件升级失败导致不能重新开机启动的方法,其特征在于:所述Bootloader程序中加入了识别上位机强制烧写程序的指令,在程序重启的瞬间识别上位机发送的烧写程序的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610946206.2A CN106528336B (zh) | 2016-11-02 | 2016-11-02 | 一种防止bms软件升级失败导致不能重新开机启动的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610946206.2A CN106528336B (zh) | 2016-11-02 | 2016-11-02 | 一种防止bms软件升级失败导致不能重新开机启动的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106528336A true CN106528336A (zh) | 2017-03-22 |
CN106528336B CN106528336B (zh) | 2019-08-20 |
Family
ID=58293215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610946206.2A Active CN106528336B (zh) | 2016-11-02 | 2016-11-02 | 一种防止bms软件升级失败导致不能重新开机启动的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106528336B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015833A (zh) * | 2017-04-14 | 2017-08-04 | 湖南威胜信息技术有限公司 | 嵌入式设备应用程序的自恢复方法 |
CN112905196A (zh) * | 2019-11-19 | 2021-06-04 | 广州汽车集团股份有限公司 | 软件更新的方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130185563A1 (en) * | 2012-01-12 | 2013-07-18 | Gueorgui Djabarov | Multiple System Images for Over-The-Air Updates |
US20140310698A1 (en) * | 2013-04-10 | 2014-10-16 | Pantech Co., Ltd. | Apparatus and method for upgrading firmware of mobile terminal |
CN105486951A (zh) * | 2015-12-10 | 2016-04-13 | 安徽锐能科技有限公司 | 一种便携式电池管理系统诊断仪及其工作方法 |
CN105700919A (zh) * | 2016-01-04 | 2016-06-22 | 惠州市蓝微新源技术有限公司 | 一种bms应用程序快速更新方法及更新系统 |
-
2016
- 2016-11-02 CN CN201610946206.2A patent/CN106528336B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130185563A1 (en) * | 2012-01-12 | 2013-07-18 | Gueorgui Djabarov | Multiple System Images for Over-The-Air Updates |
US20140310698A1 (en) * | 2013-04-10 | 2014-10-16 | Pantech Co., Ltd. | Apparatus and method for upgrading firmware of mobile terminal |
CN105486951A (zh) * | 2015-12-10 | 2016-04-13 | 安徽锐能科技有限公司 | 一种便携式电池管理系统诊断仪及其工作方法 |
CN105700919A (zh) * | 2016-01-04 | 2016-06-22 | 惠州市蓝微新源技术有限公司 | 一种bms应用程序快速更新方法及更新系统 |
Non-Patent Citations (1)
Title |
---|
王涛: "基于CAN诊断汽车控制器刷新软件的设计与实现", 《中国硕士学位论文全文数据库》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015833A (zh) * | 2017-04-14 | 2017-08-04 | 湖南威胜信息技术有限公司 | 嵌入式设备应用程序的自恢复方法 |
CN112905196A (zh) * | 2019-11-19 | 2021-06-04 | 广州汽车集团股份有限公司 | 软件更新的方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106528336B (zh) | 2019-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101957807B (zh) | USB设备识别主机Windows操作系统版本类型的方法 | |
CN103748569B (zh) | Usb设备的无驱动操作的系统和方法 | |
CN102033770B (zh) | 移动终端的触摸屏固件升级方法及装置 | |
CN103218280A (zh) | 一种usb设备的硬件通用测试方法 | |
CN106909362B (zh) | Bmc固件生成的方法和装置、bmc系统启动的方法和装置 | |
CN106303709B (zh) | 一种机顶盒及其应用程序升级方法、系统 | |
CN104008060A (zh) | 插件与宿主兼容性的检测方法及检测服务器 | |
CN105718281A (zh) | 一种触摸屏固件升级方法及装置 | |
CN106528336A (zh) | 一种防止bms软件升级失败导致不能重新开机启动的方法 | |
CN103164237A (zh) | 固件升级方法及系统 | |
CN102446141B (zh) | 用于实现写保护控制的装置和方法 | |
CN102693144A (zh) | 一种Android移动终端的电容屏固件升级的方法 | |
CN110321170A (zh) | 开机方法 | |
CN106598781A (zh) | 一种系统软件升级方法 | |
CN102609290B (zh) | 电子产品的软件升级方法 | |
CN103019755A (zh) | 嵌入式系统中多cpu的无线程序下载方法 | |
CN106201608A (zh) | 计算机uefi固件更新方法 | |
CN102890662A (zh) | 通过对usb hid设备进行二次枚举以识别主机操作系统的方法 | |
CN104428751A (zh) | 程序数据的更新方法及设备 | |
CN105138337A (zh) | 一种插件适配方法及插件适配装置 | |
CN102609285A (zh) | 一种驱动智能匹配加载的方法 | |
CN106155713B (zh) | 启动信息管理方法及装置 | |
CN108153548A (zh) | 一种emmc固件升级方法和装置 | |
CN105373422B (zh) | 控制终端设备进入下载模式的方法、终端设备及计算机设备 | |
CN103870564A (zh) | 一种数据更新方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |