一种嵌入式系统启动方法和装置的制造方法

文档序号:8487680阅读:511来源:国知局
一种嵌入式系统启动方法和装置的制造方法
【技术领域】
[0001]本发明涉及嵌入式技术领域,特别是涉及一种嵌入式系统启动方法和装置。
【背景技术】
[0002]在嵌入式系统中,为监控应用程序的健康状态,一般都会加入Watchdog即看门狗定时器硬件设备。具体监控方式如下:当开启嵌入式系统后,应用程序按照固定的设定周期与Watchdog设备进行交互,以证明应用程序的状态为健康。而一旦应用程序故障,应用程序将停止与Watchdog设备交互,Watchdog设备在设定周期内未接收到应用程序发送的交互信息,则判定应用程序故障,此时,Watchdog设备将触发嵌入式系统重启,其中,嵌入式系统重启既包括嵌入式硬件复位,又包括嵌入式软件系统重启,而嵌入式软件系统重启又包括应用程序重启。因此,通过对嵌入式系统进行重启,可对应用程序进行重启使应用程序恢复正常的工作状态。
[0003]现有的嵌入式系统重启方案,在由Watchdog触发的嵌入式系统重启时,Watchdog将迫使硬件执行复位操作,系统中的各芯片将经历一次HRESET硬件复位操作,系统各处理器及其内部寄存器均回归到初始化状态,此时,硬件中存储的信息将被初始化。因此,在嵌入式系统硬件复位以及软件系统重新启动后,将无法获知嵌入式系统的重启是否为由Watchdog触发的重启。由于无法获知嵌入式系统的重启是否为由Watchdog触发的重启,因此,应用程序在重新启动时则不能确定是否需要将应用程序恢复成嵌入式系统重启前的状态,故直接恢复至应用程序的初始化界面。这样,假如是应用程序故障引起的嵌入式系统重启,用户需要重新进入应用程序在嵌入式系统重启前的状态,不仅为用户带来不便,还会增加系统的操作负担。

【发明内容】

[0004]本发明提供了一种嵌入式系统启动方法和装置,以解决现有的嵌入式系统重启方案无法获知嵌入式系统的重启是否为由Watchdog触发的重启的问题。
[0005]为了解决上述问题,本发明公开了一种嵌入式系统启动方法,包括:对保留内存的初始化方式进行修改,以禁止对保留内存中存储的数值进行初始化,其中,所述保留内存为Watchdog看门狗定时器在系统内存中占用的内存;向操作系统内核发送指令,所述指令用于指示所述操作内核在启动过程中禁止占用所述保留内存;获取所述保留内存中的数据,并判断获取的所述数据中是否包含用于指示所述嵌入式系统重启为由Watchdog触发的重启的信息,若包含,则设置启动标识为第一标识,若不包含,则设置启动标识为第二标识;将设置后的启动标识发送至应用程序,以供所述应用程序依据所述启动标识判断所述嵌入式系统重启是否为由所述Watchdog触发的重启。
[0006]为了解决上述问题,本发明还公开了一种嵌入式系统启动装置,包括:第一设置模块,用于对保留内存的初始化方式进行修改,以禁止对保留内存中存储的数值进行初始化,其中,所述保留内存为Watchdog在系统内存中占用的内存;第二设置模块,用于向操作系统内核发送指令,所述指令用于指示所述操作内核在启动过程中禁止占用所述保留内存;获取判断模块,用于获取所述保留内存中的数据,并判断获取的所述数据中是否包含用于指示所述嵌入式系统重启为由Watchdog触发的重启的信息,若包含,则设置启动标识为第一标识,若不包含,则设置启动标识为第二标识;发送模块,用于将设置后的启动标识发送至应用程序,以供所述应用程序依据所述启动标识判断所述嵌入式系统重启是否为由所述Watchdog触发的重启。
[0007]与现有技术相比,本发明具有以下优点:
[0008]本发明提供的嵌入式系统启动方案,为Watchdog预留一块保留内存,当Watchdog判断出应用程序故障时,将用于指示嵌入式系统重启为由Watchdog触发的重启的信息写入保留内存中。在U-Boot (Universal BootLoader,通用启动引导)的内存初始化过程中、以及操作系统内核启动过程中均不会占用保留内存,而是将保留内存预留被Watchdog启动过程中使用,在Watchdog启动过程中可以从保留内存中获取数据,通过判断保留内存中的数据中是否包含用于指示嵌入式系统重启为由Watchdog触发的重启的信息。可见,通过本发明提供的嵌入式系统启动方法,能够在嵌入式系统启动时,通过保留内存中存储的信息判断上次嵌入式系统启动是否是由Watchdog触发的重启。
[0009]此外,本申请提供的嵌入式系统启动方案还可以将用于指示上次嵌入式系统启动是否是由Watchdog触发的重启的启动标识发送至应用程序,这样,应用程序即可通过启动标识来判断嵌入式系统重启是否是由Watchdog触发的,若是,则直接恢复上次出现故障前的执行状态,而不会展示给用户应用程序的初始化界面,用户无需重新进入应用程序在嵌入式系统重启前的状态,既减轻了系统的操作负担,又能够提升用户的使用体验。
【附图说明】
[0010]图1是根据本发明实施例一的一种嵌入式系统启动方法的步骤流程图;
[0011]图2是根据本发明实施例二的一种嵌入式系统启动方法的步骤流程图;
[0012]图3是根据本发明实施例三的嵌入式系统首次启动过程中U-Boot、LinuxKerne1、Watchdog启动阶段的步骤流程图;
[0013]图4是实施例三中的嵌入式启动系统过程中应用程序重启过程的步骤流程图;
[0014]图5是根据本发明实施例三的嵌入式系统非首次启动过程中的U-Boot、LinuxKernel、Watchdog启动阶段的步骤流程图;
[0015]图6是实施例三中的嵌入式系统在Linux Kernel运行过程中Watchdog的触发的流程图;
[0016]图7是根据本发明实施例四的一种嵌入式系统启动装置的结构框图;
[0017]图8是根据本发明实施例五的一种嵌入式系统启动装置的结构框图。
【具体实施方式】
[0018]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0019]实施例一
[0020]参照图1,示出了本发明实施例一的一种嵌入式系统启动方法的步骤流程图。
[0021]本实施例的嵌入式系统启动方法包括以下步骤:
[0022]步骤S102:对保留内存的初始化方式进行修改,以禁止对保留内存中存储的数值进行初始化。
[0023]其中,保留内存为Watchdog看门狗定时器在系统内存中占用的内存。在嵌入式系统运行过程中,当应用程序发生故障时,嵌入式系统将进入Watchdog超时中断处理函数,具体地:获取该保留内存,并在保留内存中写入用于指示本次重启为由Watchdog触发的重启的信息,这样,当嵌入式系统重启时,则可通过判断保留内存中是否存储有该信息,来进一步判断本次嵌入式启动是否为由Watchdog触发的重启。
[0024]步骤S104:向操作系统内核发送指令,以指示操作系统内核在启动过程中禁止占用保留内存。
[0025]其中,该指令用于指示操作内核在启动过程中禁止占用保留内存。
[0026]对于向操作系统内核发送的指令中携带的具体信息可以由本领域技术人员根据实际需求进行设置,携带的信息可以为用来限定操作系统内核启动过程中可以占用哪些内存,也可以用来限定操作系统内核启动过程中不可以占用哪些内存,或者,仅是用来限定不能占用保留内存。
[0027]在嵌入式系统启动过程中,需要经历U-Boot启动过程(包括内存初始化过程)、操作系统内核启动过程以及Watchdog启动过程。本实施例中,在内存初始化过程中不对保留内存中的数值进行初始化、并且操作系统内核启动过程中也不占用保留内存,这就保证了保留内存中的存储的数据不被覆盖掉,这样,在Watchdog启动过程中即可获取保留内存中存储的数据。
[0028]步骤S106:获取保留内存中的数据,并判断获取的数据中是否包含用于指示嵌入式系统重启为由Watchdog触发的重启的信息,若包含,则执行步骤S108,若不包含,则执行步骤SI 10。
[0029]上边已经说明了,若本次启动为由Watchdog触发的重启,则在保留内存中存储有用于指示嵌入式系统重启为由Watchdog触发的重启的信息,若本次启动并非是由Watchdog触发的重启,则在保留内存中将不会存储有用于指示嵌入式系统重启为由Watchdog触发的重启的信息。
[0030]步骤S108:当判断保留内存中的数据包含用于指示嵌入式系统重启为由Watchdog触发的重启的信息时,设置启动标识为第一标识,然后,执行步骤S112。
[0031]步骤SllO:当判断保留内存中的数据不包含用于指示嵌入式系统重启为由Watchdog触发的重启的信息时,设置启动标识为第二标识,然后,执行步骤S112。
[0032]其中,第一标识用于指示本次嵌入式系统重启为由Watchdog触发的重启,第二标识用于指示本次嵌入式系统重启不是由Watchdog触发的重启,
[0033]对于第一标识以及第二标识的具体设置,可以由本领域技术人员根据实际需求进行设置,如:将第一标识设定为1、将第二标识设定为0,或将第一标识设定为是、将第二标识设定为否,或将第一标识设定为Y、将第二标识设定为N等,保证应用程序获取到启动标识能够识别标识所指代的含义即可,
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1