EDN China > 设计实例 > 嵌入式系统 > MCU(单片机应用) > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

嵌入式操作系统休眠唤醒后自动运行程序的方法

陈鹏?? 王树志?? 董孝峰?? 张全胜?? 北京中科院软件中心有限公司?? 2012年09月25日 ?? 收藏1

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)执行控制模块的可执行文件,使其在改变标志位后立即执行快速启动程序,从而保证系统以后每次重启后都能够自动运行目标脚本和应用程序。

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

《电子设计技术》网站版权所有,谢绝转载


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

休眠技术? 进程开关? 信号传递? 嵌入式操作系统?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈