第一篇:嵌入式Linux中讓應(yīng)用程序自動啟動(轉(zhuǎn)載)
嵌入式Linux中讓應(yīng)用程序自動啟動(轉(zhuǎn)載).txt求而不得,舍而不能,得而不惜,這是人最大的悲哀。付出真心才能得到真心,卻也可能傷得徹底。保持距離也就能保護(hù)自己,卻也注定永遠(yuǎn)寂寞。在很多嵌入式系統(tǒng)中,由于可用資源較少,常常在系統(tǒng)啟動后就直接讓應(yīng)用程序自動啟動,以減少用戶操作和節(jié)省資源。如何讓自己的應(yīng)用程序自動啟動呢?在Linux系統(tǒng)中,配置應(yīng)用程序自動啟動的方法有以下三種:
1.通過/Linuxrc腳本直接啟動
Linux內(nèi)核一旦開始執(zhí)行,它將通過驅(qū)動程序來初始化所有硬件設(shè)備,這個初始化過程可以在啟動時的PC顯示器上看到,每個驅(qū)動程序都打印一些相關(guān)信息。初始化完成后,通常調(diào)用的是init,通過loader調(diào)用init內(nèi)的init=/app_program語句(通過loader向核心傳入init=/program可以定制首先運行的程序)。
比如在桌面Linux系統(tǒng)中,init進(jìn)程會讀取/etc/inittab文件,來決定執(zhí)行級別和哪些腳本和命令。嵌入式應(yīng)用開發(fā)中,可以根據(jù)實際情況決定是否使用標(biāo)準(zhǔn)的init執(zhí)行方式,也許這個init是個靜態(tài)程序,它能夠完成我們的嵌入應(yīng)用的特定任務(wù),那完全不用考慮inittab了,在這里可以采用比較靈活的措施。
2.在/etc/init.d下添加啟動腳本
一般情況下,大多數(shù)的Linux操作系統(tǒng)使用/etc/init.d/(或/etc/rc.d/init.d)下的腳本來配置應(yīng)用程序的自動啟動。
例如,在某些Linux系統(tǒng)中,corn程序通過/etc/init.d/corn腳本啟動,Apache通過/etc/init.d/httpd啟動,syslogd通過/etc/init.d/syslogd啟動,而sshd則通過/etc/init.d/sshd腳本啟動。
通常這些腳本通過來自特定rc.d目錄的符號鏈接運行。為了配置從哪個rc.d目錄運行腳本,Linux系統(tǒng)提供了許多不同的工具,同時也可以手工進(jìn)行配置。Linux系統(tǒng)有一個包含所有實際啟動腳本文件的目錄。它可能是/etc/init.d,也可能是/etc/rc.d/rc.d。同時對應(yīng)每個運行級別(runlevel)又有一個另外的目錄,它們可能是/etc/rc2.d,也可能是/etc/rc.d/rc2.d。這些目錄中的文件通常是指向?qū)嶋H腳本文件的符號鏈接。
3.直接在/etc/rc.d/rc.local腳本中添加命令
在Linux系統(tǒng)中,有一個類似Windows系統(tǒng)中autoexec.bat的文件,它就是/etc/rc.d/rc.local,系統(tǒng)開機后自動運行用戶的應(yīng)用程序或啟動系統(tǒng)服務(wù)的命令保存在開發(fā)板根文件系統(tǒng)的這個文件中。因此可以編輯rc.local文件,將要執(zhí)行的程序(命令)添加到該文件夾中。Linux系統(tǒng)在啟動后還未登錄前,將自動執(zhí)行該程序(命令),達(dá)到開機自動運行用戶的應(yīng)用程序的目的。
下面具體說明:
首先解壓ramdisk.image.gz文件,然后掛載到系統(tǒng)中。接著創(chuàng)建自己的應(yīng)用程序文件夾hello,將所要自動運行的應(yīng)用程序hello復(fù)制到該文件夾。
然后打開/usr/etc/rc.local文件,在最后一行加入:/Myapp/hello/hello
再按上面的順序?qū)amdisk.image打包下載到目標(biāo)板,啟動運行,則可以看到用戶編寫的應(yīng)用程序一啟動就運行起來了。
本文參考《基于ARM9的嵌入式Linux開發(fā)技術(shù)》,李新峰等編著。
第二篇:嵌入式linu學(xué)習(xí)心得
嵌入式Linux學(xué)習(xí)心得
1、Linux命令
ls:查看目錄-l以列表方式查看;ls –l 與ll的功能一樣 pwd: 查看當(dāng)前的目錄
cd:改變當(dāng)前操作目錄cd /直接跳到根目錄 cd..回到上一級目錄 cat: 打印顯示當(dāng)前文件的內(nèi)容信息
mkdir:創(chuàng)建目錄
fdisk: 查看硬盤分區(qū)信息,-l以列表方式查看
->代表是鏈接文件,類似window下的快捷方式。
cp: 復(fù)制命令,例子cp 文件名 /home/dir/
mv: 移動或改名,如mv sonf.confsonf.txt(改名)移動:mv sonf.conf / rm:刪除命令,如rm –f test.c;如刪除目錄rm –fr d
man:查看某個命令的幫助,man 命令
2、各系統(tǒng)目錄的功能
drw—r—w--:d代表是目錄,drw代表當(dāng)前用戶的權(quán)限,r代表組用戶的權(quán)限,w代表其它用戶的權(quán)限。x代表有執(zhí)行權(quán)限。
/boot/gruff.conf: 啟動引導(dǎo)程序
/dev:brw—rw--:b代表是塊設(shè)備。Linux設(shè)備有三種,塊設(shè)備(b開頭)、字符設(shè)備(c開頭)、網(wǎng)絡(luò)設(shè)備。had代表第一個硬盤,hdb代表第二個硬盤。Hdb2代表第二塊硬盤的第二個分區(qū)。3,67代表主設(shè)備為3,從設(shè)備為67./etc:存放的是系統(tǒng)的配置文件。Inittab文件存放不同啟動方式下必須啟動的進(jìn)程。Inittab文件中有6個啟動level,wait中對應(yīng)著6個level的目錄,respawn代表當(dāng)一個進(jìn)程被意外終止了,但會自動啟動的進(jìn)程,如守護(hù)進(jìn)程。rc.d目錄中存放了一個rc.sysinit文件,里面存放系統(tǒng)初始化配置信息。/etc還有一個vsftpd里面存放tcp、ftp的配置。
/home : 用戶目錄,存放用戶的文件,/lib:存放庫文件,后綴為so的文件代表動態(tài)鏈接庫。
/lost+found:系統(tǒng)意外終止,存放一些可以找回的文件。
/mnt:掛載外部設(shè)備,如掛載光驅(qū):mount –t /dev/cdrom/mnt/cdrom,如
果在雙系統(tǒng)中,要查看windows中D盤的文件,首先應(yīng)該將D盤的文件映射過來,mount –t /dev/hda2/mnt/windows/d
/opt:用戶安裝的應(yīng)用程序
/proc:是系統(tǒng)運行的映射,比較重要。里面的文件數(shù)字代表進(jìn)程號。每個進(jìn)程號目錄下包含進(jìn)程的基本信息。還有其他信息,如cpuinfo等,內(nèi)核支持的文件系統(tǒng)filesystem等。系統(tǒng)支持的中斷interrupts,iomen代表內(nèi)存分配情況。ioport存放IO端口號。還有分區(qū)信息,modole信息,狀態(tài)信息,版本信息
對于Linux的設(shè)備驅(qū)動程序,有兩種加載模式,一種是直接加載進(jìn)linux內(nèi)核,一種是以模塊的方式加載到內(nèi)核。
/sbin: 系統(tǒng)管理的一些工具。如poweroff關(guān)機工具。
/usr: 安裝系統(tǒng)時很多文件放在此目錄下面,包含一些更新等,include包含的頭文件,lib 是Linux的庫文件,src包含Linux2.4的內(nèi)核源碼
/var:存放是臨時變量
3、
第三篇:8_嵌入式Linux系統(tǒng)QT應(yīng)用程序解析
實驗現(xiàn)象 點擊桌面應(yīng)用程 序圖標(biāo)可打開用 戶應(yīng)用程序; 點擊OK 鍵后,文 本框顯示清除。嵌入式Linux系統(tǒng)QT 應(yīng)用程序
本章小結(jié) Qt/Embedded 開發(fā)模型; Qt/Embedded 信號與槽機制; Qt 應(yīng)用程序的開發(fā)過程及移植方法。嵌入式Linux系統(tǒng)QT 應(yīng)用程序
習(xí)題
1、簡述信號與插槽機制。
2、簡述Qt 應(yīng)用程序的建立及移植過程。嵌入式Linux系統(tǒng)QT 應(yīng)用程序
第四篇:MFC應(yīng)用程序中處理消息的順序(模版)
MFC應(yīng)用程序中處理消息的順序
MFC應(yīng)用程序中處理消息的順序
1.AfxWndProc()該函數(shù)負(fù)責(zé)接收消息,找到消息所屬的CWnd對象,然后調(diào)用AfxCallWndProc
2.AfxCallWndProc()該函數(shù)負(fù)責(zé)保存消息(保存的內(nèi)容主要是消息標(biāo)識符和消息參數(shù))供應(yīng)用程序以后使用,然后調(diào)用WindowProc()函數(shù)
3.WindowProc()該函數(shù)負(fù)責(zé)發(fā)送消息到OnWndMsg()函數(shù),如果未被處理,則調(diào)用DefWindowProc()函數(shù)
4.OnWndMsg()該函數(shù)的功能首先按字節(jié)對消息進(jìn)行排序,對于WM_COMMAND消息,調(diào)用OnCommand()消息響應(yīng)函數(shù),對于WM_NOTIFY消息調(diào)用OnNotify()消息響應(yīng)函數(shù)。任何被遺漏的消息將是一個窗口消息。OnWndMsg()函數(shù)搜索類的消息映像,以找到一個能處理任何窗口消息的處理函數(shù)。如果OnWndMsg()函數(shù)不能找到這樣的處理函數(shù)的話,則把消息返回到WindowProc()函數(shù),由它將消息發(fā)送給DefWindowProc()函數(shù)
5.OnCommand()該函數(shù)查看這是不是一個控件通知(lParam參數(shù)不為NULL,如果lParam參數(shù)為空的話,說明該消息不是控件通知),如果它是,OnCommand()函數(shù)會試圖將消息映射到制造通知的控件;如果他不是一個控件通知(或者如果控件拒絕映射的消息)OnCommand()就會調(diào)用OnCmdMsg()函數(shù)
6.OnCmdMsg()根據(jù)接收消息的類,OnCmdMsg()函數(shù)將在一個稱為命令傳遞(Command Routing)的過程中潛在的傳遞命令消息和控件通知。例如:如果擁有該窗口的類是一個框架類,則命令和通知消息也被傳遞到視圖和文檔類,并為該類尋找一個消息處理函數(shù)
MFC應(yīng)用程序創(chuàng)建窗口的過程
1.PreCreateWindow()該函數(shù)是一個重載函數(shù),在窗口被創(chuàng)建前,可以在該重載函數(shù)中改變創(chuàng)建參數(shù)(可以設(shè)置窗口風(fēng)格等等)
2.PreSubclassWindow()這也是一個重載函數(shù),允許首先子分類一個窗口
3.OnGetMinMaxInfo()該函數(shù)為消息響應(yīng)函數(shù),響應(yīng)的是WM_GETMINMAXINFO消息,允許設(shè)置窗口的最大或者最小尺寸
4.OnNcCreate()該函數(shù)也是一個消息響應(yīng)函數(shù),響應(yīng)WM_NCCREATE消息,發(fā)送消息以告訴窗口的客戶區(qū)即將被創(chuàng)建
5.OnNcCalcSize()該函數(shù)也是消息響應(yīng)函數(shù),響應(yīng)WM_NCCALCSIZE消息,作用是允許改變窗口客戶區(qū)大小
6.OnCreate()該函數(shù)也是一個消息響應(yīng)函數(shù),響應(yīng)WM_CREATE消息,發(fā)送消息告訴一個窗口已經(jīng)被創(chuàng)建
7.OnSize()該函數(shù)也是一個消息響應(yīng)函數(shù),響應(yīng)WM_SIZE消息,發(fā)送該消息以告訴該窗口大小已經(jīng)發(fā)生變化
8.OnMove()消息響應(yīng)函數(shù),響應(yīng)WM_MOVE消息,發(fā)送此消息說明窗口在移動
9.OnChildNotify()該函數(shù)為重載函數(shù),作為部分消息映射被調(diào)用,告訴父窗口即將被告知一個窗口剛剛被創(chuàng)建
MFC應(yīng)用程序關(guān)閉窗口的順序(非模態(tài)窗口)
1.OnClose()消息響應(yīng)函數(shù),響應(yīng)窗口的WM_CLOSE消息,當(dāng)關(guān)閉按鈕被單擊的時候發(fā)送此消息
2.OnDestroy()消息響應(yīng)函數(shù),響應(yīng)窗口的WM_DESTROY消息,當(dāng)一個窗口將被銷毀時,發(fā)送此消息
3.OnNcDestroy()消息響應(yīng)函數(shù),響應(yīng)窗口的WM_NCDESTROY消息,當(dāng)一個窗口被銷毀后發(fā)送此消息
4.PostNcDestroy()重載函數(shù),作為處理OnNcDestroy()函數(shù)的最后動作,被CWnd調(diào)用MFC應(yīng)用程序中打開模式對話框的函數(shù)調(diào)用順序
1.DoModal()重載函數(shù),重載DoModal()成員函數(shù)
2.PreSubclassWindow()重載函數(shù),b31.org 允許首先子分類一個窗口
3.OnCreate()消息響應(yīng)函數(shù),響應(yīng)WM_CREATE消息,發(fā)送此消息以告訴一個窗口已經(jīng)被創(chuàng)建
4.OnSize()消息響應(yīng)函數(shù),響應(yīng)WM_SIZE消息,發(fā)送此消息以告訴窗口大小發(fā)生變化
5.OnMove()消息響應(yīng)函數(shù),響應(yīng)WM_MOVE消息,發(fā)送此消息,以告訴窗口正在移動
6.OnSetFont()消息響應(yīng)函數(shù),響應(yīng)WM_SETFONT消息,發(fā)送此消息,以允許改變對話框中控件的字體
7.OnInitDialog()消息響應(yīng)函數(shù),響應(yīng)WM_INITDIALOG消息,發(fā)送此消息以允許初始化對話框中的控件,或者是創(chuàng)建新控件
8.OnShowWindow()消息響應(yīng)函數(shù),響應(yīng)WM_SHOWWINDOW消息,該函數(shù)被ShowWindow()函數(shù)調(diào)用
9.OnCtlColor()消息響應(yīng)函數(shù),響應(yīng)WM_CTLCOLOR消息,被父窗口發(fā)送已改變對話框或?qū)υ捒蛏厦婵丶念伾?/p>
10.OnChildNotify()重載函數(shù),作為WM_CTLCOLOR消息的結(jié)果發(fā)送
MFC應(yīng)用程序中關(guān)閉模式對話框的順序
1.OnClose()消息響應(yīng)函數(shù),響應(yīng)WM_CLOSE消息,當(dāng)“關(guān)閉”按鈕被單擊的時候,該函數(shù)被調(diào)用
2.OnKillFocus()消息響應(yīng)函數(shù),響應(yīng)WM_KILLFOCUS消息,當(dāng)一個窗口即將失去鍵盤輸入焦點以前被發(fā)送
3.OnDestroy()消息響應(yīng)函數(shù),響應(yīng)WM_DESTROY消息,當(dāng)一個窗口即將被銷毀時,被發(fā)送
4.OnNcDestroy()消息響應(yīng)函數(shù),響應(yīng)WM_NCDESTROY消息,當(dāng)一個窗口被銷毀以后被發(fā)送
5.PostNcDestroy()重載函數(shù),作為處理OnNcDestroy()函數(shù)的最后動作被CWnd調(diào)用打開無模式對話框的順序
1.PreSubclassWindow()重載函數(shù),允許用戶首先子分類一個窗口
2.OnCreate()消息響應(yīng)函數(shù),響應(yīng)WM_CREATE消息,發(fā)送此消息以告訴一個窗口已經(jīng)被創(chuàng)建
3.OnSize()消息響應(yīng)函數(shù),響應(yīng)WM_SIZE消息,發(fā)送此消息以告訴窗口大小發(fā)生變化
4.OnMove()消息響應(yīng)函數(shù),響應(yīng)WM_MOVE消息,發(fā)送此消息以告訴窗口正在移動
5.OnSetFont()消息響應(yīng)函數(shù),響應(yīng)WM_SETFONT消息,發(fā)送此消息以允許改變對話框中控件的字體
以上這些的執(zhí)行都是按給定的順序執(zhí)行!
只有清楚的了解應(yīng)用程序的執(zhí)行順序,才能在編寫代碼的時候知道,在什么時候應(yīng)該執(zhí)行什么,以及在什么地方該處理什么!新濠天地娛樂城66bb.org
第五篇:去掉開機啟動D盤自動檢查策略
去掉開機啟動D盤自動檢查策略
1)這是系統(tǒng)在掃描你的硬盤,可能是你自己操作的問題,如果你非法關(guān)機,直接斷電或者直接按電源關(guān)電,電腦開機的時候會對你的硬件做檢查,包括你的硬盤。
還有就是你的電腦真的硬盤有問題了,建議你使用電腦自己帶的磁盤掃描工具進(jìn)行掃描修復(fù),如果比較嚴(yán)重用下面軟件進(jìn)行修復(fù)(如果這次掃描后下次不在掃描就是正常掃描,如果開機總是掃描硬盤請看下面,由其按下面方法修復(fù)一下磁盤試試)。
2)如果也沒有非法關(guān)機,硬盤也沒有問題,開機還是掃描,可以用下面的方法去掉系統(tǒng)掃描硬盤:
單擊“開始/運行”,輸入“regedit”回車打開注冊表編輯器,依次選擇“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager”子鍵,然后在右側(cè)窗口中找到“BootExecute”鍵值項并將其數(shù)值數(shù)據(jù)清空,重啟即可(清空前選文件導(dǎo)出進(jìn)行備份,這樣如果需要在恢復(fù)備份)。
系統(tǒng)自帶的磁盤修復(fù)方法(如果磁盤真有問題,用這個方法修復(fù)一下):
具體步驟如下(以Windows XP為例),在我的電腦中選中盤符后單擊鼠標(biāo)右鍵,在彈出的驅(qū)動器屬性窗口中依次選擇 “工具→開始檢查”并選擇“自動修復(fù)文件系統(tǒng)錯誤”和“掃描并恢復(fù)壞扇區(qū)”,然后點擊開始,掃描時間會因磁盤容量及掃描選項的不同而有所差異。硬盤壞道將導(dǎo)致電腦系統(tǒng)文件損壞或丟失,電腦無法啟動或死機。硬盤壞道可以采用NDD磁盤工具或Scandisk來修復(fù)。
還解決不了問題,還原一下系統(tǒng)或重裝系統(tǒng)。
3)或者在C盤搜索:
chkdsk.exe
然后,把它刪除了就行了。
開機的時候就不會檢查了。