<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式操作系統休眠喚醒后自動(dòng)運行程序的方法

嵌入式操作系統休眠喚醒后自動(dòng)運行程序的方法

作者: 時(shí)間:2012-10-03 來(lái)源:網(wǎng)絡(luò ) 收藏


本文引用地址:http://dyxdggzs.com/article/148374.htm



1.2 開(kāi)關(guān)控制模塊


此模塊的功能是控制守護進(jìn)程中的Autoflg標志位,此標志位是在守護進(jìn)程中的主調函數中設置的,用來(lái)控制目標腳本和應用狀態(tài)。其具體框圖如圖6所示。


1.3 模塊


此模塊實(shí)現守護進(jìn)程和控制模塊之間的通信,采用系統調用的方式,目的是通過(guò)控制模塊的執行來(lái)控制守護進(jìn)程中標志位的變化,而這種控制是通過(guò)在內核中插入信號傳遞模塊來(lái)實(shí)現。


1.4 配置文件


配置文件(即執行)過(guò)程:


(1)執行時(shí)首先守護進(jìn)程,但要通過(guò)Autoflg標志位保證目標腳本和應用程序處于不狀態(tài)。


(2)運行控制標志位函數修改Autoflg,讓其保證目標腳本和應用程序可以運行。


(3)執行快速啟動(dòng),系統執行快速啟動(dòng)程序同時(shí)確保保存到磁盤(pán)或其他存儲設備中的標志位是處于可以使目標腳本和應用程序運行的狀態(tài)。


(4)因為基于的快速啟動(dòng)是以快照的方式把內存內容保存到磁盤(pán)或其他存儲設備中,并且一旦執行,里面的內容將無(wú)法修改,所以以后每次啟動(dòng)時(shí)都能保證守護進(jìn)程的正常運行,同時(shí)也能保證守護進(jìn)程中的標志位處于能夠使目標腳本和應用程序處于運行的狀態(tài),從而使目標腳本和應用程序能夠正常運行。


(5)為了提高CPU的運行速度和整個(gè)系統的使用效率,本設置守護進(jìn)程在每次啟動(dòng)目標腳本和應用程序后都退出。因為設置守護進(jìn)程的目的就是在每次啟動(dòng)時(shí),使其啟動(dòng)目標腳本和應用程序,待這項工作完成以后,它的使命也隨之完成(即從系統的運行速度和運行效率角度來(lái)看,已沒(méi)有其存在的必要性)。

2 實(shí)驗分析


為了確保本文所提方法的實(shí)用性和可靠性,把其應用到海爾數字電視上進(jìn)行了驗證,并對驗證結果進(jìn)行了詳細的分析。


實(shí)驗環(huán)境如下:


(1)硬件環(huán)境:MSTAR 6I98電視主板:主頻為700 MHz,內存為512 MB,Flash為256 MB,總線(xiàn)為I2C、PCI。


(2)軟件環(huán)境:電視主板中運行Linux-2.6.28.9,串口控制臺服務(wù)器為L(cháng)inux操作系統。


首先對海爾數字電視采用基于的技術(shù)對其操作系統進(jìn)行改進(jìn),實(shí)現數字電視的快速啟動(dòng)。但當采用休眠方式啟動(dòng)后,發(fā)現一些應用程序(如/applications/df_

logo、/applications/bin/haier_board)都無(wú)法正常運行。對此采用ps命令行查看其進(jìn)程是否存在,發(fā)現某些進(jìn)程(如df_logo)在控制臺上有顯示,但在實(shí)際情況中不能正常運行,而有些進(jìn)程(如haier_board)根本就沒(méi)有顯示。


經(jīng)研究表明,這些腳本或應用程序不能正常啟動(dòng)的原因是:logo文件的執行過(guò)程或haier_board應用程序中的一些動(dòng)態(tài)界面的顯示過(guò)程在休眠時(shí)不能夠完全保存到休眠文件中,從而導致在休眠啟動(dòng)后雖然用命令行查看這些程序的進(jìn)程在控制臺上有顯示,而電視界面不能按正常的方式顯示。為了解決這個(gè)問(wèn)題,把本文方法應用到操作系統中,最后結果顯示:df_logo和haier_board兩個(gè)應用程序在系統啟動(dòng)完成后即能正常啟動(dòng)運行,其效果和采用非休眠方式啟動(dòng)的效果一樣,而且電視界面也能夠正常顯示。


實(shí)驗步驟如下:


(1)把不能正常運行的應用程序和腳本文件(df_logo、haier_board)編寫(xiě)成目標腳本并把它放到指定目錄下;


(2)編寫(xiě)內核模塊,并用系統調用的方式把模塊插入到內核,用交叉編譯生成新的內核和模塊的.ko文件;


(3)編寫(xiě)守護進(jìn)程函數,并用交叉編譯生成可執行文件;


(4)編寫(xiě)控制模塊(控制模塊里包含可以使操作系統實(shí)現快速啟動(dòng)的函數),并用交叉編譯生成可執行文件;


(5)重新燒寫(xiě)新的內核;


(6)在/etc/init.d/文件夾的相應文件里加一句加載上述模塊的語(yǔ)句,使其在系統每次啟動(dòng)時(shí)都能夠加載到內核;


(7)為此模塊建立設備文件;


(8)執行守護進(jìn)程可執行文件,使其在操作系統后臺運行;


(9)執行控制模塊的可執行文件,使其在改變標志位后立即執行快速啟動(dòng)程序,從而保證系統以后每次重啟后都能夠運行目標腳本和應用程序。


本文提出了一種新的方法,實(shí)現了基于休眠的操作系統啟動(dòng)后,自動(dòng)運行任何形式的目標腳本和應用程序。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

linux相關(guān)文章:linux教程



上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>