一种BOOT引导程序运行保护方法技术

技术编号:9836396 阅读:165 留言:0更新日期:2014-04-02 01:14
本发明专利技术提出一种BOOT引导程序运行保护方法,使用备份方式实现BOOT引导程序的自动更新运行。该方法包括:在系统程序存储空间中设置有初始化配置管理程序存储区和代码保护区,在该代码保护区内存储有引导加载程序和备份自更新程序,备份自更新程序包括初始化配置管理程序中的自更新代码部分;系统上电或复位后,自动运行引导加载程序,加载初始化配置管理程序的代码,通过外部控制或代码自动判定的方式,判别是否需要更新初始化配置管理程序的代码;若需要更新,则加载代码保护区内的备份自更新程序并直接运行,实现基本的BOOT自更新功能,以便重新固化初始化配置管理程序,最终完成BOOT引导程序。

【技术实现步骤摘要】
【专利摘要】本专利技术提出一种BOOT引导程序运行保护方法,使用备份方式实现BOOT引导程序的自动更新运行。该方法包括:在系统程序存储空间中设置有初始化配置管理程序存储区和代码保护区,在该代码保护区内存储有引导加载程序和备份自更新程序,备份自更新程序包括初始化配置管理程序中的自更新代码部分;系统上电或复位后,自动运行引导加载程序,加载初始化配置管理程序的代码,通过外部控制或代码自动判定的方式,判别是否需要更新初始化配置管理程序的代码;若需要更新,则加载代码保护区内的备份自更新程序并直接运行,实现基本的BOOT自更新功能,以便重新固化初始化配置管理程序,最终完成BOOT引导程序。【专利说明】一种BOOT引导程序运行保护方法
本专利技术属于嵌入式系统软件设计领域,特别涉及到一种BOOT引导程序运行保护方法。
技术介绍
嵌入式系统程序运行时,首先要运行BOOT引导程序,处理器从外部非易失存储器(如FLASH,PROM等)加载BOOT软件代码运行。BOOT引导程序主要完成处理器、内存控制器、通信端口等的初始化工作,从而完成系统的基本配置。而后,由BOOT引导程序负责,加载运行操作系统或应用测试程序。BOOT引导程序还有一个重要的功能,就是负责引导程序自身、操作系统和应用的更新固化,因此,BOOT引导程序是嵌入式系统正确运行和功能实现的前提和关键。BOOT引导程序是嵌入式系统软件设计的关键模块,但是,目前的多数嵌入式系统只有单一的BOOT引导程序。在系统调试维护和更新操作时,因为引导程序缺乏有效保护机制,经常出现BOOT引导程序被破坏的问题。另外,单一的BOOT引导程序,包含上电引导加载程序和与系统紧密相关的初始化配置程序,在系统配置变化或工作方式改变需要适应性升级时,任何一点变化都需要更新整个BOOT引导程序,增加了出错的概率。第三,单一的BOOT引导程序一旦出错,将导致整个系统无法运行,只能连接仿真器才能重新固化BOOT引导程序。这种单一的BOOT引导方式有诸多缺点:一是作为系统软件的关键模块,BOOT引导程序没有保护措施和容错机制,使可靠性降低;二是BOOT引导程序和系统配置紧密相关,导致出错概率增加,灵活性设计不足;三是BOOT引导程序被破坏后,只能通过连接仿真器才能重新固化引导程序,在嵌入式系统中,这种操作非常的繁琐和复杂,给在外场的升级带来很大困难。
技术实现思路
针对嵌入式系统传统的单一 BOOT引导方式存在的局限和不足,本专利技术提出一种BOOT引导程序运行保护方法,使用备份方式实现BOOT引导程序的自动更新运行。本专利技术的技术方案是:一种BOOT引导程序运行保护方法,包括:在系统程序存储空间中设置有初始化配置管理程序存储区和代码保护区,在该代码保护区内存储有引导加载程序和备份自更新程序,备份自更新程序包括初始化配置管理程序中的自更新代码部分;系统上电或复位后,自动运行引导加载程序,加载初始化配置管理程序的代码,通过外部控制或代码自动判定的方式,判别是否需要更新初始化配置管理程序的代码;若不需更新,则直接运行加载的初始化配置管理程序的代码,完成BOOT引导程序;若需要更新,则加载代码保护区内的备份自更新程序并直接运行,实现基本的BOOT自更新功能,以便重新固化初始化配置管理程序,最终完成BOOT引导程序。基于上述基本方案,本专利技术还做如下优化限定和改进:通过外部控制的方式,是采用外部离散量作为状态控制信号进行判别;通过代码自动判定的方式,是在后续的配置管理程序代码段生成“键值”信息,加载代码后判定“键值”来判定加载初始化配置管理程序的代码是否正确。对代码保护区设置为“只读、可执行”属性,从而确保代码段不会被破坏。重新固化初始化配置管理程序,是通过外部串口 RS232写入正确的初始化配置管理程序。在通过外部串口 RS232写入正确的初始化配置管理程序时,设置“密码保护”机制,防止非授权用户对代码保护区的访问。本专利技术能够避免出现BOOT引导程序更新错误导致的严重过后果,简化应用调试、维护升级工作,提高系统应用的灵活性、可靠性和可维护性。具体有以下优点:1、B00T引导程序采用备份更新方式实现容错恢复功能,大大系统的可靠性和可维护性。2、B00T程序的管理更新自动判别进行,彻底避免了 BOOT错误导致的系统问题,方法简单灵活,资源占用代价小。3、采用密码保护和程序区“只读”属性限制双重策略来防止系统误操作,提高系统更新的安全性和健壮性。【专利附图】【附图说明】图1为本专利技术的原理框图。图2为具体实施例验证平台模块的系统架构简图。图3为具体实施例验证平台模块系统FLASH存储结构示意图。【具体实施方式】本专利技术的核心的设计思想就是如果BOOT引导程序出现错误时,系统自动重新加载更新程序,确保运行。其技术方案是:将传统的BOOT引导程序功能划分为引导更新程序和系统初始化配置管理程序两大部分,同时增加备份的自更新程序代码区。引导更新程序主要完成两个功能,正常情况下,加载运行初始化配置管理程序并运行,实现原有的BOOT引导程序的功能。若判定配置管理程序出错,自动将保护区备份的更新程序加载到配置管理程序代码区,保证整个BOOT引导程序的重新完整运行。对引导更新程序区和备份自更新程序区设置保护机制,确保代码安全。初始化配置管理程序完成其余BOOT程序的功能,包括系统的初始化配置、加载引导操作系统或应用程序运行等。另外,系统初始化配置管理程序可以完成原有的自更新升级工作。如图1所示,本专利技术的原理如下。1.引导更新程序引导更新程序实现原有的BOOT引导程序的功能。在嵌入式系统设计中,BOOT引导程序一般存放在外部非易失存储器(如FLASH、PROM等)中,处理器运行的第一条指令就是引导更新程序的起始指令。引导更新程序只负责完成最基本的初始化工作,如工作主频、存储控制器配置等。弓I导更新程序随后根据判定信息决定加载运行或是自动更新初始化配置管理程序。程序运行的判定可采取外部控制或代码自动判定的方式实现。采用外部控制方式,需要设置外部的状态控制信号,例如可以采用外部离散量判别。采用代码自动判定的方式,需要在后续的配置管理程序代码段生成“键值”信息,加载代码后判定“键值”来决定后续处理操作。引导更新程序判定正常工作情况下,直接加载运行初始化配置管理程序并运行。若通过外部信息指示或自动“键值”判定错误,则程序跳转至备份自更新程序,将代码保护区备份的自更新程序代码自动加载到配置管理程序区,覆盖错误的程序代码。引导更新程序一般采用汇编语言编写,需要在产品交付前通过仿真器进行代码固化。同时,设置该程序段和代码段为“只读、可执行”属性,确保引导更新程序不会被误操作,保证安全性。2.备份自更新程序采用备份保护机制的BOOT引导程序的设计方法,核心的设计思想就是如果BOOT引导程序出现错误时,会自动重新加载更新,确保运行。因此,需要将BOOT的自更新程序进行安全备份。备份代码应尽量精简有效,减少资源占用,因此,备份程序只实现自更新功能。如果BOOT程序出错,备份程序自动加载覆盖错误程序,实现新的BOOT程序可以完成基本的更新功能,可以进行重新的BOOT程序更新固化操作。自更新的备份程序可以和引导程序一起存放,也可以存储器在其他类型的外本文档来自技高网
...

【技术保护点】
一种BOOT引导程序运行保护方法,包括:在系统程序存储空间中设置有初始化配置管理程序存储区和代码保护区,在该代码保护区内存储有引导加载程序和备份自更新程序,备份自更新程序包括初始化配置管理程序中的自更新代码部分;系统上电或复位后,自动运行引导加载程序,加载初始化配置管理程序的代码,通过外部控制或代码自动判定的方式,判别是否需要更新初始化配置管理程序的代码;若不需更新,则直接运行加载的初始化配置管理程序的代码,完成BOOT引导程序;若需要更新,则加载代码保护区内的备份自更新程序并直接运行,实现基本的BOOT自更新功能,以便重新固化初始化配置管理程序,最终完成BOOT引导程序。

【技术特征摘要】

【专利技术属性】
技术研发人员:邓豹周勇韩强段小虎邹晨袁迹代明清周啸
申请(专利权)人:中国航空工业集团公司第六三一研究所
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1