CN107015833A - 嵌入式设备应用程序的自恢复方法 - Google Patents

嵌入式设备应用程序的自恢复方法 Download PDF

Info

Publication number
CN107015833A
CN107015833A CN201710244258.XA CN201710244258A CN107015833A CN 107015833 A CN107015833 A CN 107015833A CN 201710244258 A CN201710244258 A CN 201710244258A CN 107015833 A CN107015833 A CN 107015833A
Authority
CN
China
Prior art keywords
programs
bootload
flash
control chip
application program
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
Application number
CN201710244258.XA
Other languages
English (en)
Other versions
CN107015833B (zh
Inventor
田丰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Wasion Information Technology Co Ltd
Original Assignee
Hunan Wasion Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan Wasion Information Technology Co Ltd filed Critical Hunan Wasion Information Technology Co Ltd
Priority to CN201710244258.XA priority Critical patent/CN107015833B/zh
Publication of CN107015833A publication Critical patent/CN107015833A/zh
Application granted granted Critical
Publication of CN107015833B publication Critical patent/CN107015833B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种嵌入式设备应用程序的自恢复方法,包括开发控制芯片的二级bootload程序和工厂程序,得到编译文件,并烧录到Flash中;若控制芯片的应用程序无法正常启动,则控制芯片重启,一级bootload程序自动加载并加载二级bootload程序;检测I/O引脚电平信号变化,从Flash中加载工厂程序;工厂程序读取嵌入式设备通信接口数据,完成应用程序的读取并存储到Flash中;控制芯片再次重启,一级bootload程序自动加载并加载二级bootload程序,从Flash中加载存储的应用程序,完成控制芯片程序的自恢复。本发明使得控制芯片应用程序的自行恢复功能更加可靠、稳定、速度快。

Description

嵌入式设备应用程序的自恢复方法
技术领域
本发明属于具体涉及一种嵌入式设备应用程序的自恢复方法。
背景技术
随着经济技术的发展和人们生活水平的提高,嵌入式设备的应用越来越广泛,嵌入式设备也在人们的生产和生活之中发挥了无以伦比的巨大作用。
嵌入式设备因为存在嵌入式芯片,因此一般都具有自控控制、智能算法等功能。而嵌入式芯片的控制功能的发挥,则完全依赖于嵌入式芯片的控制程序。目前嵌入式系统的应用程序是放在片外Flash上,当对应用程序进行升级时,嵌入式芯片将采用Flash Boot模式。但是,由于意外的断电或者其它故障,导致在烧录Flash时突然中断,因而程序没有烧录完成。然而,目前的嵌入式芯片一般都不具备linux系统的U-boot自恢复功能,因此其后果是导致程序无法正常运行,需要返厂后用仿真器完成程序的烧录。
发明内容
本发明的目的在于提供一种能够稳定提供备用程序和保证嵌入式芯片程序自动恢复的嵌入式设备应用程序的自恢复方法。
本发明提供的这种嵌入式设备应用程序的自恢复方法,包括如下步骤:
S1. 根据控制芯片的指令集,开发控制芯片的二级bootload程序,所述二级bootload程序能够对Flash进行读写、boot模式切换和读取控制芯片I/O引脚电平信号;
S2. 根据控制芯片的指令集,开发嵌入式芯片的工厂程序,所述工厂程序能够对Flash进行读写、读取嵌入式设备通信接口数据和对嵌入式芯片的应用程序进行升级;
S3. 将步骤S1开发的二级bootload程序和步骤S2开发的工厂程序分别就进行编译得到编译文件,并分别烧录到Flash的不同区域;
S4. 若控制芯片的应用程序无法正常启动,则控制芯片自动重启,此时控制芯片的一级bootload程序自动加载并从Flash中完成二级bootload程序的加载;
S5. 二级bootload程序控制控制芯片检测I/O引脚电平信号,并在I/O引脚电平信号发生变化时从Flash中加载工厂程序;
S6. 工厂程序读取嵌入式设备通信接口数据,完成应用程序的读取并烧录到Flash中;
S7. 控制芯片再次重启,此时控制芯片的一级bootload程序自动加载并从Flash中完成二级bootload程序的加载,二级bootload程序控制控制芯片检测I/O引脚电平信号,并在I/O引脚电平信号未发生变化时从Flash中加载步骤S6存储的应用程序,完成嵌入式设备控制芯片程序的自恢复。
所述的控制芯片为固化了一级bootload的嵌入式芯片。
所述的控制芯片为DSP。
所述的Flash为NandFlash或NorFlash。
所述的嵌入式设备通信接口为以太网通信接口或SD卡数据接口。
所述的二级bootload程序在Flash中的存储为二级bootload程序从Flash中的第一个 Blocks开始进行存储。
本发明提供的这种嵌入式设备应用程序的自恢复方法,通过二级bootload程序和工厂程序的两级程序加载,使得嵌入式设备的控制芯片能够在Flash存储的应用程序受损的情况下从设备外部获取应用程序数据,从而使得嵌入式设备的控制芯片应用程序的自行恢复功能更加可靠和稳定;而且采用二级bootload程序代码,代码更为简单可靠,因此启动速度更快,响应更加迅速。
附图说明
图1为本发明的方法流程图。
具体实施方式
如图1所示为本发明的方法流程图,以下以TI公司的DSP芯片为例,说明本发明的具体方法:
本发明提供的这种嵌入式设备应用程序的自恢复方法,包括如下步骤:
S1. 根据控制芯片的指令集,开发控制芯片的二级bootload程序,所述二级bootload程序能够对Flash进行读写、boot模式切换和读取控制芯片I/O引脚电平信号;
具体为开发一套二级bootLoad程序,该程序功能包括:通过GPIO检测按键状态,来决定二级bootLoad程序是从Flash的30 Blocks开始加载工厂程序,还是从Flash的200 Blocks开始加载应用程序;读取Flash程序内容时,根据TI的AIS格式说明,找到Section Load(0×58535901)标识,将数据导入指定的存储空间(片内RAM或者片外SDRAM)。同时找到Jump(0×58535905)标识,通过汇编代码完成跳转到C入口c_int00的操作;
S2. 根据控制芯片的指令集,开发嵌入式芯片的工厂程序,所述工厂程序能够对Flash进行读写、读取嵌入式设备通信接口数据和对嵌入式芯片的应用程序进行升级;
具体为开发一套工厂程序,该程序功能包括:通过以太网或者SD卡实现对应用程序的升级;对升级是否成功也液晶显示的方式告知;Flash的读写功能;
S3. 将步骤S1开发的二级bootload程序和步骤S2开发的工厂程序分别就进行编译得到编译文件,并分别烧录到控制芯片的Flash的不同区域;
具体为将二级bootLoad程序、工厂程序、应用程序分别编译,运用TI提供的AISgen.exe工具生成AIS格式的bin文件,将二级bootLoad程序的bin文件通过仿真器从Flash的第1blocks开始往后烧写;将工厂程序的bin文件通过仿真器从Flash的第30 blocks开始往后烧写;应用程序的bin文件通过仿真器从Flash的第200 blocks开始往后烧写;
S4. 若控制芯片的应用程序无法正常启动,则控制芯片自动重启,此时控制芯片的一级bootload程序自动加载并从Flash中完成二级bootload程序的加载;
S5. 二级bootload程序控制控制芯片检测I/O引脚电平信号,并在I/O引脚电平信号发生变化时(比如按键按下,使得I/O引脚电平信号发生变化)从Flash中的30 Blocks开始加载工厂程序,并完成工厂程序的C入口跳转并运行;
S6. 工厂程序读取嵌入式设备通信接口数据(比如通过外部通过连接以太网口的网络传输应用程序数据,或者从SD卡通信接口传输数据),完成应用程序的读取,并从Flash中的第200 Blocks开始烧录;
S7. 控制芯片再次重启,此时控制芯片的一级bootload程序自动加载并从Flash中完成二级bootload程序的加载,二级bootload程序控制控制芯片检测I/O引脚电平信号,并在I/O引脚电平信号未发生变化时从Flash中的200 Blocks开始加载步骤S6存储的应用程序,完成应用程序的C入口跳转并运行,完成嵌入式设备控制芯片程序的自恢复。

Claims (6)

1.一种嵌入式设备应用程序的自恢复方法,包括如下步骤:
S1. 根据控制芯片的指令集,开发控制芯片的二级bootload程序,所述二级bootload程序能够对Flash进行读写、boot模式切换和读取控制芯片I/O引脚电平信号;
S2. 根据控制芯片的指令集,开发嵌入式芯片的工厂程序,所述工厂程序能够对Flash进行读写、读取嵌入式设备通信接口数据和对嵌入式芯片的应用程序进行升级;
S3. 将步骤S1开发的二级bootload程序和步骤S2开发的工厂程序分别就进行编译得到编译文件,并分别烧录到Flash的不同区域;
S4. 若控制芯片的应用程序无法正常启动,则控制芯片自动重启,此时控制芯片的一级bootload程序自动加载并从Flash中完成二级bootload程序的加载;
S5. 二级bootload程序控制控制芯片检测I/O引脚电平信号,并在I/O引脚电平信号发生变化时从Flash中加载工厂程序;
S6. 工厂程序读取嵌入式设备通信接口数据,完成应用程序的读取并烧录到Flash中;
S7. 控制芯片再次重启,此时控制芯片的一级bootload程序自动加载并从Flash中完成二级bootload程序的加载,二级bootload程序控制控制芯片检测I/O引脚电平信号,并在I/O引脚电平信号未发生变化时从Flash中加载步骤S6存储的应用程序,完成嵌入式设备控制芯片程序的自恢复。
2.根据权利要求1所述的嵌入式设备应用程序的自恢复方法,其特征在于所述的控制芯片为固化了一级bootload的嵌入式芯片。
3.根据权利要求2所述的嵌入式设备应用程序的自恢复方法,其特征在于所述的控制芯片为DSP。
4.根据权利要求1~3之一所述的嵌入式设备应用程序的自恢复方法,其特征在于所述的Flash为NandFlash或NorFlash。
5.根据权利要求1~3之一所述的嵌入式设备应用程序的自恢复方法,其特征在于所述的嵌入式设备通信接口为以太网通信接口或SD卡数据接口。
6. 根据权利要求1~3之一所述的嵌入式设备应用程序的自恢复方法,其特征在于所述的二级bootload程序在Flash中的存储为二级bootload程序从Flash中的第一个 Blocks开始进行存储。
CN201710244258.XA 2017-04-14 2017-04-14 嵌入式设备应用程序的自恢复方法 Active CN107015833B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710244258.XA CN107015833B (zh) 2017-04-14 2017-04-14 嵌入式设备应用程序的自恢复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710244258.XA CN107015833B (zh) 2017-04-14 2017-04-14 嵌入式设备应用程序的自恢复方法

Publications (2)

Publication Number Publication Date
CN107015833A true CN107015833A (zh) 2017-08-04
CN107015833B CN107015833B (zh) 2020-06-09

Family

ID=59446149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710244258.XA Active CN107015833B (zh) 2017-04-14 2017-04-14 嵌入式设备应用程序的自恢复方法

Country Status (1)

Country Link
CN (1) CN107015833B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488168A (zh) * 2019-12-25 2020-08-04 湖北航天飞行器研究所 一种基于boot二次加载的武器系统控制软件安全升级方法

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088697A1 (en) * 2002-10-31 2004-05-06 Schwartz Jeffrey D. Software loading system and method
CN1716196A (zh) * 2004-06-30 2006-01-04 大唐移动通信设备有限公司 扩展串行引导代码量的方法
CN101137156A (zh) * 2007-10-18 2008-03-05 中兴通讯股份有限公司 移动终端的信息保护方法
CN102007472A (zh) * 2008-05-13 2011-04-06 巴比禄股份有限公司 操作系统启动方法以及协议转换器
CN102508686A (zh) * 2011-11-30 2012-06-20 苏州希图视鼎微电子有限公司 一种系统安全升级的实现方法及其系统
CN102802083A (zh) * 2012-08-24 2012-11-28 乐视网信息技术(北京)股份有限公司 一种基于Android系统的机顶盒升级方法及其机顶盒
CN102938857A (zh) * 2012-11-27 2013-02-20 乐视致新电子科技(天津)有限公司 一种机顶盒在线升级的方法
US20130061090A1 (en) * 2011-09-06 2013-03-07 Electronics And Telecommunications Research Institute Partial rebooting recovery apparatus and method
CN103530264A (zh) * 2013-10-22 2014-01-22 贵州航天控制技术有限公司 一种dsp串行在线烧写装置
CN103761122A (zh) * 2013-12-31 2014-04-30 青岛歌尔声学科技有限公司 一种芯片固件的升级方法和系统
CN104407878A (zh) * 2014-10-20 2015-03-11 北京航天发射技术研究所 C6000数字信号处理器在线升级方法
CN104951328A (zh) * 2014-03-31 2015-09-30 国基电子(上海)有限公司 嵌入式设备及其启动方法
CN105867977A (zh) * 2016-04-01 2016-08-17 天津七所精密机电技术有限公司 DSP用户程序升级及Flash下载方法
CN106528336A (zh) * 2016-11-02 2017-03-22 天津市捷威动力工业有限公司 一种防止bms软件升级失败导致不能重新开机启动的方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088697A1 (en) * 2002-10-31 2004-05-06 Schwartz Jeffrey D. Software loading system and method
CN1716196A (zh) * 2004-06-30 2006-01-04 大唐移动通信设备有限公司 扩展串行引导代码量的方法
CN101137156A (zh) * 2007-10-18 2008-03-05 中兴通讯股份有限公司 移动终端的信息保护方法
CN102007472A (zh) * 2008-05-13 2011-04-06 巴比禄股份有限公司 操作系统启动方法以及协议转换器
US20130061090A1 (en) * 2011-09-06 2013-03-07 Electronics And Telecommunications Research Institute Partial rebooting recovery apparatus and method
CN102508686A (zh) * 2011-11-30 2012-06-20 苏州希图视鼎微电子有限公司 一种系统安全升级的实现方法及其系统
CN102802083A (zh) * 2012-08-24 2012-11-28 乐视网信息技术(北京)股份有限公司 一种基于Android系统的机顶盒升级方法及其机顶盒
CN102938857A (zh) * 2012-11-27 2013-02-20 乐视致新电子科技(天津)有限公司 一种机顶盒在线升级的方法
CN103530264A (zh) * 2013-10-22 2014-01-22 贵州航天控制技术有限公司 一种dsp串行在线烧写装置
CN103761122A (zh) * 2013-12-31 2014-04-30 青岛歌尔声学科技有限公司 一种芯片固件的升级方法和系统
CN104951328A (zh) * 2014-03-31 2015-09-30 国基电子(上海)有限公司 嵌入式设备及其启动方法
CN104407878A (zh) * 2014-10-20 2015-03-11 北京航天发射技术研究所 C6000数字信号处理器在线升级方法
CN105867977A (zh) * 2016-04-01 2016-08-17 天津七所精密机电技术有限公司 DSP用户程序升级及Flash下载方法
CN106528336A (zh) * 2016-11-02 2017-03-22 天津市捷威动力工业有限公司 一种防止bms软件升级失败导致不能重新开机启动的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘章文 等: "《基于TMS320C6678的多核DSP上电加载技术》", 《现代电子技术》 *
张小波 等: "《TMS320VC5509的二次引导加载方法》", 《单片机与嵌入式系统应用》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488168A (zh) * 2019-12-25 2020-08-04 湖北航天飞行器研究所 一种基于boot二次加载的武器系统控制软件安全升级方法
CN111488168B (zh) * 2019-12-25 2023-09-12 湖北航天飞行器研究所 一种基于boot二次加载的武器系统控制软件安全升级方法

Also Published As

Publication number Publication date
CN107015833B (zh) 2020-06-09

Similar Documents

Publication Publication Date Title
CN102830984B (zh) 固件更新的方法、芯片以及通信终端
CN101561857B (zh) 多模式启动的安全嵌入式系统
CN108804118B (zh) 固件升级方法、设备及存储介质
CN107704285B (zh) 现场可编程门阵列多版本配置芯片、系统和方法
CN101699402B (zh) 一种多模式启动的嵌入式系统
US7822964B2 (en) Booting apparatus for booting a computer and method therefor and computer with a booting apparatus
CN114003538B (zh) 一种智能网卡的识别方法及智能网卡
CN105677398A (zh) 一种通用的嵌入式计算机软件在线升级方法
CN104951328A (zh) 嵌入式设备及其启动方法
CN103761129A (zh) 一种在Bootloader层实现SDIO接口驱动的方法
CN101872306B (zh) 一种实现软件更新和软件备份的嵌入式系统及其实现方法
WO2022222293A1 (zh) 存储设备测试方法、装置、电视机以及存储介质
CN103092659A (zh) 脱离仿真器支持环境的dsp软件升级系统及其升级方法
CN103729205A (zh) 一种电子标签及电子标签的升级方法
CN111782246A (zh) 基于总线的多节点设备嵌入式程序升级方法
CN107015833A (zh) 嵌入式设备应用程序的自恢复方法
CN104991805B (zh) 智能设备及其系统灾备控制方法
CN102446101A (zh) 固件强制升级的系统及其固件的强制升级方法
CN111885420B (zh) 待机保护方法、装置、智能电视和可读存储介质
CN110673894B (zh) 一种家庭网关bob模块ed自动加载方法
CN105159714B (zh) 一种pmic初始化方法和电子设备
CN102955701B (zh) 使用Bootloader程序的应用程序更新方法
CN102184115B (zh) 升级系统软件的方法及终端设备
CN111857785A (zh) 一种mcu的启动方法、装置及终端设备
CN110515665B (zh) 一种处理器系统的启动方法、系统及装置

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