为了提高系统的启动速度,通常采用基于休眠技术的方式来实现嵌入式系统的快速启动。例如,在一些数字电视中,采用休眠技术以后的启动时间要比原来的启动时间约快1/3。但基于休眠技术的启动方法有其不足之处:在保存内存内容时只能把内存中的信息以快照的形式保存到磁盘或其他外部存储设备,原来系统内某些正在运行的动态进程及进程本身的执行过程不能被完全保存下来,从而导致系统重新启动后此部分进程不能正常运行;基于休眠技术的启动方式一旦以快照的形式保存后其里面的内容将无法改动。基于此,本文运用一种新方法,实现了基于休眠的嵌入式操作系统启动后,可自动运行任何形式的目标脚本和应用程序。
1 休眠唤醒后程序自动运行的方法
最新的Linux2.6内核都支持休眠和待机机制,PC系统中的实现方式有suspend2、swsusp、TuxOnIce等技术,既可以把镜像文件保存到交换分区,也可以保存到一个文件。Linux中这些休眠的具体实现方式有内核方式和软件方式两种,但两种方式都把休眠过程分为两个阶段: (1)SUSPEND阶段:保存当前系统各种状态到非易失性存储设备并关机;(2)RESUME阶段:系统重新启动,引导后恢复已保存的状态。一般嵌入式操作系统的休眠过程如图1所示,休眠后恢复过程如图2所示。
本文提出一种基于休眠开关如图3所示的唤醒后程序自动运行方法。此方法的系统整体框架分为自动执行引擎、开关控制进程、休眠开关和配置文件4个部分。
1.1 自动执行引擎
自动执行引擎采用守护进程实现的方式。所谓守护进程就是Daemon进程,是Linux中的后台服务程序,是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些事件的发生[5]。守护进程常常在系统引导装入时启动,在系统关闭时终止。把要运行的目标脚本和应用程序放到守护进程中,并定义一个全局变量Autoflg作为标志位。运用此模块的目的是让其在操作系统后台运行,通过标志位实时监控目标脚本和应用程序的运行状态。守护进程的整体结构图如图4所示。
1.2 开关控制模块
此模块的功能是控制守护进程中的Autoflg标志位,此标志位是在守护进程中的主调函数程序中设置的,用来控制目标脚本和应用程序的运行状态。其具体程序框图如图6所示。
1.3 休眠模块
此模块实现守护进程和控制模块之间的通信,采用系统调用的方式,目的是通过控制模块的执行来控制守护进程中标志位的变化,而这种控制是通过在内核中插入信号传递模块来实现。
1.4 配置文件
配置文件(即方法执行)过程:
(1)执行时首先运行守护进程,但要通过Autoflg标志位保证目标脚本和应用程序处于不运行状态。
(2)运行控制标志位函数修改Autoflg,让其保证目标脚本和应用程序可以运行。
(3)执行快速启动,系统执行快速启动程序同时确保保存到磁盘或其他存储设备中的标志位是处于可以使目标脚本和应用程序运行的状态。
(4)因为基于休眠的快速启动方法是以快照的方式把内存内容保存到磁盘或其他存储设备中,并且一旦执行,里面的内容将无法修改,所以以后每次操作系统启动时都能保证守护进程的正常运行,同时也能保证守护进程中的标志位处于能够使目标脚本和应用程序处于运行的状态,从而使目标脚本和应用程序能够正常运行。
(5)为了提高CPU的运行速度和整个系统的使用效率,本方法设置守护进程在每次启动目标脚本和应用程序后都自动退出。因为设置守护进程的目的就是在每次操作系统启动时,使其启动目标脚本和应用程序,待这项工作完成以后,它的使命也随之完成(即从系统的运行速度和运行效率角度来看,已没有其存在的必要性)。
关键字:嵌入式操作系统 休眠唤醒 Linux
引用地址:
嵌入式操作系统休眠唤醒后自动运行程序的方法
推荐阅读最新更新时间:2024-05-02 22:53
基于嵌入式Linux的PMP系统设计与实现
PMP系统简介
便携式多媒体播放器(PMP),也就是通常人们所说的MP4,已成为继MP3以后消费类产品的一个新热点。PMP的主要优点是:携带方便,能够直接播放高品质音/视频文件;也可以浏览图片,以及作为移动硬盘、数字银行使用;此外,还有FM、游戏等功能。PMP播放器不仅需要对机体大小有所限制,更重要的是需要一种压缩效率更高、画面质量更高的视频压缩技术,以及相关编解码芯片。本文介绍了此PMP系统的软、硬件设计,重点在软件设计,此PMP系统方案现在已经进入量产阶段。 PMP系统的硬件设计
现阶段PMP内部核心架构,大多都是采用CPU搭配DSP的方式。其中,DSP负责编/解码工作;CPU则是针对文件管理、存
[嵌入式]
Linux驱动:s3c2410/s3c2440 ts驱动分析
前言 前面结合“平台总线-设备-驱动”模型分析了ts(触摸)驱动的加载过程,现在进入驱动程序分析下其具体的实现。涉及到输入子系统、s3c2440的ADC转换和触摸控制器。 涉及的寄存器 image.png 调用probe函数 根据上一篇的分析,驱动层通过platform_driver_register注册后,会调用到该驱动层的probe函数。 s3c2410ts_probe函数分析 1. 硬件寄存器设置 获取设备参数 struct s3c2410_ts_mach_info *info; info = ( struct s3c2410_ts_mach_info *)pdev- dev.platform_data;
[单片机]
arm学习笔记之RedHat Linux 9 下 TFTP 搭建
TFTP是用来 下载 远程文件的最简单网络协议,基于UDP协议完成。 使用RedHat Linux 9中的第3张光盘。以下是root登录操作 (1)安装TFTP-server # mount /mnt/cdrom # cd /mnt/cdrom/RedHat/RPMS # rpm -ivh tftp-*.i386.rpm # cd ~ # umount /mnt/cdrom (2)修改文件 # vi /etc/xinetd.d/tftp service tftp { socket_type =dgram protocol =udp wait =yes user =root server =/usr/sbin/in.tftpd s
[单片机]
基于嵌入式Linux的智能手机系统设计
随着手持通信设备市场的快速发展,手机的功能逐渐增多。现在手机已经不只是用于语音通信的手持设备,而成为集成了短信、彩信、上网以及移动办公等附加功能的嵌入式通信平台。集成了这些功能的手机被称为智能手机。近年,嵌入式处理器的运行速度和功能都有了很大的提高,使得许多以前只能在PC上实现的应用,现在都可以在手持设备上实现。目前,市面上的智能手机主要采用Microsoft公司的ocket PC、Palm OS等商用操作系统,但这些操作系统开放的程序不够高,限制了许多第三方应用软件的移植。为使智能手机能够为第三方应用软件提供一个更为开放的嵌入式平台,笔者对智能手机系统做了比较深入的研究,提出一种以Linux作为嵌入式操作系统、Motorola的
[单片机]
Linux系统在嵌入式DVR中的应用
以强稳定性的优势,嵌入式DVR越来越被安防行业与广大客户所接受。嵌入式DVR的稳定性优势不光来自于硬件的低故障率,很大因素取决于嵌入式DVR中所采用的操作系统及应用软件的高稳定性,它所选用的软件平台起着至关重要的作用。 从国内嵌入式DVR的领军人物海康威视公司在嵌入式DVR的开发历程上,可清晰地看出Linux系统在嵌入式DVR中的地位日益凸显出来。海康威视公司第一代嵌入式DVR的研发初期,在确定以Samsung S3C2510加Ti的DM642作为其硬件平台的时候,采用了Linux与VxWorks同时开发,相互参照、评估,最终主要由于基于对WindRiver 的VxWorks商用软件的信赖,选用了VxWor
[嵌入式]
JZ2440开发笔记(1)——arm-linux-gcc环境搭建
1、下载arm-linux-gcc-4.4.3安装包,http://arm9.net/download.asp 2、解压arm-linux-gcc-4.4.3-20100728.tar.gz,使用命令tar -zxvf arm-linux-gcc-4.4.3-20100728.tar.gz 3、将解压出来的文件夹重命名为arm,然后将arm文件夹拷贝到/usr/local下,#cp -rv arm /usr/local/ 4、修改环境变量,把交叉编译器的路径加入到PATH。(推荐使用方法一) 方法一:修改/etc/bash.bashrc文件 #vim /etc/bash.bashrc 在最后
[单片机]
RTOS设备驱动向嵌人式Linux的移植
Linux暴风雨般占领了嵌入式系统市场。分析家指出,大约有1/3到1/2的32/64位新的嵌入式系统设计采用了Linux。嵌入式Linux已经在很多应用领域显示出优势,比如SOHO家庭网络和成像/多功能外设。在(NAS/SAN)存储,家庭数字娱乐(HDTV/PVR/DVR/STB),和手持设备/无线设备,特别是数字移动电话更获得大幅度发展。 嵌入式Linux新应用不会凭空从开发者的头脑中冒出来,大部分项目都是由成千上万行,甚至数百万行的代码组成。成千上百的嵌入式项目已经成功地将现有的其它平台的代码移植到Linux下,比如WindRiverVxWorks和pSOS,VRTX,Nucleus和其它RTOS。这些移植工作有着重要的
[工业控制]
linux USB 摄像头 驱动 移植,使用
1、USB摄像头的配置 UVC,全称为:USB video class 或USB video device class,是Microsoft与另外几家设备厂商联合推出的为USB视频捕获设备定义的协议标准,目前已成为USB org标准之一。 如今的主流操作系统(如Windows XP SP2 and later, Linux 2.4.6 and later, MacOS 10.5 and later)都已提供UVC设备驱动,因此符合UVC规格的硬件设备在不需要安装任何的驱动程序下即可在主机中正常使用。使用UVC技术的包括摄像头、数码相机、类比影像转换器、电视棒及静态影像相机等设备 下面就开始配置UVC的linux驱动。
[单片机]