嵌入式系统休眠唤醒自动运行程序的方法设计

发布者:DreamyEclipse最新更新时间:2016-09-19 来源: eefocus关键字:嵌入式系统  休眠唤醒  自动运行程序 手机看文章 扫描二维码
随时随地手机看文章
为了提高系统的启动速度,通常采用基于休眠技术的方式来实现嵌入式系统的快速启动[1]。例如,在一些数字电视中,采用休眠技术以后的启动时间要比原来的启动时间约快1/3[2]。但基于休眠技术的启动方法有其不足之处:在保存内存内容时只能把内存中的信息以快照的形式保存到磁盘或其他外部存储设备,原来系统内某些正在运行的动态进程及进程本身的执行过程不能被完全保存下来,从而导致系统重新启动后此部分进程不能正常运行;基于休眠技术的启动方式一旦以快照的形式保存后其里面的内容将无法改动。基于此,本文运用一种新方法,实现了基于休眠的嵌入式操作系统启动后,可自动运行任何形式的目标脚本和应用程序。


1 休眠唤醒后程序自动运行的方法

最新的Linux2.6内核都支持休眠和待机机制,PC系统中的实现方式有suspend2、swsusp、TuxOnIce等技术,既可以把镜像文件保存到交换分区,也可以保存到一个文件[3]。Linux中这些休眠的具体实现方式有内核方式和软件方式两种,但两种方式都把休眠过程分为两个阶段:(1)SUSPEND阶段:保存当前系统各种状态到非易失性存储设备并关机;(2)RESUME阶段:系统重新启动,引导后恢复已保存的状态[4]。一般嵌入式操作系统的休眠过程如图1所示,休眠后恢复过程如图2所示。

本文提出一种基于休眠开关如图3所示的唤醒后程序自动运行方法。此方法的系统整体框架分为自动执行引擎、开关控制进程、休眠开关和配置文件4个部分。

1.1 自动执行引擎

自动执行引擎采用守护进程实现的方式。所谓守护进程就是Daemon进程,是Linux中的后台服务程序,是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些事件的发生[5]。守护进程常常在系统引导装入时启动,在系统关闭时终止。把要运行的目标脚本和应用程序放到守护进程中,并定义一个全局变量Autoflg作为标志位。运用此模块的目的是让其在操作系统后台运行,通过标志位实时监控目标脚本和应用程序的运行状态。守护进程的整体结构图如图4所示。

守护进程模块分主调函数生成守护进程的Daemon程序和主调函数程序两部分,通过执行这两个程序最终生成在操作系统后台一直运行的守护进程。其执行的程序框图如图5所示。


1.2 开关控制模块

此模块的功能是控制守护进程中的Autoflg标志位,此标志位是在守护进程中的主调函数程序中设置的,用来控制目标脚本和应用程序的运行状态。其具体程序框图如图6所示。

1.3 休眠模块

此模块实现守护进程和控制模块之间的通信,采用系统调用的方式,目的是通过控制模块的执行来控制守护进程中标志位的变化,而这种控制是通过在内核中插入信号传递模块来实现。

1.4 配置文件

配置文件(即方法执行)过程:

(1)执行时首先运行守护进程,但要通过Autoflg标志位保证目标脚本和应用程序处于不运行状态。
(2)运行控制标志位函数修改Autoflg,让其保证目标脚本和应用程序可以运行。
(3)执行快速启动,系统执行快速启动程序同时确保保存到磁盘或其他存储设备中的标志位是处于可以使目标脚本和应用程序运行的状态。
(4)因为基于休眠的快速启动方法是以快照的方式把内存内容保存到磁盘或其他存储设备中,并且一旦执行,里面的内容将无法修改,所以以后每次操作系统启动时都能保证守护进程的正常运行,同时也能保证守护进程中的标志位处于能够使目标脚本和应用程序处于运行的状态,从而使目标脚本和应用程序能够正常运行。
(5)为了提高CPU的运行速度和整个系统的使用效率,本方法设置守护进程在每次启动目标脚本和应用程序后都自动退出。因为设置守护进程的目的就是在每次操作系统启动时,使其启动目标脚本和应用程序,待这项工作完成以后,它的使命也随之完成(即从系统的运行速度和运行效率角度来看,已没有其存在的必要性)。

2 实验分析

为了确保本文所提方法的实用性和可靠性,把其应用到海尔数字电视上进行了验证,并对验证结果进行了详细的分析。

实验环境如下:

(1)硬件环境:MSTAR 6I98电视主板:主频为700 MHz,内存为512 MB,Flash为256 MB,总线为I2C、PCI。

(2)软件环境:电视主板中运行Linux-2.6.28.9嵌入式操作系统,串口控制台服务器为Linux操作系统。
首先对海尔数字电视采用基于休眠的技术对其操作系统进行改进,实现数字电视的快速启动。但当采用休眠方式启动后,发现一些应用程序(如/applications/df_
logo、/applications/bin/haier_board)都无法正常运行。对此采用ps命令行查看其进程是否存在,发现某些进程(如df_logo)在控制台上有显示,但在实际情况中不能正常运行,而有些进程(如haier_board)根本就没有显示。

经研究表明,这些脚本或应用程序不能正常启动的原因是:logo文件的执行过程或haier_board应用程序中的一些动态界面的显示过程在休眠时不能够完全保存到休眠文件中,从而导致在休眠启动后虽然用命令行查看这些程序的进程在控制台上有显示,而电视界面不能按正常的方式显示。为了解决这个问题,把本文方法应用到操作系统中,最后结果显示:df_logo和haier_board两个应用程序在系统启动完成后即能正常启动运行,其效果和采用非休眠方式启动的效果一样,而且电视界面也能够正常显示。

实验步骤如下:

(1)把不能正常运行的应用程序和脚本文件(df_logo、haier_board)编写成目标脚本并把它放到指定目录下;(2)编写内核模块,并用系统调用的方式把模块插入到内核,用交叉编译生成新的内核和模块的.ko文件;(3)编写守护进程函数,并用交叉编译生成可执行文件;(4)编写控制模块(控制模块里包含可以使操作系统实现快速启动的函数),并用交叉编译生成可执行文件;(5)重新烧写新的内核;(6)在/etc/init.d/文件夹的相应文件里加一句加载上述模块的语句,使其在系统每次启动时都能够自动加载到内核;(7)为此模块建立设备文件;(8)执行守护进程可执行文件,使其在操作系统后台运行;(9)执行控制模块的可执行文件,使其在改变标志位后立即执行快速启动程序,从而保证系统以后每次重启后都能够自动运行目标脚本和应用程序。

本文提出了一种新的方法,实现了基于休眠的嵌入式操作系统启动后,自动运行任何形式的目标脚本和应用程序。

关键字:嵌入式系统  休眠唤醒  自动运行程序 引用地址:嵌入式系统休眠唤醒自动运行程序的方法设计

上一篇:基于STR711FR2的SIM卡检测系统设计
下一篇:基于FPGA和ARM9的片上网络系统硬件平台

推荐阅读最新更新时间:2024-03-16 15:10

医疗电子给嵌入式系统市场带来的的机遇和挑战
  随着中国政府医疗改革的开始、国民健康保健意识日益增加,赛迪顾问预测未来三年,中国便携医疗电子市场年复合增长率将超过30%,其市场规模从2006年的80亿元迅速扩大到2011的280亿元。面对巨大的市场机会,国内医疗电子业企业却面临诸多难题:强大国外医疗电子巨头在中国布局已经完成、国内医疗电子缺乏准入门槛、没有相关标准以及认证机构、医疗生物传感器等核心技术、安全和风险管理缺乏等。那么,国内电子企业该如何应对呢?   笔者参加了今年4月在深圳举办 2009中国国际医疗电子大会,会议吸引了产、学、研各方代表,尤其值得关注的是来自Intel、TI、ADI、Xilinx、Actel、微软、风河和研祥的嵌入式系统的电子元器件供应商、系
[医疗电子]
温湿度传感器SHT15及其在嵌入式系统中的应用
氡及其子体的测量是一个涵盖智能仪器、核辐射探测、核技术应用、环境评价、工业计量、工业自动化、计算机通信与软件等多领域的问题。然而氡及其子体浓度受温湿度的影响很大,因此温湿度的测量对于测氡仪来说是非常重要的。传统的模拟式温湿度传感器一般都要涉及信号调理电路并需要经过复杂的校准和标定过程,所以测量精度难以保证。由某公司生产的SHT15单芯片传感器,是一款含有已校准数字信号输出的温湿度复合传感器,应用专利的工业COMS过程微加工技术(CMOSens),确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括1个电容式聚合体测湿元件和1个能隙式测温元件,并与1个14位的A/D转换器以及串行接口电路在同一芯片上实现无缝连接。因此,该产品具有品
[嵌入式]
一种改进型UML在嵌入式系统中的应用
引言   随着计算机技术、网络技术和通信技术的迅速发展,当前的信息社会已从当初传统的个人计算机时代进入了后PC时代;而后PC时代的主要特征就是以嵌入式系统的广泛应用与发展为标志的。   关于嵌入式系统的定义虽然有很多种,不过国内普遍认可的定义是 : 以应用为中心,以计算机技术为基础,软硬件可裁剪,适合应用系统对功能、可靠性、成本、体积和功耗要求的专用计算机系统。   嵌入式系统主要是使用微型的芯片及其固化的软件,嵌入在其他系统中,以达到对其他系统进行智能化或信息化实时控制等目的。   当前,嵌入式系统已在工业控制、航空航天、国防以及信息家电等领域得到广泛的应用,并发挥了重要作用,而且越来越多的领域都迫切需要嵌入式系统的支持
[应用]
单片机与嵌入式系统中C语言的位运算小记
编了个PIC的项目,对C语言里的位运算还是蛮有感悟的,特此记录一下。 譬如说,在程序中定义了一个char类型的变量, purge_short_enable_flag, //bit 0 -- start short circuit circle timing //bit 1 --short circuit enable //bit 2 --purge H2 enable 所以在复制的时候,一定要记得不要影响其他为,之前我在使能purge的时候,直接复制了,就像purge_short_enable_flag = 0x02,结果,pic跑起来就出问题了,因为这样就影响到了short的使能的,所以还是要purge_short_enab
[单片机]
嵌入式系统联谊会12月主题讨论会即将召开
最近两年集成电路产业发生了许多变化,呈现出以下三个特点。第一是并购频繁;Intel斥资167亿美元并购Altera,Avago370亿美元并购Broadcom,NXP 118亿收购了飞思卡尔,全球集成电路产业并购数量和金额屡创新高,其中许多是嵌入式系统芯片公司,行业增速放缓让这些国际大厂只能抱团取暖。第二,以苹果、三星和华为为代表的整机公司投入到芯片设计的行列,这也大大改变了产业的格局。Intel收购Altera形成了CPU+FPGA模式,Apple收购P.A.SEMI形成了系统+硅模式 。清华大学微电子研究所魏少军预测,系统整机厂商自研芯片市场份额将从2010年的4%增长到2020年的14.15%。嵌入式系统联谊会发起委员、微电
[嵌入式]
高手进阶2.6内核的Linux嵌入式系统应用
随着多媒体技术与通讯技术相结合的信息技术的快速发展和互联网的广泛应用,PC 时代也过渡到了后PC时代。在数字信息技术和网络技术高速发展的后PC时代,嵌入式技术越来越与人们的生活紧密结合。 操作系统为用户使用计算机及其外部设备提供最基本的接口程序,管理计算机上的资源。随着应用领域的扩大,为了适应不同的应用场合,考虑到系统的灵活性、可伸缩性以及可裁剪性,一种以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统——嵌入式操作系统随之延生。 Linux 操作系统是一种性能优良、源码公开且被广泛应用的免费操作系统,由于其体积小、可裁减、运行速度高、良好的网络
[单片机]
交互式应用一举两得 实时仿真与嵌入式系统并构
1、前言 对于程序开发和许多交互式应用来说,UNIX和Windows可以算是优秀的操作 系统 。然而,它们都不适于实时应用。Tornado是美国 WindRiver公司为用户提供的 嵌入式 开发平台,VxWorks是Tornado的运行期组件,也是嵌入式行业应用最为广泛的实时操作系统。 VxWorks的实时性做的非常好,其 系统 本身的开销很小,任务调度、任务间通信和中断处理等系统公用程序精炼而高效,他们造成的延迟很短。 VxWorks提供的多任务机制对任务的控制采用了优先级抢占调度和轮转调度机制,也充分保证了可靠的实时性,使同样的硬件配置能够满足更强的实时性要求,为应用的开发留下更大的余地。 RTW(Real-Time Wor
[电源管理]
交互式应用一举两得 实时仿真与<font color='red'>嵌入式系统</font>并构
嵌入式系统的实时性问题
摘要:嵌入式系统是嵌入到对象体系中的计算机应用系统,与对象系统交互,在实现对象系统某些任务过程时,对应用系统会提出响应时间的限定要求。由于应用系统中软件运行的时间耗费,常常不能满足限定的时间响应要求,由此而产生了嵌入式应用系统的实时性问题。本文粗浅地归纳嵌入式应用系统实时性的诸多问题,希望引起大家关注。 关键词:嵌入式系统 实时性 快速性 操作系统 随着后PC时代以及网络、通信技术时代的到来,大量的计算机专业人员进入了嵌入式应用领域;然而,有大量的嵌入式系统应用是以单片机的形式,应用在传统的电子技术领域中。因此,以计算机领域人员为主体的,远离对象系统的嵌入式系统的计算机工程应用模式,和以电子技术领域人员为主体,与对象系统紧耦
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved