1. gzyueqian
      13352868059

      四個月嵌入式培訓能達到什么程度?

      更新時間: 2018-12-11 14:17:28來源: 嵌入式培訓瀏覽量:4908

          嵌入式系統(tǒng)的特點決定了它具有功能的專用性,而不能作為一種通用的計算機系統(tǒng)?;贚inux操作系統(tǒng)開發(fā)嵌入式產(chǎn)品,必須對它的啟動程序進行定制。本文研究了Linux操作系統(tǒng)的啟動過程,并給出了如何為嵌入式Linux系統(tǒng)添加用戶自己的啟動服務,以及指定開機后運行的主功能程序的方法。

          一、嵌入式系統(tǒng)的概念及特點
          引用電氣工程師協(xié)會IEE給嵌入式系統(tǒng)下的一個定義:嵌入式系統(tǒng)是用來控制或監(jiān)視機器、裝置或工廠等大規(guī)模系統(tǒng)的設(shè)備。但是后來隨著嵌入式系統(tǒng)的發(fā)展,這個定義就變得不是很準確。比如說像手機、PDA及電子詞典之類的小型設(shè)備,它們均由內(nèi)部的嵌入式系統(tǒng)控制,但是卻不可稱之為大規(guī)模的系統(tǒng)。
          有些文獻這樣下定義我覺得比較確切:嵌入式系統(tǒng)是電腦軟件與硬件的綜合體,它是以應用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件均可裁剪,能夠適應實際應用中對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統(tǒng)。
          嵌入式系統(tǒng)具有以下幾個特點:
          1、 嵌入式系統(tǒng)是先進的計算機技術(shù)、半導體技術(shù)以及電子技術(shù)與各個行業(yè)的具體應用相結(jié)合的產(chǎn)物。也就是說嵌入式系統(tǒng)并不像通用計算機那樣通用,而是與各待業(yè)的特定應用相關(guān)聯(lián)的,每行每業(yè)的嵌入式系統(tǒng)要實現(xiàn)的功能也不一樣。因此,在嵌入式系統(tǒng)上沒有哪個公司的操作系統(tǒng)和處理器能夠壟斷市場。
          2、 嵌入式系統(tǒng)實現(xiàn)的功能單一,通常是面向用戶、面向產(chǎn)品、面向特定應用的,一般只實現(xiàn)某行業(yè)的特定功能。
          3、 成本低、體積小、功耗低及可靠性高,在運行速度及存儲容量上有一定的限制。
          4、 嵌入式系統(tǒng)本身不具備在其上進一步開發(fā)的能力,必須要在相關(guān)的開發(fā)平臺上開發(fā)。
          5、 全自動操作循環(huán),一直重復地執(zhí)行一個特定的程序
          嵌入式系統(tǒng)的靈魂應該說是它的嵌入式操作系統(tǒng),本文使用的是嵌入式Linux,硬件基礎(chǔ)是基于x86的嵌入式主板。由上述嵌入式系統(tǒng)的特點可知,為了讓嵌入式系統(tǒng)具有一個產(chǎn)品或儀器的特性,不能讓像通用計算機那樣開機后進入桌面系統(tǒng),而是要運行指定服務和一個特定的用戶應用程序。本文將如何讓Linux開機后執(zhí)行指定服務和運行一特定的用戶程序進行探討。
          二、Linux系統(tǒng)的啟動過程
          讓我們先了解一下Linux系統(tǒng)啟動的過程。當引導程序(如LILO)加載Linux內(nèi)核映象啟動時,它先進行內(nèi)核的初始化工作,主要是檢測整個硬件環(huán)境。內(nèi)核初始化完成后,系統(tǒng)就啟動init進程,它是系統(tǒng)的個用戶級進程。Linux系統(tǒng)具有許多運行級別,它由文件/etc/inittab文件決定,各級別的功能如下:
          0:終止或停止系統(tǒng)的運行
          1:單用戶模式
          2:多用戶模式,但無網(wǎng)絡(luò)功能
          3:多用戶模式且有網(wǎng)絡(luò)功能
          4:保留,用戶可以定義自己的啟動模式
          5:圖形界面登陸模式
          6:重新啟動系統(tǒng)
          init進程運行后,它會訪問/etc/inittab文件,該文件確定系統(tǒng)運行于上面的哪個級別。由于嵌入式系統(tǒng)的特性,我們要讓系統(tǒng)運行于級別1上,即單用戶模式,這只要在/etc/inittab文件的id:3:initdefault行,將3改為0即可。同時每個級別還對應了一個啟動各種服務的腳本目錄,一般在/etc/rc.d/下面。
          接著init進程又分別啟動/etc/rc.d/rc.sysinit和與等級n相對應的/etc/rc.d/rcn.d目錄里的初始化進程,init會運行用戶登陸程序,這時在終端上就會顯示login:的登錄信息,用戶登錄成功后會啟動shell程序,shell啟動后,它會讀取并執(zhí)行文件/etc/profile,/etc/bashrc,和用戶主目錄下的文件.bashrc,這些文件負責建立用戶自己的環(huán)境。
      三、設(shè)置特定服務及開機啟動程序
           如前所述,添加指定服務,定制特定的啟動程序,就從配置文件/etc/rc.d/rcn.d和/etc/profile入手。
          1、添加指定的服務:是指在系統(tǒng)啟動時進行一些用戶所需要的操作,如初始化用戶應用程序或用戶開發(fā)的新硬件等等??梢栽黾幼约旱哪_本程序來完成這些工作,主要步驟如下:
          (1) 仿照系統(tǒng)目錄/etc/rc.d/init.d里的任何一個腳本文件的格式自己編寫一個啟動服務腳本文件。
          (2) 將寫好的腳本文件拷貝到/etc/rc.d/init.d目錄下。因為/etc/rc.d/rcn.d只是/etc/rc.d/init.d的一個鏈接,故要將真實的文件先拷到后者的目錄下。
          (3) 在相應的運行級別n的/etc/rc.d/rcn.d下建立該腳本文件的鏈接。如運行級別為2,則n=2,目錄即為/etc/rc.d/rc2.d。假如該腳本名為initform,鏈接名定為my_initform,則鍵入如下命令即可:ln –s /etc/rc.d/init.d/initform  /etc/rc.d/rc2.d/my_initform。
          完成以上幾步后,系統(tǒng)開機后就會自動執(zhí)行腳本initform里的服務。
           2、運行特定用戶應用程序:這里主要是指GUI應用程序,如果原系統(tǒng)啟動后直接進入桌面系統(tǒng),則要將桌面程序在相應腳本中屏蔽,然后修改/etc/profile腳本定制用戶自己的程序。步驟如下:
          (1) 在startx腳本中將運行相應的桌面系統(tǒng)程序屏蔽。例如桌面系統(tǒng)程序名為qvwm(紅旗嵌入式Linux的桌面系統(tǒng)),則修改內(nèi)容如下:
           ……
          # xinit /usr/bin/qvwm
          #加個“#”表示將這行腳本屏蔽掉
          (2) 修改/etc/profile,啟動用戶應用程序。如用戶應用程序名為start_initform,且在目錄/root/ 下,則在它的末尾加上如下幾行內(nèi)容:
          ……
          export LC_ALL=zh_CN.GB2312
          #設(shè)置中文化環(huán)境
          cd /root/
          #切換到應用程序當前目錄
          xinit ./start_initform
          #運行指定的用戶應用程序 
          修改完成后,重新啟動系統(tǒng),則當系統(tǒng)初始化完后,會執(zhí)行用戶指定的服務,且運行用戶應用程序,達到嵌入式系統(tǒng)的要求。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 中文字幕AV一本 | 亚洲欧美一区二区三区久久 | 日本三级韩国三级韩三级 | 亚洲Aⅴ免费午夜视频 | 中文字幕自拍偷 | 亚洲欧洲aⅴ在线不卡视频 免费va国产高清大片在线 |