CN102298545A - 一种系统启动引导处理方法及装置 - Google Patents

一种系统启动引导处理方法及装置 Download PDF

Info

Publication number
CN102298545A
CN102298545A CN2011102427332A CN201110242733A CN102298545A CN 102298545 A CN102298545 A CN 102298545A CN 2011102427332 A CN2011102427332 A CN 2011102427332A CN 201110242733 A CN201110242733 A CN 201110242733A CN 102298545 A CN102298545 A CN 102298545A
Authority
CN
China
Prior art keywords
environmental variance
memory block
module
variable
backup variable
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
CN2011102427332A
Other languages
English (en)
Other versions
CN102298545B (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.)
MediaTek Inc
MStar Semiconductor Inc Taiwan
Original Assignee
MStar Software R&D Shenzhen Ltd
MStar Semiconductor Inc Taiwan
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 MStar Software R&D Shenzhen Ltd, MStar Semiconductor Inc Taiwan filed Critical MStar Software R&D Shenzhen Ltd
Priority to CN201110242733.2A priority Critical patent/CN102298545B/zh
Priority to TW100137593A priority patent/TWI490876B/zh
Publication of CN102298545A publication Critical patent/CN102298545A/zh
Priority to US13/349,560 priority patent/US8812910B2/en
Application granted granted Critical
Publication of CN102298545B publication Critical patent/CN102298545B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/0706Error 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/073Error 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 memory management context, e.g. virtual memory or cache management
    • 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Abstract

本发明实施例公开了一种系统启动引导处理方法,本发明实施例还提供相应的装置。本发明通过从非易失闪存中读取环境变量,当该环境变量有不可纠正错误时,连续读取环境变量直至预设阈值,当读取的预设阈值次数的环境变量仍存在不可纠正错误时,读取该环境变量的备份变量,并根据该备份变量恢复损坏的环境变量;通过上述方式,本发明能够在确认环境变量损坏的情况下,启用备份变量,并使用该备份变量恢复损坏的环境变量,使系统能正常启动,极大地提高了系统可靠性,提高了用户体验度。

Description

一种系统启动引导处理方法及装置
技术领域
本发明涉及计算机技术领域,特别是涉及一种系统启动引导处理方法以及相应的装置。
背景技术
在很多Linux嵌入式系统中,在初始化软硬件系统并引导Linux内核时,都需要一个引导装置来引导Linux操作系统,从而Linux操作系统能正常启动。它所用到的一些系统基本参数,称为环境变量,比如网络的IP地址,系统的分区设置,内存的设置参数,内核的引导参数等等,都被保存到一个区域。环境变量被保存在非易失闪存(NAND Flash)上的一个特定区域中,该区域以块为单位,系统开机时,引导装置会从NAND Flash内存上读出整个环境变量并存放于内存,之后便只在内存中访问环境变量。如果环境变量有更新,可以将这种更新同步到NANDFlash内存上。
相对于NOR Flash内存,NAND Flash内存以其访问速度快、容量大、单位容量的成本低廉等特点,在嵌入式领域越来越广泛地被用作存放数据的载体。虽然NAND Flash内存有容量和成本上的优势,但其存在固有的缺陷,即可靠性相对较差。因此,当存放在NAND Flash内存内特定区域的环境变量存在不可纠正的错误或损坏时,系统无法正常启动。
环境变量是否为错误或已经被损坏直接关系到系统能否正常启动,因此当其存在错误或已经被损坏时,会大大影响用户体验度。所以环境变量非常重要,而如此重要的数据其存储的可靠性却比较差。这是亟待解决的问题。
发明内容
本发明主要解决的技术问题是提供一种系统启动引导处理方法及装置,能够极大地提高系统可靠性,使得在读取环境变量出错时仍然能正常读取,从而不影响系统的正常开机。
为解决上述技术问题,本发明采用的一个技术方案是:
一种系统启动引导处理方法,包括:
从非易失闪存中读取系统启动引导用环境变量;
判断所述环境变量是否有不可纠正错误并累计所述不可纠正错误的连续累计次数;
如果不可纠正错误的连续累计次数达到预设阈值,则读取所述环境变量的备份变量,其中,该备份变量为环境变量的备份;以及
根据所述备份变量恢复损坏的环境变量。
本发明还提供与上述方法对应的装置:
一种系统启动引导处理的装置,包括:
第一读取模块,用于从NAND Flash内存中读取系统启动引导用环境变量;
第一判断模块,用于判断所述环境变量是否有不可纠正错误;
累计模块,当所述第一判断模块判断出环境变量有不可纠正错误时,累计所述不可纠正错误的连续累计次数;
第二读取模块,当所述累计模块累计的不可纠正错误的连续累计次数达到预设阈值时,读取所述环境变量的备份变量,其中,该备份变量为环境变量的备份;
恢复模块,用于根据第二读取模块读取的备份变量恢复损坏的环境变量。
本发明的有益效果是:区别于现有技术的情况,本发明针对环境变量在NAND Flash内存中易损坏的情况,采取了应对措施,比如多次读取环境变量时都出现不可纠正错误才确定该环境变量出现不可纠正的错误,当确定环境变量出现不可纠正错误时,读取备份变量,并根据备份变量恢复损坏的环境变量,从而能引导系统正常启动,并且极大提高了系统可靠性,提高了用户体验度。
附图说明
图1是本发明系统启动引导处理方法的实施例的数据流程图;
图2是本发明系统启动引导处理方法的实施例中坏块的处理及环境变量的写入流程的数据流程图;
图3是本发明系统启动引导处理的装置的逻辑结构示意图;
图4是本发明系统启动引导处理的装置的另一逻辑结构示意图。
具体实施方式
参阅图1,本发明系统启动引导处理方法的实施例包括:
101、从非易失闪存中读取系统启动引导用环境变量;
Linux嵌入式设备在开机时,设备CPU在NAND Flash内存中读取系统启动必需的环境变量。由于NAND Flash内存存储数据的可靠性较差,读取数据时有出错的可能,所以通常每个页面(page)的数据会附加一个错误检查和纠正(ECC,Error Checking and Correcting)校验码。一般的,对于少量的比特错误,即可纠正错误,ECC校验码可以纠正;而大量的比特错误,即不可纠正错误,ECC校验码无法纠正,但是可以报错。
102、判断环境变量是否有不可纠正错误;
CPU在NAND Flash内存中读取系统启动必需的环境变量后,判断该环境变量是否有不可纠正错误,即是否有大量的比特错误。
103、判断环境变量是否有可纠正错误;
如果在步骤102中判断出环境变量没有不可纠正错误,则再判断该环境变量是否有可纠正错误,即是否有少量的比特错误;如果有,则执行步骤104,如果没有,则根据读取的环境变量启动系统。
104、重新将环境变量写入至NAND Flash内存中;
如果在步骤103中判断出环境变量有可纠正错误,则将该环境变量所在的内存块擦除,并且将正确无误的环境变量重新写一遍;因为可纠正错误虽然通过ECC校验码可以纠正,数据的完整性没有破坏,但是也说明了NAND Flash内存中存放的数据已经有损坏了,如果不及时处理,可能会发展成不可纠正错误,从而使系统无法正常开机。
105、判断是否达到不可纠正错误的连续累计次数的预设阈值;
当读取一次环境变量发现有不可纠正错误时,有可能是真的数据损坏,也有可能只是某些偶然因素导致一次读取错误,而NAND Flash内存中存储的数据并没有损坏,为了避免后一种情况的干扰,一次读取失败不认为数据被损坏了,而是反复多读取几次,并且每次读取都判断读取的环境变量是否有不可纠正错误,如果连续读取几次的环境变量都有不可纠正错误,才会认为NAND Flash内存中存储的数据损坏了;
所以,在本地预先设置一个阈值,例如可以是连续读取3次的环境变量都有不可纠正错误,或者连续读取5次的环境变量都有不可纠正错误等等。在步骤102中判断出环境变量有不可纠正错误时,继续读取NAND Flash内存中存储的环境变量并判断是否有不可纠正错误并累计该不可纠正错误的连续累计次数,直至该不可纠正错误的连续累计次数达到预设阈值,只有当连续读取几次都失败的情况下,才认为NANDFlash内存中存储的数据损坏了。
106、读取失败;
如前述,如果连续读取几次都失败了,即连续读取阈值次的环境变量都有不可纠正错误,则确认NAND Flash内存中存储的环境变量损坏了;
107、保存出错的环境变量;
当确认NAND Flash内存中存储的数据已经损坏时,将出错的环境变量保存到NAND Flash内存中的一个特定区域,这大大方便了后续的调试,可以使调试者清楚环境变量是如何被破坏的,从而可以采取相应的措施,避免下次再次被破坏。
108、判断备份是否可用;
本发明实施例中,在NAND Flash内存中保存至少2份环境变量数据,以使得当一份环境变量损坏时,可以启用该环境变量的备份变量;
当如步骤106所述确认环境变量损坏时,需要启用备份变量,首先判断备份变量是否可用。
109、读取备份变量;
如果在步骤108中判断出备份变量可用时,读取备份变量,然后执行步骤110。
110、用备份变量恢复损坏的环境变量;
读取备份变量后,用备份变量恢复损坏的环境变量,从而确保系统能正常启动。
111、读取默认环境变量;
如果在步骤108中判断出备份变量不可用时,启用最后一道防线,即使用默认环境变量;默认环境变量是写在Mboot(系统启动引导软件)的源代码中的,设定默认环境变量的默认值为可开机的配置,这样,就算备份变量也被损坏或者NAND Flash内存中没有存储环境变量时,使用默认环境变量,系统也能正常开机运行;
因为默认环境变量是写在Mboot的源代码中的,它是无法更新的,所以它缺乏灵活性,使用默认环境变量是最后一道防线,可以确保正常开机,相比完全无法开机,大大提高了用户体验度。
进一步的,因为NAND Flash内存的物理特性,在对环境变量进行更新时,需要先擦除老的存储块,再写入新的环境变量,如果在更新过程中,突然断电,会导致环境变量的不完整更新,从而使下一次开机时有可能出现无法引导操作系统内核的情况,使系统无法正常启动;为解决这一问题,可以在NAND Flash内存中存储两份内容相同,互为备份的环境变量,一份为每次开机需要读取的环境变量,另一份为该环境变量的备份变量,该备份变量即为上述步骤109中读取的备份变量;并且,在更新环境变量时,需要对两份环境变量依次更新,所以,即使在更新过程中发生断电情况,最多只会损坏一份环境变量,而另外一份环境变量是完整的,这样就不会下一次的影响正常开机,并且可以使用完整的环境变量来恢复损坏的环境变量;具体的:
当对环境变量进行更新时,先擦除该环境变量所在的内存块,并写入新环境变量;再擦除该环境变量的备份变量所在的内存块,并写入所述新环境变量的备份变量。
进一步的,因为NAND Flash内存的硬件特性,NAND Flash内存在出厂时,某些内存块就可能是损坏的,而在使用过程中,某些好的内存块也会变成损坏的内存块;因此,如果环境变量所在的内存块是损坏的内存块,会导致环境变量损坏或者无法存储。所以,在实际给环境变量分配内存块时,至少分配2个内存块,具体块数根据需要灵活调整,此处不做限制;具体的,对损坏了的内存块的处理及环境变量的写入流程请参阅图2:
201、获取备份变量所用内存块;
当第一次写入环境变量时,首先获取备份变量所用内存块。
202、判断是否为好的内存块;
判断备份变量所用内存块是否为未损坏的块,如果不是,执行步骤203,如果是,执行步骤204。
203、获取下一个内存块;
如果步骤202中判断出备份变量所用内存块是损坏了的内存块,则获取下一个内存块,直至检查到未损坏的内存块。
204、内存块擦除;
如果步骤202中判断出备份变量所用内存块是未损坏的内存块,则对该内存块进行擦除处理。
205、写备份变量;
在擦除块后,将备份变量写入该内存块。
206、获取环境变量所用内存块;
获取环境变量所用内存块是否是损坏的内存块。
207、是否为好的内存块;
判断环境变量所用块是否为好的内存块,即是否未损坏,如果不是,执行步骤208,如果是,执行步骤209。
208、获取下一个内存块;
如果步骤207中判断出环境变量所用内存块是损坏了的内存块,则检查下一个内存块,直至检查到好的内存块。
209、内存块擦除;
如果步骤207中判断出环境变量所用内存块是好的内存块,则对该内存块进行擦除处理。
210、写环境变量;
在擦除内存块后,将环境变量写入该内存块。
步骤201至210中,是先检查备份变量所用内存块,写备份变量,然后再检查环境变量所用内存块,写环境变量的,也可以先执行206至210的步骤,再执行201至205的步骤,即先检查环境变量所用内存块,写环境变量,然后再检查备份变量所用内存块,写备份变量;此处不做限制。
在本实施例中,提供了一套方案用于处理系统的启动引导,提升了环境变量存储的可靠性,能够应对各种意外,甚至在环境变量被破坏后也能确保系统正常开机;本实施例中提供的方案包括:当出现可修复的错误时,重新写入环境变量;增加重试机制应对环境变量读取错误;出错时保留错误环境变量方便调试;利用环境变量的默认设置确保系统碰到最糟糕的情况也能正常开机;考虑NAND Flash内存坏块而做出容量预留;针对掉电而做出双备份保护等等;与传统的环境变量简单存放方式相比,本实施例中提供的方案可以极大地提高系统可靠性,使环境变量的操作能应对各种异常情况,不容易损坏,即使万一被损坏也不会影响系统的正常开机。
请参阅图3,本发明系统启动引导处理的装置的实施例包括:
第一读取模块301,用于从NAND Flash内存中读取系统启动引导用环境变量;
第一判断模块302,用于判断第一读取模块301读取的环境变量是否有不可纠正错误;
累计模块303,当第一判断模块302判断出环境变量有不可纠正错误时,继续读取环境变量直至预设阈值;
第二读取模块304,当累计模块303累计的不可纠正错误的连续累计次数达到预设阈值时,读取该环境变量的备份变量,其中,该备份变量为第一读取模块301读取的环境变量的备份;
恢复模块305,用于根据第二读取模块304读取的备份变量恢复损坏的环境变量。
进一步的,本实施例中的装置还包括:
第二判断模块306,用于当第一判断模块302判断出第一读取模块301读取的环境变量没有不可纠正错误时,再判断第一读取模块301读取的环境变量是否有可纠正错误;
环境变量写入模块307,用于当第二判断模块306判断出第一读取模块301读取的环境变量有可纠正错误时,重新写入环境变量。
进一步的,本实施例中的装置还包括:
保存模块308,用于当累计模块303读取到预定阈值的环境变量仍存在不可纠正错误时,保存该环境变量。
进一步的,本实施例中的装置还包括:
检查模块309,用于检查备份变量是否可用;
第四读取模块310,用于当检查模块309检查出备份变量不可用时,读取默认环境变量。
进一步的,本实施例中的装置还包括:
第一擦除模块,用于当对环境变量进行更新时,擦除环境变量所在的内存块;
第一写入模块,用于写入新环境变量;
第二擦除模块,用于擦除上述环境变量的备份变量所在的内存块;
第二写入模块,用于写入新环境变量的备份变量。
进一步的,本实施例中的装置还包括:
第一检查模块,用于当第一次写入环境变量时,先检查环境变量的备份变量所用内存块是否是损坏的内存块,如果该备份变量所用内存块是损坏的内存块,则检查下一个内存块,直至检查到未损坏的内存块;
备份变量写入模块,用于当第一检查模块检查出备份变量所用内存块未损坏时,则将该备份变量所用内存块擦除,并写入备份变量;
第二检查模块,用于检查环境变量所用内存块是否是损坏的内存块,如果该环境变量所用内存块是损坏的内存块,则检查下一个内存块,直至检查到未损坏的内存块;
环境变量写入模块,如果当第二检查单元检查出环境变量所用内存块未损坏,则将环境变量所用内存块擦除,并写入环境变量。
在本实施例中,提供了一套方案用于处理系统的启动引导,提升了环境变量存储的可靠性,能够应对各种意外,甚至在环境变量被破坏后也能确保系统正常开机;本实施例中提供的方案包括:当出现可修复的错误时,重新写入环境变量;增加重试机制应对环境变量读取错误;出错时保留错误环境变量方便调试;利用环境变量的默认设置确保系统碰到最糟糕的情况也能正常开机;考虑NAND Flash内存坏块而做出容量预留;针对掉电而做出双备份保护等等;与传统的环境变量简单存放方式相比,本实施例中提供的方案可以极大地提高系统可靠性,使环境变量的操作能应对各种异常情况,不容易损坏,即使万一被损坏也不会影响系统的正常开机。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (13)

1.一种系统启动引导处理方法,其特征在于,包括:
从非易失闪存中读取系统启动引导用环境变量;
判断所述环境变量是否有不可纠正错误并累计所述不可纠正错误的连续累计次数;
如果不可纠正错误的连续累计次数达到预设阈值,则读取所述环境变量的备份变量,所述备份变量为所述环境变量的备份;以及
根据所述备份变量恢复损坏的环境变量。
2.根据权利要求1所述的方法,其特征在于,所述判断所述环境变量是否有不可纠正错误的步骤之后还包括:
如果所述环境变量没有不可纠正错误,则再判断是否有可纠正错误;
如果有可纠正错误,则重新将环境变量写入至非易失闪存中。
3.根据权利要求1所述的方法,其特征在于,所述读取所述环境变量的备份变量的步骤之前还包括:
检查所述备份变量是否可用;
如果所述备份变量可用,则执行读取所述环境变量的备份变量的步骤。
4.根据权利要求3所述的方法,其特征在于,所述检查备份变量是否可用的步骤之后还包括:
如果所述备份变量不可用,则读取默认环境变量。
5.根据权利要求4所述的方法,其特征在于:读取所述环境变量的备份变量的步骤之前还包括步骤:
保存所述环境变量。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当对所述环境变量进行更新时,擦除所述环境变量所在的非易失闪存中的内存块;
将新环境变量写入擦除的内存块;
擦除所述环境变量的备份变量所在的非易失闪存中的内存块;
将所述新环境变量的备份变量写入擦除的内存块。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当将所述环境变量第一次写入非易失闪存时,检查所述备份变量所用内存块是否是损坏的内存块;
如果所述备份变量所用内存块是损坏的内存块,则检查下一个内存块,直至检查到未损坏的内存块;
如果所述备份变量所用内存块未损坏,则将所述备份变量所用内存块擦除,并写入所述备份变量;
检查所述环境变量所用内存块是否是损坏的内存块;
如果所述环境变量所用内存块是损坏的内存块,则检查下一个内存块,直至检查到未损坏的内存块;
如果所述环境变量所用内存块未损坏,则将所述环境变量所用内存块擦除,并写入所述环境变量。
8.一种系统启动引导处理装置,其特征在于,包括:
第一读取模块,用于从非易失闪存中读取系统启动引导用环境变量;
第一判断模块,用于判断所述环境变量是否有不可纠正错误;
累计模块,当所述第一判断模块判断出环境变量有不可纠正错误时,累计所述不可纠正错误的连续累计次数;
第二读取模块,当所述累计模块累计的不可纠正错误的连续累计次数达到预设阈值时,读取所述环境变量的备份变量,所述备份变量为所述环境变量的备份;
恢复模块,用于根据第二读取模块读取的备份变量恢复损坏的环境变量。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二判断模块,用于当所述第一判断模块判断出第一读取模块读取的环境变量没有不可纠正错误时,再判断第一读取模块读取的环境变量是否有可纠正错误;
环境变量写入模块,用于当第二判断模块判断出第一读取模块读取的环境变量有可纠正错误时,重新写入环境变量。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
检查模块,用于检查所述备份变量是否可用;
第四读取模块,用于当检查模块检查出所述备份变量不可用时,读取默认环境变量。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
保存模块,用于当第二读取模块读取到预定阈值的所述环境变量仍存在不可纠正错误时,保存所述环境变量。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第一擦除模块,用于当对所述环境变量进行更新时,擦除所述环境变量所在的非易失闪存中的内存块;
第一写入模块,用于将新环境变量写入擦除的内存块;
第二擦除模块,用于擦除所述环境变量的备份变量所在的非易失闪存中的内存块;
第二写入模块,用于将所述新环境变量的备份变量写入擦除的内存块。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第一检查模块,用于当将环境变量第一次写入非易失闪存时,检查所述备份变量所用内存块是否是损坏的内存块,如果所述备份变量所用内存块是损坏的内存块,则检查下一个内存块,直至检查到未损坏的内存块;
备份变量写入模块,用于当第一检查模块检查出所述备份变量所用内存块未损坏时,则将所述备份变量所用内存块擦除,并写入所述备份变量;
第二检查模块,用于检查所述环境变量所用内存块是否是损坏的内存块,如果所述环境变量所用内存块是损坏的内存块,则检查下一个内存块,直至检查到未损坏的内存块;
环境变量写入模块,如果当第二检查单元检查出所述环境变量所用内存块未损坏,则将所述内存块擦除,并写入所述环境变量。
CN201110242733.2A 2011-08-23 2011-08-23 一种系统启动引导处理方法及装置 Active CN102298545B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201110242733.2A CN102298545B (zh) 2011-08-23 2011-08-23 一种系统启动引导处理方法及装置
TW100137593A TWI490876B (zh) 2011-08-23 2011-10-17 系統啟動引導處理方法及裝置
US13/349,560 US8812910B2 (en) 2011-08-23 2012-01-12 Pilot process method for system boot and associated apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110242733.2A CN102298545B (zh) 2011-08-23 2011-08-23 一种系统启动引导处理方法及装置

Publications (2)

Publication Number Publication Date
CN102298545A true CN102298545A (zh) 2011-12-28
CN102298545B CN102298545B (zh) 2014-03-19

Family

ID=45358978

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110242733.2A Active CN102298545B (zh) 2011-08-23 2011-08-23 一种系统启动引导处理方法及装置

Country Status (3)

Country Link
US (1) US8812910B2 (zh)
CN (1) CN102298545B (zh)
TW (1) TWI490876B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678035A (zh) * 2013-11-11 2014-03-26 广东鼎燊科技有限公司 一种嵌入式设备中环境变量动态备份恢复的方法
CN105635820A (zh) * 2015-12-30 2016-06-01 深圳Tcl数字技术有限公司 智能设备启动方法及装置
CN105785824A (zh) * 2016-04-12 2016-07-20 上海斐讯数据通信技术有限公司 一种向Linux内核传递内存大小参数的方法及系统
CN106815033A (zh) * 2015-11-27 2017-06-09 佛山市顺德区顺达电脑厂有限公司 开机检查方法及计算机系统
CN107800710A (zh) * 2017-11-08 2018-03-13 绵阳美菱软件技术有限公司 一种智能家电与平台连接方法、系统以及物联网模块
CN108053861A (zh) * 2018-01-30 2018-05-18 江苏华存电子科技有限公司 智能型存储器装置中固件自我修复方法
CN109933374A (zh) * 2019-01-23 2019-06-25 西安微电子技术研究所 一种计算机启动方法
CN111158783A (zh) * 2019-12-29 2020-05-15 山东英信计算机技术有限公司 一种环境变量修改方法、装置、设备及可读存储介质
CN111367468A (zh) * 2018-12-26 2020-07-03 爱思开海力士有限公司 存储器系统及其操作方法
CN111459557A (zh) * 2020-03-12 2020-07-28 烽火通信科技股份有限公司 一种缩短服务器开机时间的方法及系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106227620B (zh) * 2016-07-20 2019-03-29 中国航空工业集团公司航空动力控制系统研究所 可恢复的Flash数据存储方法
KR102415218B1 (ko) * 2017-11-24 2022-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
EP3816804A4 (en) * 2018-07-20 2021-09-01 Huawei Technologies Co., Ltd. SYSTEM RESTORATION METHOD AND DEVICE
US11422896B2 (en) * 2020-03-27 2022-08-23 Intel Corporation Technology to enable secure and resilient recovery of firmware data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015652A1 (en) * 2001-08-31 2005-01-20 Dong Han Method for backing up and recovering data in the hard disk of a computer
CN101281469A (zh) * 2008-04-11 2008-10-08 青岛海信电器股份有限公司 嵌入式系统及其启动加载的方法
CN101303716A (zh) * 2008-07-08 2008-11-12 武汉大学 基于tpm的嵌入式系统恢复机制

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6384999B1 (en) * 1999-04-12 2002-05-07 Western Digital Technologies, Inc. Rewrite with embedded reassign for data recovery from marginally defective data sites on a data storage device
JP2002351685A (ja) * 2001-05-22 2002-12-06 Sankyo Seiki Mfg Co Ltd 不揮発性メモリのデータ更新方法及び制御装置
JP4404625B2 (ja) * 2003-12-25 2010-01-27 パナソニック株式会社 情報処理装置および該装置用のromイメージ生成装置
US7415644B2 (en) * 2004-10-22 2008-08-19 International Business Machines Corporation Self-repairing of microprocessor array structures
US7487397B2 (en) * 2005-10-27 2009-02-03 International Business Machines Corporation Method for cache correction using functional tests translated to fuse repair

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015652A1 (en) * 2001-08-31 2005-01-20 Dong Han Method for backing up and recovering data in the hard disk of a computer
CN101281469A (zh) * 2008-04-11 2008-10-08 青岛海信电器股份有限公司 嵌入式系统及其启动加载的方法
CN101303716A (zh) * 2008-07-08 2008-11-12 武汉大学 基于tpm的嵌入式系统恢复机制

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678035A (zh) * 2013-11-11 2014-03-26 广东鼎燊科技有限公司 一种嵌入式设备中环境变量动态备份恢复的方法
CN106815033A (zh) * 2015-11-27 2017-06-09 佛山市顺德区顺达电脑厂有限公司 开机检查方法及计算机系统
CN105635820A (zh) * 2015-12-30 2016-06-01 深圳Tcl数字技术有限公司 智能设备启动方法及装置
CN105785824A (zh) * 2016-04-12 2016-07-20 上海斐讯数据通信技术有限公司 一种向Linux内核传递内存大小参数的方法及系统
CN105785824B (zh) * 2016-04-12 2020-02-11 上海斐讯数据通信技术有限公司 一种向Linux内核传递内存大小参数的方法及系统
CN107800710A (zh) * 2017-11-08 2018-03-13 绵阳美菱软件技术有限公司 一种智能家电与平台连接方法、系统以及物联网模块
CN108053861A (zh) * 2018-01-30 2018-05-18 江苏华存电子科技有限公司 智能型存储器装置中固件自我修复方法
CN111367468A (zh) * 2018-12-26 2020-07-03 爱思开海力士有限公司 存储器系统及其操作方法
CN109933374A (zh) * 2019-01-23 2019-06-25 西安微电子技术研究所 一种计算机启动方法
CN111158783A (zh) * 2019-12-29 2020-05-15 山东英信计算机技术有限公司 一种环境变量修改方法、装置、设备及可读存储介质
CN111158783B (zh) * 2019-12-29 2022-06-03 山东英信计算机技术有限公司 一种环境变量修改方法、装置、设备及可读存储介质
CN111459557A (zh) * 2020-03-12 2020-07-28 烽火通信科技股份有限公司 一种缩短服务器开机时间的方法及系统

Also Published As

Publication number Publication date
CN102298545B (zh) 2014-03-19
TW201310457A (zh) 2013-03-01
TWI490876B (zh) 2015-07-01
US8812910B2 (en) 2014-08-19
US20130055019A1 (en) 2013-02-28

Similar Documents

Publication Publication Date Title
CN102298545B (zh) 一种系统启动引导处理方法及装置
US7197613B2 (en) Nonvolatile memory
CN102117234B (zh) 移动终端在软件升级失败时恢复原有软件的方法
US9542195B1 (en) Motherboards and methods for BIOS failover using a first BIOS chip and a second BIOS chip
US8677189B2 (en) Recovering from stack corruption faults in embedded software systems
CN109032632B (zh) 一种fota升级方法、无线通信终端及存储介质
CN103678030A (zh) 多系统设备启动系统及其方法
JP2015008005A (ja) セキュア・リカバリ装置及び方法
WO2012030547A1 (en) Handling errors during device bootup from a non-volatile memory
CN106776122A (zh) 一种基于Flash启动过程中主备保护的方法
CN104063477A (zh) 嵌入式系统启动异常的处理方法及装置
CN102541690A (zh) 一种智能卡及其恢复数据方法
CN111142911A (zh) 具有异常恢复功能的嵌入式系统及其升级方法
CN102915260B (zh) 固态硬盘容错的方法及其固态硬盘
CN100395713C (zh) 自动修复基本输入输出系统元件的方法与模块
CN114895845A (zh) 一种emmc数据存储的控制方法及嵌入式主板
CN111552592A (zh) 一种双备份启动方法及系统
CN109582332B (zh) 互联网摄像机的系统升级方法及装置
WO2023103755A1 (zh) 终端的启动方法、电子设备和计算机可读存储介质
CN111273928A (zh) 一种自升级的bootloader设计方法
CN110928726A (zh) 一种基于看门狗及pxe的嵌入式系统自恢复方法及系统
CN114356653A (zh) 一种工控防火墙掉电保护方法及装置
CN114356658A (zh) 固件升级异常的处理方法、计算机设备以及可读存储介质
CN112882757A (zh) 一种嵌入式系统双分区安全启动方法
CN109643261B (zh) 闪存中的纠错方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201023

Address after: No. 1, Xingzhu Road, Hsinchu Science Park, Taiwan, China

Patentee after: MEDIATEK Inc.

Address before: 405, 4th floor, 1st District, Shenzhen Bay science and technology ecological park, Aohai street, Nanshan District, Shenzhen City, Guangdong Province

Patentee before: Mstar Semiconductor,Inc.

Patentee before: MEDIATEK Inc.

Effective date of registration: 20201023

Address after: 405, 4th floor, 1st District, Shenzhen Bay science and technology ecological park, Aohai street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Mstar Semiconductor,Inc.

Patentee after: MEDIATEK Inc.

Address before: 518000 4-5 / F, tower building 3, scientific research and Development Park, Chinese Academy of science and technology development, Nanshan District, Shenzhen City, Guangdong Province

Patentee before: Mstar Semiconductor,Inc.

Patentee before: MSTAR SEMICONDUCTOR Inc.

TR01 Transfer of patent right