嵌入式系统的深度休眠方法技术方案

技术编号:4167039 阅读:452 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种嵌入式系统的深度休眠方法,主要包括以下处理过程:1、在系统运行状态下判断是否长时间无操作或者接收关闭系统信号,为真则在保证硬件操作结束后进行系统保存过程,然后系统关闭并进入深度休眠模式;2、系统开启,内存映射初始化后查找深度休眠块。找到有效的深度休眠标志后,进行系统数据恢复过程;3、系统恢复成功后再进行相关硬件初始化,回到深度休眠模式前的状态。使用本发明专利技术方法可以使设备在掉电关机之后,再开机时自动回到原来的界面,大大降低待机系统的功耗,节能省电,从而延长电池的使用时间,在大幅度提升系统的启动速度的同时,保证相关硬件的使用寿命。

Deep sleep method for embedded system

The present invention provides an embedded system deep sleep method, including the following process: 1, to determine whether the long time no operation or receive closed system signal in the running state of the system, is really in the guarantee system to preserve the process of hardware at the end of the operation, then shut down and into the deep sleep mode; 2, system open the memory mapping after initialization block search depth of dormancy. After finding the valid deep sleep flag, the system data recovery process is carried out; 3, after the system has been successfully restored, the hardware initialization is carried out to return to the state before the deep sleep mode. Using the method of the invention can make the equipment in the power down after the shutdown, automatically return to the original interface and then boot, greatly reduce the power consumption, standby system energy saving, so as to prolong the using time of the battery, to greatly enhance the system startup speed at the same time, to ensure the service life of the hardware.

【技术实现步骤摘要】

本专利技术属于系统的待机休眠及唤醒
,是一种应用于。
技术介绍
目前,嵌入式移动设备的使用越来越广泛,其最大特点之一是要求功耗低,一般采 用电池供电。为了省电,移动设备经常需要进入待机模式。待机是把正在运行的程序状态 储存在内存里,当系统切换到该模式后,将切断除了内存的其他部分供电,由于内存依靠电 能维持着系统数据,唤醒的时候就可以恢复到待机前的状态。这是目前嵌入式移动设备采 用最多的待机技术。 —般的嵌入式移动设备在掉电关机之后,再开机时不能自动回到原来的界面。目 前的待机技术则可以回到原来的界面中,看起来像是关机,但实际上并没有断电,内存等设 备还在供电,只是进入待机模式而已,存在一定的功耗和设备损耗, 一直都在持续地消耗系 统资源。所以,在装置久置而未进行充电一段时间之后,手持式装置便会因为电源不足而造 成系统中断与数据遗失。而且,如果在待机模式期间不慎掉电关机,内存中的信息会被丢 弃,待机前保留的工作成果和使用状态全部丢失!这种待机模式实际上就是还要对内存 等主要设备供电,保存着当前的系统状态,以达到降低部分功耗的目的,适合短时间不用的 情况。但是当掉电关机的时候,内存中的信息会丢失,由此会带来操作上的不便。因此,需 要一种新的既省电又安全可靠的方法来解决这类问题。
技术实现思路
本专利技术的目的在于提供一种适用于嵌入式系统及其移动设备的深度休眠方法,该 方法可以使设备在掉电关机之后,再开机时自动回到原来的界面的过程中,大幅度提升系 统的启动速度,同时有利于延长相关硬件存储器的使用寿命。 为达到上述专利技术目的,本专利技术提供一种,包括以下步 骤 (a)在系统运行状态下长按关机键或长期无操作时,系统在确定硬件操作结束后 进行系统保存,其保存过程为在非易失性存储器的数据交换区中选择可用的数据交换块, 作为深度休眠块(以下称为De印Standby Block,或者直接称为Standby Block),将当前 系统数据写入此深度休眠块,同时在该块中写入深度休眠标志,最后掉电关机进入深度休 眠; (b)系统开启,内存映射初始化后查找深度休眠标志,找到有效的深度休眠标志 后,进行系统数据恢复,其恢复过程为查找有效的深度休眠块,读出该块中的系统数据,并 在该块中写入取消标志(以下称为Cancel标志),恢复CPU现场环境,然后回到系统保存前 的位置; (c)如果系统数据恢复成功并回到系统保存前的位置,则进行相关硬件初始化,回到深度休眠模式前的状态;否则系统重新启动。 所述步骤(a)的选择深度休眠块的过程为检查当前数据交换块的剩余页数,不 少于cnt+1页则将当前数据交换块作为深度休眠块,其中cnt为RAM常驻区数据页数,否则 取下一个有效数据交换块,直到选择到合适的深度休眠块为止。 所述步骤(a)的系统保存过程中还包括数据冗余保存过程,包括以下步骤选择 并记录两个深度休眠块, 一个为主体深度休眠块, 一个为备份深度休眠块;备份块为主体块 的下一个有效数据交换块,从而,系统数据在主体深度休眠块和备份深度休眠块中各保存一份。 所述步骤(b)的系统数据恢复过程失败,则记录系统数据恢复失败,并在深度休 眠块写入取消标志后进行系统重新启动。 所述步骤(b)的查找有效的深度休眠块的过程为查找序号值最大的数据交换 块,如果该块存在深度休眠标志且没有取消标志的话,则此数据交换块为备份深度休眠块; 依次判别数据交换块序号值的次最大值所在的数据交换块,即为主体深度休眠块。所述查 找数据交换块序号值的最大值采用折半检索算法。 所述数据交换块序号值、深度休眠标志、取消标志分别写在深度休眠块的倒数第3、2、1页的空闲区(以下称spare区)。 所述数据恢复中还进行数据校验,包括以下步骤 校验深度休眠块的合法性用一个全局变量记录系统数据保存前的深度休眠块的 位置,系统恢复完RAM常驻区数据后,校验当前找到的深度休眠块位置与该全局变量是否 一致,如果不一致则标记数据校验失败,并在深度休眠块写入取消标志后系统重新启动; 校验恢复数据的和值在系统保存RAM常驻区数据时,计算一个此时系统数据的 校验和值给全局变量;系统恢复完常驻区数据后,再计算一个此时恢复的系统数据的校验 和值,与所述全局变量进行比较,不一致则标记数据校验失败,并在深度休眠块写入取消标 志后系统重新启动; 上述的所有的在数据交换块中写取消标志的步骤中,如果写标志失败,则标记当 前块为坏块后系统重启。 所述CPU现场环境恢复包括设置系统堆栈,从系统数据恢复过程中恢复的系统 数据中取回超级用户模式栈的堆栈寄存器指针,再从此栈中恢复CPU寄存器的值,从而恢 复CPU现场环境。 与现有技术相比,本专利技术具有以下优点 (1)深度休眠(De印Standby)模式与实际的关机没有区别,待机功耗可以大大降 低。而且,从De印Standby模式恢复时,系统只需将保存在闪存(NandFlash)的内容加载 进内存和进行少量必要的初始化工作,数据保存和恢复的过程中采用了有效的选择和查找 数据交换块的机制,因而开机速度会大幅度地提升。普通开机耗时2 3s,在本方法中,若 以NandFlash 7M/s的读取速度计算,加载192K的内存数据大约是30ms左右,再加上硬件 初始化的时间,应该可以控制在100ms以内,大大加快了开机的速度。 (2)采用本专利技术方法的具有冗余和校验功能的Standby Block选择查找机制, 较好地确保了De印Standby模式的系统安全可靠性和较高的查找效率。同时,De印 Standby模式对De印Standby Block没有进行任何额外的擦写,与原系统完全融合,实现了 NandFlash磨损均衡的目的,最大可能地延续了 NandFlash等嵌入式系统中使用的非易 失性存储器的使用寿命。 (3)本专利技术方法可以使嵌入式设备在下次加电开机时,直接从NandFlash恢复内存数据,可以恢复到上次工作状态,从而有效地避免了工作成果的丢失。 (4)而且,De印Standby模式保存数据总共只需cnt+1页,充分利用了有不少于cnt+1空页的交换块。 (5)本专利技术方法通过在页spare区写入标志的方式,可以提高系统的读取效率,进 一步縮短开机时间。附图说明 图1为本专利技术嵌入式系统深度休眠方法的实现逻辑框图; 图2为本专利技术嵌入式系统深度休眠方法的系统保存流程图; 图3为本专利技术嵌入式系统深度休眠方法的系统恢复流程图; 图4为本专利技术嵌入式系统深度休眠方法的休眠块De印Standby Block选择示意 图; 图5为本专利技术嵌入式系统深度休眠方法的休眠块De印Standby Block页数据分 布图; 图6为本专利技术嵌入式系统深度休眠方法的硬件初始化流程图。 具体实施例方式图1示出了本专利技术的的实现逻辑框图。本方法的实现 分为三个过程系统数据和CPU状态的保存(图中标号1)、系统数据和CPU状态的恢复(图 中标号2)、相关硬件初始化(图中标号3)。 本系统是一个物理内存只有192K的微内存系统。软件上将地址虚拟到2M的地 址空间。有S2K是常驻内存的代码,加载到物理内存的前32K的空间。后面的地址空间数 据及代码是通过内存交换机制被加载到实际物理内存的后160K的空间。内存交本文档来自技高网...

【技术保护点】
一种嵌入式系统的深度休眠方法,其特征在于,包括以下步骤:(a)在系统运行状态下长按关机键或长期无操作时,系统在确定硬件操作结束后进行系统保存,其保存过程为:在非易失性存储器的数据交换区中选择可用的数据交换块,作为深度休眠块,将当前系统数据写入此深度休眠块,同时在该块中写入深度休眠标志,最后掉电关机进入深度休眠;(b)系统开启,内存映射初始化后查找深度休眠标志,找到有效的深度休眠标志后,进行系统数据恢复,其恢复过程为:查找有效的深度休眠块,读出该块中的系统数据,并在该块中写入取消标志,恢复CPU现场环境,然后回到系统保存前的位置;(c)如果系统数据恢复成功并回到系统保存前的位置,则进行相关硬件初始化,回到深度休眠模式前的状态;否则系统重新启动。

【技术特征摘要】
一种嵌入式系统的深度休眠方法,其特征在于,包括以下步骤(a)在系统运行状态下长按关机键或长期无操作时,系统在确定硬件操作结束后进行系统保存,其保存过程为在非易失性存储器的数据交换区中选择可用的数据交换块,作为深度休眠块,将当前系统数据写入此深度休眠块,同时在该块中写入深度休眠标志,最后掉电关机进入深度休眠;(b)系统开启,内存映射初始化后查找深度休眠标志,找到有效的深度休眠标志后,进行系统数据恢复,其恢复过程为查找有效的深度休眠块,读出该块中的系统数据,并在该块中写入取消标志,恢复CPU现场环境,然后回到系统保存前的位置;(c)如果系统数据恢复成功并回到系统保存前的位置,则进行相关硬件初始化,回到深度休眠模式前的状态;否则系统重新启动。2. 根据权利要求l所述的一种嵌入式系统的深度休眠方法,其特征在于所述步骤(a) 的选择深度休眠块的过程为检查当前数据交换块的剩余页数,不少于cnt+1页则将当前 数据交换块作为深度休眠块,其中cnt为RAM常驻区数据页数,否则取下一个有效数据交换 块,直到选择到合适的深度休眠块为止。3. 根据权利要求l所述的一种嵌入式系统的深度休眠方法,其特征在于所述步骤(a) 的系统保存过程中还包括数据冗余保存过程,包括以下步骤选择并记录两个深度休眠块, 一个为主体深度休眠块, 一个为备份深度休眠块;备份块为主体块的下一个有效数据交换 块,从而,系统数据在主体深度休眠块和备份深度休眠块中各保存一份。4. 根据权利要求l所述的一种嵌入式系统的深度休眠方法,其特征在于所述步骤(b) 的系统数据恢复过程失败则记录系统数据恢复失败,并在深度休眠块写入取消标志后进行 系统重新启动。5. 根据权利要求l所述的一种嵌入式系统的深度休眠方法,其特征在于所述步骤(b) 的查找有效...

【专利技术属性】
技术研发人员:赵俊化徐平罗建华胡胜发
申请(专利权)人:安凯广州微电子技术有限公司
类型:发明
国别省市:81[中国|广州]

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

1
相关领域技术
  • 暂无相关专利