CN106873990B - 嵌入式***ram损坏模式下的多分区引导方法 - Google Patents
嵌入式***ram损坏模式下的多分区引导方法 Download PDFInfo
- Publication number
- CN106873990B CN106873990B CN201710049748.4A CN201710049748A CN106873990B CN 106873990 B CN106873990 B CN 106873990B CN 201710049748 A CN201710049748 A CN 201710049748A CN 106873990 B CN106873990 B CN 106873990B
- Authority
- CN
- China
- Prior art keywords
- ram
- program
- starting
- lightweight
- partition
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- 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/0703—Error 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/0706—Error 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 the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种嵌入式***RAM损坏模式下的多分区引导方法,具体过程为:将主备份计算机***的程序存储器分为正常启动程序分区和轻量级启动程序分区;若RAM存在故障,根据地面设置进行切机或者启动轻量级启动程序分区;轻量级启动程序分区启动后执行RAM故障检测,通过对外接口输出RAM故障检测结果;根据RAM故障检测结果,制作正常启动程序能在RAM无故障区域运行的二进制可执行文件镜像;由轻量级启动程序跳转到二进制可执行文件镜像起始地址,运行所述二进制可执行文件镜像,恢复设备正常功能。本发明在RAM损坏模式下,增加了一种运行轻量级启动程序分区的手段,避免仅采取单一的切机处理措施导致本机彻底不能使用的问题。
Description
技术领域
本发明涉及一种多分区引导方法,特别是一种嵌入式***RAM损坏模式下的多分区引导方法。
技术背景
嵌入式计算机***主要由CPU、程序存储器(如PROM或FLASH)和内存(RAM)组成,在RAM中存在永久性故障区域的情况下,计算机***往往无法正常启动运行。嵌入式计算机***一般采用单片RAM无备份的设计,同时也不具备专门的维护程序,发现RAM故障后,一般采取切换至备份机工作的处理措施,当前主计算机将无法继续使用。
在现有技术中,CN104461657A号专利公开了一种嵌入式***切换启动装置,装置包括处理器、切换信号生成模块、主备份固化存储器、电子开关模块、固化存储器电源供电模块等,该固化存储器和备用存储器均用于存储引导程序和操作***;该切换信号生成模块用于生成切换信号;该电子开关模块用于在接收到该切换信号时生成关闭信号;该固化存储器电源供电模块用于未接收到关闭信号时给固化存储器供电,并在接收到该关闭信号时停止供电给固化存储器;该处理器用于在固化存储器得电时,从固化存储器读取引导程序,在固化存储器失电时,从备用存储器读取引导程序。CN102880496A号专利公开了一种嵌入式多***自启动方法,其特征在于包含一个自启动控制电路,自启动控制电路首先输出第一片选信号至第一程序存储器并开启定时器,CPU从第一程序存储器中读取***启动数据,***进行初始化,若启动成功则关闭定时器,若在定时器最大启动时间内未收到正确的状态信号,自启动控制电路输出第二片选信号至第二程序存储器,***重启并从第二程序存储器中读取启动数据。
上述方法主要存在以下问题:
(1)主备份程序分别固化在主备两片独立的存储器中,并需设计相应的启动切换控制逻辑电路,带来成本高和设计复杂的问题。出于功耗、成本、体积等考虑,一些嵌入式领域的计算机***并不适合采用双片程序存储器的设计。
(2)主备份程序存储器固化的是相同的内容,程序启动后运行在相同的RAM区域,如果RAM故障,则主备份程序将均启动失败,因此主备份程序采取差异化设计是一种解决问题的技术途径。
发明内容
有签于此,本发明提出了一种嵌入式***RAM损坏模式下的多分区引导方法,该方法在程序存储器中增加一个轻量级启动程序分区,在RAM部分损坏情况下,能够引导嵌入式***进入维护模式,最终使计算机能够重新运行正常启动程序。
实现本发明的技术方案如下:
一种嵌入式***RAM损坏模式下的多分区引导方法,该方法所针对的嵌入式***包括主份和备份两套计算机***,主备份计算机***切换过程中,当前***启动后执行关闭另一***操作;其中
步骤一、将主备份计算机***的程序存储器分为正常启动程序分区和轻量级启动程序分区,两个分区中分别固化主机正常启动程序和轻量级启动程序;
步骤二、正常启动程序分区启动过程中检测RAM是否存在故障,若RAM无故障,则运行主机正常启动程序,否则根据地面设置进行切机或者启动轻量级启动程序分区后进入步骤三;
步骤三、轻量级启动程序分区启动后执行RAM故障检测,通过对外接口输出RAM故障检测结果;
步骤四、根据RAM故障检测结果,制作正常启动程序能在RAM无故障区域运行的二进制可执行文件镜像,并通过输入接口发送给轻量级启动程序,由其写入到RAM无故障区域;
步骤五、由轻量级启动程序跳转到二进制可执行文件镜像起始地址,运行所述二进制可执行文件镜像,恢复设备正常功能。
进一步地,本发明计算机***上电后,若正常启动程序自检过程中,检测到RAM中不存在故障区域,则将其文本段和数据段从程序存储器全部搬移到RAM中,并从RAM的0地址处开始运行;若正常启动程序启动自检过程中,检测到RAM中存在不可恢复故障区域,则根据地面设置进行切机或者启动轻量级启动程序分区。
进一步地,本发明所述轻量级启动程序不经过压缩固化到程序存储器中,在RAM出现故障启动轻量级启动程序分区时,其文本段不搬移至RAM,直接运行在程序存储器中,数据段搬移至RAM。
进一步地,本发明若轻量级启动程序的检测结果为RAM无故障区域足够运行整个正常启动程序,则二进制可执行文件镜像包括整个正常启动程序,否则将正常启动程序进行裁剪后作为二进制可执行文件镜像。
进一步地,本发明轻量级启动程序分区启动后,轻量级启动程序不执行自主复位,程序启动后执行RAM故障检测。
有益效果:
(1)RAM损坏模式下,增加了一种运行轻量级启动程序分区的手段,避免仅采取单一的切机处理措施导致本机彻底不能使用的问题。
(2)RAM损坏模式下,运行轻量级启动程序分区时仅需要很小部分RAM空间,在RAM部分损坏情况下,也有一定可能性继续运行。
(3)RAM损坏模式下,通过运行轻量级启动程序分区,轻量级启动程序具有RAM故障检测功能,能够定位故障区域,从而制定维护方案,最终恢复到正常启动程序。
(4)RAM损坏模式下,轻量级启动程序分区运行在程序存储器中,运行过程中使用和正常程序分区不同的RAM地址空间,从而可能避开RAM故障区域,使嵌入式计算机***能够继续运行。
(5)本发明不需要主备两片存储器,不需要设计硬件切换电路,正常启动程序和轻量级启动程序固化在同一份只读存取器中。
附图说明
图1为RAM损坏模式下多分区引导方法示意图;
图2为正常启动程序切到轻量级启动程序的流程图。
具体实施方式
下面结合附图和具体实例对本发明进行详细说明。
本发明所针对的嵌入式***包括主备份计算机***,主备份***采用冷备份设计,能够互相切换,计算机***由CPU、单片RAM和单片程序存储器等组成。主备机切换过程中,当前机启动后执行关闭另一机操作。
本发明提供了一种嵌入式***RAM损坏模式下的多分区引导方法,该方法通过在程序存储器中增加一个轻量级启动程序分区,在RAM部分损坏情况下,能够引导嵌入式***进入维护模式,根据RAM故障检测结果,制定挽救方案,最终使计算机***能够重新运行正常启动程序。该方案在嵌入式计算机***RAM部分故障情况下,提供了一种挽救的可能,提高了嵌入式***在RAM芯片故障情况下的可靠性和安全性。RAM损坏模式下多分区引导方法示意图如图1所示。
步骤一、将主备份计算机***的程序存储区划分为正常启动程序分区和轻量级启动程序分区两个分区,分别固化正常启动程序和轻量级启动程序。其中,正常启动程序启动后将操作***和应用软件全部搬移到RAM运行,因此程序存储区中的操作***和应用软件程序可以是经过压缩后的,但是启动引导程序bootloader不能被压缩。轻量级启动程序运行过程中,文本段不执行搬移至RAM的操作,仅搬移数据段内容,因此轻量级启动程序固化内容不可被压缩。制作固化到程序存储器的二进制bin文件时,将正常启动程序和轻量级启动程序两份二进制bin文件合并为一份固化文件,并在程序存储器的空白区域填充汇编语言空操作指令对应的十六进制机器码。
上步中,编译生成二进制bin文件前,分别对正常启动程序和轻量级启动程序在RAM中的运行空间进行指定,使之运行在不同的地址空间范围内。
步骤二、设备上电后,默认从正常启动程序分区开始运行,正常启动程序在将操作***和应用软件搬移至RAM运行前,先执行RAM故障检测。
本实施例中较佳采用如下方式在上电后进行RAM自检:启动仅执行一次自检,先往RAM中写一遍标识1,然后从RAM中读出数据并与标识1比较,如果不相等则自检失败,如果相等,则再往RAM中写一遍标识2,然后从RAM中读出数据并与标识2比较,如果不相等则自检失败,如果相等,则自检通过。其中,标识1与标识2的取值应能够覆盖RAM中每比特被写为0或1两种情况。
正常启动程序RAM自检过程中,发现RAM不可恢复故障之后,定时等待时间长度设置为TIMER1,期间等待外部接口发送是否允许切备机的指令,在设置等待时间TIMER1到时之后写切机端口,之后跳转至轻量级启动程序分区。因此能否跳转到轻量级启动程序由是否允许切备机的设置决定,若硬件切机使能则备机启动并关闭主机,主机中轻量级启动程序分区不会被启动,若硬件切机禁止则写切机端口无效,备机不会被加电,从而主机将运行轻量级启动程序。从正常启动程序分区切换至轻量级启动程序分区的流程如图2所示。
步骤三、由于轻量级启动程序不经过压缩固化到程序存储器,启动运行之后,轻量级启动程序的代码段不做搬移,直接运行在程序存储器中,数据段由启动代码搬移至RAM,运行在正常启动程序所用内存之外的地址区域。
轻量级启动程序分区启动过程中不执行RAM自检,启动后,在正常运行过程中执行RAM故障检测,并通过对外接口输出RAM故障检测结果,轻量级启动程序包含但不限于以下功能:
基本的数据输入输出处理功能,轻量级启动程序的外部接口处理功能同正常启动程序,其数据输入功能包括但不限于接收用于写入到RAM无故障区域的二进制正常启动程序上注数据,以及用于控制CPU跳转到RAM指定地址运行的控制指令,数据输出功能包括但不限于将RAM自检结果通过外部接口输出供查看。
RAM自检功能,是指轻量级启动程序运行过程中能够检测除轻量级启动程序本身使用RAM之外的地址区域。检测RAM的方法是,周期性执行自检,每次检测一部分RAM,通过多次检测覆盖整个轻量级启动程序本身使用RAM之外的地址区域。先往RAM中写一遍标识1,然后从RAM中读出数据并与标识1比较,再往RAM中写一遍标识2,然后从RAM中读出数据并与标识2比较,标识1与标识2的取值应能够检测RAM中每比特被写为0或1两种情况。如果读写数据不一致,则根据出错地址更新自检结果,自检结果以每bit代表若干字节的RAM区是否存在故障的方式表示,例如每2k字节RAM是否故障用1bit表示,0表示正确,1表示错误。轻量级启动程序在运行过程中,在任何情况下均不执行自主复位及切机。
步骤四、分析轻量级启动程序输出的RAM自检结果,若自检结果显示RAM无故障区域足够大,则可将整个正常启动程序制作成二进制可执行文件镜像的上注数据,否则需要将正常启动程序功能削减,从而使裁剪尺寸后的正常启动程序作为二进制可执行文件镜像的上注数据,其能够全部保存在RAM无故障区域。
轻量级启动程序对保存到RAM无故障区域的正常启动程序对应二进制上注数据进行校验校验方式包括但不限于CRC校验、异或和校验等,校验完成后将校验结果通过输出接口输出。若校验错误则重新上注,若校验正常,可通过输入接口向轻量级启动程序注入跳转指令。跳转指令跳转的目的地址为正常启动程序起始运行地址,将其记为ADDR1。轻量级启动程序收到跳转指令后,先关闭当前所有中断,之后控制CPU从地址ADDR1开始运行,正常启动程序将运行在重新选定的RAM区域。
本发明正常启动程序分区和轻量级启动程序分区固化在同一片程序存储器芯片中,两份程序不是主备关系,而是具有不同的功能。
本发明正常启动程序可选择压缩后固化在程序存储器中,启动后文本段和数据段均运行在RAM中,轻量级启动程序不经过压缩固化在程序存储器中,文本段运行在程序存储器中,仅数据段运行在RAM中,正常启动程序和轻量级启动程序运行在不同的RAM地址空间。
本发明轻量级启动程序支持RAM故障检测功能,定位故障区域,执行数据注入,恢复正常启动程序功能。
综上所述,以上仅为本发明的一种较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种嵌入式***RAM损坏模式下的多分区引导方法,该方法所针对的嵌入式***包括主份和备份两套计算机***,其特征在于,
步骤一、将主备份计算机***的程序存储器分为正常启动程序分区和轻量级启动程序分区,两个分区中分别固化主机正常启动程序和轻量级启动程序;
步骤二、正常启动程序分区启动过程中检测RAM是否存在故障,若RAM无故障,则运行主机正常启动程序,否则根据地面设置进行切机或者启动轻量级启动程序分区后进入步骤三;
步骤三、轻量级启动程序分区启动后执行RAM故障检测,通过对外接口输出RAM故障检测结果;
步骤四、根据RAM故障检测结果,制作正常启动程序能在RAM无故障区域运行的二进制可执行文件镜像,并通过输入接口发送给轻量级启动程序,由其写入到RAM无故障区域;
若轻量级启动程序的检测结果为RAM无故障区域足够运行整个正常启动程序,则二进制可执行文件镜像包括整个正常启动程序,否则将正常启动程序进行裁剪后作为二进制可执行文件镜像;
步骤五、由轻量级启动程序跳转到二进制可执行文件镜像起始地址,运行所述二进制可执行文件镜像,恢复设备正常功能。
2.根据权利要求1所述一种嵌入式***RAM损坏模式下的多分区引导方法,其特征在于,计算机***上电后,若正常启动程序自检过程中,检测到RAM中不存在故障区域,则将其文本段和数据段从程序存储器全部搬移到RAM中,并从RAM的0地址处开始运行;若正常启动程序启动自检过程中,检测到RAM中存在不可恢复故障区域,则根据地面设置进行切机或者启动轻量级启动程序分区。
3.根据权利要求1所述一种嵌入式***RAM损坏模式下的多分区引导方法,其特征在于,所述轻量级启动程序不经过压缩固化到程序存储器中,在RAM出现故障启动轻量级启动程序分区时,其文本段不搬移至RAM,直接运行在程序存储器中,数据段搬移至RAM。
4.根据权利要求1所述一种嵌入式***RAM损坏模式下的多分区引导方法,其特征在于,所述轻量级启动程序分区启动后,轻量级启动程序不执行自主复位,程序启动后执行RAM故障检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710049748.4A CN106873990B (zh) | 2017-01-23 | 2017-01-23 | 嵌入式***ram损坏模式下的多分区引导方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710049748.4A CN106873990B (zh) | 2017-01-23 | 2017-01-23 | 嵌入式***ram损坏模式下的多分区引导方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106873990A CN106873990A (zh) | 2017-06-20 |
CN106873990B true CN106873990B (zh) | 2020-07-10 |
Family
ID=59159065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710049748.4A Active CN106873990B (zh) | 2017-01-23 | 2017-01-23 | 嵌入式***ram损坏模式下的多分区引导方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106873990B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729085A (zh) * | 2017-10-19 | 2018-02-23 | 北京空间飞行器总体设计部 | 一种支持地址重定向的星载软件动态加载方法 |
CN107844303B (zh) * | 2017-11-10 | 2020-09-04 | 南京翼辉信息技术有限公司 | 基于生产镜像的可配置、掉电安全的嵌入式***部署方法 |
CN109189485A (zh) * | 2018-08-08 | 2019-01-11 | 烽火通信科技股份有限公司 | 一种嵌入式设备的***启动管理、操作***配置方法 |
CN109614116B (zh) * | 2018-11-20 | 2022-06-21 | 锐捷网络股份有限公司 | 嵌入式***的安装方法及装置 |
CN110059005B (zh) * | 2019-01-30 | 2022-12-16 | 北京品驰医疗设备有限公司 | 快闪存储器的程序检测方法和植入式医疗设备 |
CN110060726B (zh) * | 2019-01-30 | 2022-12-16 | 北京品驰医疗设备有限公司 | 快闪存储器的程序检测方法和植入式医疗设备 |
CN110083393B (zh) * | 2019-01-30 | 2022-12-16 | 北京品驰医疗设备有限公司 | 快闪存储器和植入式医疗设备 |
CN109901117B (zh) * | 2019-03-13 | 2022-05-27 | 苏州理工雷科传感技术有限公司 | 一种雷达重启方法及装置 |
CN111988180A (zh) * | 2020-08-21 | 2020-11-24 | 四川爱联科技股份有限公司 | 物联网模组的故障检测方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101950262A (zh) * | 2010-10-20 | 2011-01-19 | 深圳市开立科技有限公司 | 在嵌入式***中实现安全模式的方法及装置 |
CN103176875A (zh) * | 2013-03-19 | 2013-06-26 | 卡斯柯信号有限公司 | 一种嵌入式***上电自检方法 |
CN104572229A (zh) * | 2015-02-12 | 2015-04-29 | 西安诺瓦电子科技有限公司 | 嵌入式***的固件升级方法以及固件升级装置 |
CN105589765A (zh) * | 2015-12-17 | 2016-05-18 | 迈普通信技术股份有限公司 | 一种实现程序备份的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100115004A1 (en) * | 2008-10-21 | 2010-05-06 | Moxa Inc. | Backup system that stores boot data file of embedded system in different strorage sections and method thereof |
-
2017
- 2017-01-23 CN CN201710049748.4A patent/CN106873990B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101950262A (zh) * | 2010-10-20 | 2011-01-19 | 深圳市开立科技有限公司 | 在嵌入式***中实现安全模式的方法及装置 |
CN103176875A (zh) * | 2013-03-19 | 2013-06-26 | 卡斯柯信号有限公司 | 一种嵌入式***上电自检方法 |
CN104572229A (zh) * | 2015-02-12 | 2015-04-29 | 西安诺瓦电子科技有限公司 | 嵌入式***的固件升级方法以及固件升级装置 |
CN105589765A (zh) * | 2015-12-17 | 2016-05-18 | 迈普通信技术股份有限公司 | 一种实现程序备份的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106873990A (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106873990B (zh) | 嵌入式***ram损坏模式下的多分区引导方法 | |
US11408736B2 (en) | Master control system for satellite image processing | |
CN101882085B (zh) | ***启动方法以及嵌入式设备 | |
CN101329632B (zh) | 一种使用boot启动cpu的方法与装置 | |
KR101358776B1 (ko) | 장비의 리부트 이유를 기록하는 장치 및 방법 | |
US20040158702A1 (en) | Redundancy architecture of computer system using a plurality of BIOS programs | |
CN106020865A (zh) | 一种***升级方法和装置 | |
CN113485764B (zh) | 一种嵌入式***及其控制方法、装置和存储介质 | |
US10223217B2 (en) | Information processing device, method for booting information processing device, and non-transitory recording medium | |
US20150199190A1 (en) | System and method for updating firmware | |
JP4643977B2 (ja) | プログラマブル・ロジック・デバイス、情報処理装置、プログラマブル・ロジック・デバイスの制御方法 | |
CN108874582A (zh) | 一种***恢复方法、装置及终端 | |
CN112306726B (zh) | 一种抗单粒子翻转***及方法 | |
CN111897595B (zh) | 一种卫星星务管理计算机软件启动与引导方法 | |
US10824517B2 (en) | Backup and recovery of configuration files in management device | |
CN108304140B (zh) | 闪存数据管理方法、装置及微控制器 | |
CN101923495B (zh) | 一种嵌入式容错***及其容错方法 | |
CN108089892A (zh) | 一种***安全启动的方法、装置、机顶盒及存储介质 | |
CN103744700A (zh) | 一种***启动方法及电子设备 | |
CN103890713A (zh) | 用于管理处理***内的寄存器信息的装置及方法 | |
CN110673975B (zh) | 一种星载计算机软件的安全内核结构及安全运行方法 | |
CN105279043A (zh) | 一种对单片机软件错误进行恢复的方法及*** | |
CN111273928A (zh) | 一种自升级的bootloader设计方法 | |
CN110727544A (zh) | 一种基于工业器件的微小卫星星载计算机*** | |
CN110515664A (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 |