引导程序切换处理方法及装置、计算机设备、介质制造方法及图纸

技术编号:24682405 阅读:25 留言:0更新日期:2020-06-27 07:43
本申请涉及引导程序切换处理方法及装置、计算机设备、介质,方法包括:在FLASH芯片中预留一个字节的空间用来保存主用引导程序的启动标识boot_flag;当CPU上电,从备用引导程序执行指令;从FLASH固定的位置读取一个字节的数据到启动标识boot_flag变量;如果boot_flag<=0xf0则继续执行备用引导程序的指令;如果启动标识boot_flag大于0xf0,则将主用引导程序的地址装载到CPU的程序计数寄存器PC中,完成从备用引导程序到主用引导程序的跳转。本发明专利技术的引导程序切换处理操作简单,实现容易,切换动作快,方便用户使用,并且实现简单,可靠性高。

Handling methods and devices, computer equipment and media for switching of boot program

【技术实现步骤摘要】
引导程序切换处理方法及装置、计算机设备、介质
本申请涉及嵌入式驱动
,特别是涉及一种引导程序切换处理方法及装置、计算机设备、可读存储介质。
技术介绍
在计算机系统中,引导程序非常重要的重要,如果其被破坏了,那么计算机系统将无法启动而变成“砖头”,除非用硬件工具重新烧录启动程序。很多嵌入式设备都会对启动程序做保护,甚至做两个引导程序。在正常情况下,CPU是运行主引导程序。一般情况下,对引导程序的升级,只是更新主引导程序,而备用引导程序保留了最基本的功能,大部分情况下是不会升级的。如果在升级主引导程序后,发现系统无法正常启动,这样在线升级的功能也不能使用了,那么必须将主用引导程序置为无效,改成从备用引导程序启动。如何切换主备引导程?现有技术的做法是,用相关命令将主用引导程序设置为不可用或者直接删除,然后CPU启动备用引导程序。现有技术的的做法,需要能连接设备命令行的工具,一般是串口线和串口终端软件。另外,如果主用引导程序都不能启动到命令行,那么用命令去设置的方法根本不可行。最终还是只能用烧录芯片的方法去更新启动程序。即现有技术的引导程序切换处理非常麻烦,操作繁琐,费时费力,不方便用户使用。因此,现有技术有待改进。
技术实现思路
本专利技术针对上述现有技术中的技术问题,提供一种引导程序切换处理方法及装置、计算机设备、可读存储介质,本专利技术的引导程序切换处理操作简单,实现容易,切换动作快,方便用户使用,并且实现简单,可靠性高。本专利技术的技术方案如下:一种引导程序切换处理方法,其中,所述方法包括:在FLASH芯片中预留一个字节的空间用来保存主用引导程序的启动标识boot_flag;当CPU上电,从备用引导程序执行指令,初始化CPU内部寄存器,完成对FLASH的配置;从FLASH固定的位置读取一个字节的数据到启动标识boot_flag变量;判断启动标识boot_flag是否大于0xf0,如果boot_flag小于或等于0xf0则继续执行备用引导程序的指令;如果启动标识boot_flag大于0xf0,则将主用引导程序的地址装载到CPU的程序计数寄存器PC中,完成从备用引导程序到主用引导程序的跳转。所述引导程序切换处理方法,其中,所述如果boot_flag小于或等于0xf0则继续执行备用引导程序的指令的步骤包括:如果boot_flag不大于0xf0,则继续执行备用引导程序的指令;升级主用引导程序;启动内核或者执行boot命令。所述引导程序切换处理方法,其中,所述如果启动标识boot_flag大于0xf0,则将主用引导程序的地址装载到CPU的程序计数寄存器PC中,完成从备用引导程序到主用引导程序的跳转的步骤包括:如果启动标识boot_flag大于0xf0则点亮设备上的一个状态指示灯;接着将CPU运行程序计数器PC修改为主用引导程序的地址空间,跳转到主用引导程序;然后对boot_flag从低到高的第一个bit1置为0,并保存在flash中。所述引导程序切换处理方法,其中,所述然后对boot_flag从低到高的第一个bit1置为0,并保存在flash中的步骤之后还包括:点亮红灯,指示当前已经进入了主用引导程序;初始化各个驱动以及模块;主引导程序完全启动;主引导程序完全启动后,点亮绿灯,熄灭红灯;将boot_flag置为0xff,并写入flash中;启动内核或者执行boot命令。所述引导程序切换处理方法,其中,还包括以下步骤:如果要强行将主用引导程序置为无效;通过RESET按键复位系统,boot_flag将等于0xf0,CPU将启动备用引导程序。所述引导程序切换处理方法,其中,其还包括步骤:按下RESET键后,CPU直接复位并从备用引导程序启动;当按四次RESET键后,boot_flag=0xf0,根据预先的判断条件,不满足执行主用引导呈现的条件,继续执行备用引导程序;在备用引导程序中,控制利用在线升级功能重新更新主用引导程序。一种引导程序切换处理装置,其中,所述装置包括:预设模块,用于在FLASH芯片中预留一个字节的空间用来保存主用引导程序的启动标识boot_flag;初始化模块,用于当CPU上电,从备用引导程序执行指令,初始化CPU内部寄存器,完成对FLASH的配置;读取模块,用于从FLASH固定的位置读取一个字节的数据到启动标识boot_flag变量;第一控制模块,用于判断启动标识boot_flag是否大于0xf0,如果boot_flag小于或等于0xf0则继续执行备用引导程序的指令;第二控制模块,用于如果启动标识boot_flag大于0xf0,则将主用引导程序的地址装载到CPU的程序计数寄存器PC中,完成从备用引导程序到主用引导程序的跳转。所述引导程序切换处理装置,其中,还包括:强制执行模块,用于如果要强行将主用引导程序置为无效;通过RESET按键复位系统,boot_flag将等于0xf0,CPU将启动备用引导程序。一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其中,所述处理器执行所述计算机程序时实现任一项所述引导程序切换处理方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现任一项所述的引导程序切换处理方法的步骤。与现有技术相比,本专利技术实施例具有以下优点:提供一种引导程序切换处理方法及装置、计算机设备、可读存储介质,本专利技术提出一种能将主引导程序设置为无效,然后从备用引导程序启动的方法。利用NORFLASH(一种非易失闪存)的写0特性,即flash只能从1写成0,而不能从0写成1,除非对整块flash进行擦除。用FLASH的一个字节(8bit)中1的个数来记录状态,每启动一次,则将该8bit数据从低到高的第一个1写成0。8bit总共可以写8次0,那么最多记录八次启动次数。另外,设备提供了RESET按键(类似PC的热启动按钮),按下去就会复位系统。本专利技术的引导程序切换处理操作简单,实现容易,切换动作快,方便用户使用,并且实现简单,可靠性高。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例1的一种引导程序切换处理方法的流程示意图。图2为本专利技术实施例1的一种引导程序切换处理方法CPU上电主备引导引种结构示意图。图3为本专利技术另一具体应用实施例的一种引导程序切换处理方法流程图。图4为本专利技术另一具体应用实施例的一种引导程序切换处理方法按按下RESET键后结构流程图。图5本文档来自技高网...

【技术保护点】
1.一种引导程序切换处理方法,其特征在于,所述方法包括:/n在FLASH芯片中预留一个字节的空间用来保存主用引导程序的启动标识boot_flag;/n当CPU上电,从备用引导程序执行指令,初始化CPU内部寄存器,完成对FLASH的配置;/n从FLASH固定的位置读取一个字节的数据到启动标识boot_flag变量;/n判断启动标识boot_flag是否大于0xf0,如果boot_flag小于或等于0xf0则继续执行备用引导程序的指令;/n如果启动标识boot_flag大于0xf0,则将主用引导程序的地址装载到CPU的程序计数寄存器PC中,完成从备用引导程序到主用引导程序的跳转。/n

【技术特征摘要】
1.一种引导程序切换处理方法,其特征在于,所述方法包括:
在FLASH芯片中预留一个字节的空间用来保存主用引导程序的启动标识boot_flag;
当CPU上电,从备用引导程序执行指令,初始化CPU内部寄存器,完成对FLASH的配置;
从FLASH固定的位置读取一个字节的数据到启动标识boot_flag变量;
判断启动标识boot_flag是否大于0xf0,如果boot_flag小于或等于0xf0则继续执行备用引导程序的指令;
如果启动标识boot_flag大于0xf0,则将主用引导程序的地址装载到CPU的程序计数寄存器PC中,完成从备用引导程序到主用引导程序的跳转。


2.根据权利要求1所述引导程序切换处理方法,其特征在于,所述如果boot_flag小于或等于0xf0则继续执行备用引导程序的指令的步骤包括:
如果boot_flag不大于0xf0,则继续执行备用引导程序的指令;
升级主用引导程序;
启动内核或者执行boot命令。


3.根据权利要求1所述引导程序切换处理方法,其特征在于,所述如果启动标识boot_flag大于0xf0,则将主用引导程序的地址装载到CPU的程序计数寄存器PC中,完成从备用引导程序到主用引导程序的跳转的步骤包括:
如果启动标识boot_flag大于0xf0则点亮设备上的一个状态指示灯;
接着将CPU运行程序计数器PC修改为主用引导程序的地址空间,跳转到主用引导程序;
然后对boot_flag从低到高的第一个bit1置为0,并保存在flash中。


4.根据权利要求3所述引导程序切换处理方法,其特征在于,所述然后对boot_flag从低到高的第一个bit1置为0,并保存在flash中的步骤之后还包括:
点亮红灯,指示当前已经进入了主用引导程序;
初始化各个驱动以及模块;
主引导程序完全启动;
主引导程序完全启动后,点亮绿灯,熄灭红灯;
将boot_flag置为0xff,并写入flash中;
启动内核或者执行boot命令。


5.根...

【专利技术属性】
技术研发人员:梁栋吴闽华孟庆晓秦金昆杨超戴瑜
申请(专利权)人:深圳震有科技股份有限公司
类型:发明
国别省市:广东;44

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

1