版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
嵌入式操作系統(tǒng)1課堂紀(jì)律上課不要遲到、早退,有事請假非討論時間,課堂不得大聲說話影響教學(xué)上課時間不得吃東西嚴(yán)禁上課時間開手機(jī)3《嵌入式操作系統(tǒng)》
課程簡介及要求
1.課程性質(zhì)及教學(xué)目的《嵌入式操作系統(tǒng)》是計算機(jī)及其相關(guān)專業(yè)的一門專業(yè)技術(shù)課。本課程幫助學(xué)生了解嵌入式操作系統(tǒng)(嵌入式Linux)的基本概念、嵌入式系統(tǒng)開發(fā)的基流程;掌握Linux的常用命令和嵌入式Linux的開發(fā)環(huán)境建立及工具軟件的使用;掌握嵌入式Linux的構(gòu)建;學(xué)會Linux下的Shell編程;理解嵌入式Linux的內(nèi)存管理機(jī)制和嵌入式Linux下的文件操作;理解嵌入式Linux的進(jìn)程管理;學(xué)會嵌入式Linux操作系統(tǒng)的多線程開發(fā)技術(shù);了解嵌入式Linux操作系統(tǒng)的網(wǎng)絡(luò)編程技術(shù)及圖形界面編程技術(shù)等;初步掌握基于Linux的系統(tǒng)設(shè)計和開發(fā);為后繼的課程學(xué)習(xí)做好鋪墊。
課程簡介及要求
2.課程教學(xué)安排教學(xué)參考學(xué)時:64學(xué)時其中實驗學(xué)時:16學(xué)時成績評定:平時、作業(yè)+實驗+期末測驗(閉卷考試)3.教材內(nèi)容體系結(jié)構(gòu)嵌入式Linux操作系統(tǒng)簡介Linux的特征及組成Linux的內(nèi)核分析常見的嵌入式操作系統(tǒng)嵌入式系統(tǒng)的開發(fā)流程
課程簡介及要求Linux常用命令集系統(tǒng)管理命令;文件管理命令;文件傳輸、編輯命令;目錄操作命令;文件壓縮、磁盤掛載命令;網(wǎng)絡(luò)操作命令嵌入式Linux的開發(fā)環(huán)境及工具軟件開發(fā)環(huán)境建立;開發(fā)工具使用;GNUmake和Makefile文件;Makefile文件的自動生成;Vi編輯器的使用Emacs編輯器的使用嵌入式Linux的構(gòu)建嵌入式BootLoader技術(shù);嵌入式Linux根文件系統(tǒng);Linux內(nèi)核構(gòu)建;嵌入式Linux系統(tǒng)及應(yīng)用程序的燒寫嵌入式Linux的Shell編程Shell簡介-使用者和linux操作系統(tǒng)核心程序之間接口;Shell編程;Bash的內(nèi)部命令;嵌入式Linux內(nèi)存管理嵌入式Linux內(nèi)存管理的基本概念;Linux內(nèi)存管理;虛存空間管理;共享內(nèi)存;動態(tài)內(nèi)存分配;Linux內(nèi)存使用
課程簡介及要求嵌入式Linux的文件操作文件I/O系統(tǒng)概述文件I/O操作;應(yīng)用舉例嵌入式Linux進(jìn)程與進(jìn)程調(diào)度Linux進(jìn)程管理;Linux的進(jìn)程控制API;Linux進(jìn)程通信API;Linux守護(hù)進(jìn)程嵌入式Linux多線程開發(fā)Linux多線程相關(guān)API;信號燈;互斥量;條件變量嵌入式Linux網(wǎng)絡(luò)編程GTK+圖形界面編程
課程簡介及要求什么是嵌入式系統(tǒng)?
嵌入式系統(tǒng)(Embeddedsystem)是“以應(yīng)用為中心,以計算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁減,適用于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計算機(jī)系統(tǒng)”,是一種“完全嵌入受控器件內(nèi)部,為特定應(yīng)用而設(shè)計的系統(tǒng)“。按照歷史性、本質(zhì)性、普遍性要求,嵌入式系統(tǒng)應(yīng)定義為:“嵌入到對象體系中的專用計算機(jī)系統(tǒng)”?!扒度胄浴?、“專用性”與“計算機(jī)系統(tǒng)”是嵌入式系統(tǒng)的三個基本要素。對象系統(tǒng)則是指嵌入式系統(tǒng)所嵌入的宿主系統(tǒng).1、從硬件上,將基于CPU的處圍器件,整合到CPU芯片內(nèi)部,比如早期基于X86體系結(jié)構(gòu)下的計算機(jī),CPU只是有運算器和累加器的功能,一切芯片要靠外部橋路來擴(kuò)展實現(xiàn),象串口之類的都是靠外部的的串口控制器芯片實現(xiàn),而目前的這種串口控制器芯片早已集成到CPU內(nèi)部;PC機(jī)有顯卡,而多數(shù)嵌入式處理器都帶有LCD控制器,但某種意義上就相當(dāng)于顯卡。比較高端的ARM類IntelXscale架構(gòu)下的IXP網(wǎng)絡(luò)處理器CPU內(nèi)部集成PCI控制器,網(wǎng)絡(luò)處理器引擎等。如何理解“嵌入”2、從軟件上,就是在定制操作系統(tǒng)內(nèi)核里將應(yīng)用一并選入,編譯后將內(nèi)核下載到ROM中。而在定制操作系統(tǒng)內(nèi)核時所選擇的應(yīng)用程序組件就是完成了軟件的“嵌入”,比如WinCE在內(nèi)核定制時,會有相應(yīng)選擇,其中就是wordpad,PDF,MediaPlay等選擇,如果我們選擇了,在CE啟動后,就可以在界面中找到這些東西,而PC上的windows操作系統(tǒng),多半的東西都需要我們重新安裝。
3、把軟件內(nèi)核或應(yīng)用文件系統(tǒng)等東西燒到嵌入式系統(tǒng)硬件平臺中的ROM中就實現(xiàn)了一個真正的“嵌入”。如何理解“嵌入”
嵌入式系統(tǒng)主要應(yīng)用領(lǐng)域消費電子工業(yè)控制通信設(shè)備、家庭設(shè)備汽車電子醫(yī)療電子軍事國防航空航天 嵌入式系統(tǒng)無處不在,在移動電話、數(shù)碼照相機(jī)、MP4、數(shù)字電視的機(jī)頂盒、微波爐、汽車內(nèi)部的噴油控制系統(tǒng)、ABS(防抱死制動系統(tǒng))等裝置或設(shè)備都使用了嵌入式系統(tǒng)。嵌入式技術(shù)正在改變生活為什么要學(xué)習(xí)嵌入式系統(tǒng)市場需求 中國具有世界最大嵌入式技術(shù)市場,手持儀器設(shè)備、信息家電、城市建設(shè)、工業(yè)控制、軍事應(yīng)用,……,嵌入式技術(shù)無處不在。企業(yè)人才需求 軟硬件設(shè)計人才,應(yīng)用開發(fā)人才,綜合性人才,……技術(shù)發(fā)展趨勢要求
8位、16位、32位,實時操作系統(tǒng),……目前國內(nèi)沒有專門的嵌入式系統(tǒng)專業(yè)或課程體系 計算機(jī)專業(yè):偏軟 電子專業(yè):偏硬為什么選擇嵌入式行業(yè)?嵌入式開發(fā)是目前高薪IT職業(yè)。嵌入式開發(fā)不會像桌面開發(fā)那樣容易貶值。嵌入式開發(fā)可作為長期職業(yè)發(fā)展。嵌入式產(chǎn)品無處不在。就業(yè)起薪較高。
硬件是其基礎(chǔ)、軟件是其核心與靈魂。硬件主要由嵌入式微處理器、外圍硬件設(shè)備組成;軟件主要包括底層系統(tǒng)軟件和用戶應(yīng)用軟件組成嵌入式系統(tǒng)的組成
1.嵌入式系統(tǒng)硬件組成嵌入式處理器(CPU)是嵌入式系統(tǒng)的核心部分ARM、PowerPC、MC68000、MIPS等外圍設(shè)備存儲設(shè)備(如RAM、SRAM、Flash等)通信設(shè)備(如RS-232接口、以太網(wǎng)接口等)顯示設(shè)備(如顯示屏等)嵌入式系統(tǒng)的組成
2.嵌入式系統(tǒng)軟件組成對于使用操作系統(tǒng)的嵌入式系統(tǒng)來說,嵌入式系統(tǒng)軟件結(jié)構(gòu)一般包含4個層面:實時操作系統(tǒng)RTOS、應(yīng)用程序接口API層、設(shè)備驅(qū)動層、實際應(yīng)用程序?qū)印?/p>
嵌入式系統(tǒng)軟件組成圖嵌入式系統(tǒng)的組成第1章嵌入式Linux操作系統(tǒng)簡介本章教學(xué)目的及要求了解Linux的特征及組成;了解Linux的內(nèi)核結(jié)構(gòu)及相關(guān)源代碼;了解常見的嵌入式操作系統(tǒng);了解嵌入式系統(tǒng)的開發(fā)流程。1.1Linux的特征及組成1.1.1Linux操作系統(tǒng)發(fā)展歷史 Linux最初是專門為基于Intel處理器的個人計算機(jī)而設(shè)計的。Linux的前身指的是由Linus
Torvalds維護(hù)開發(fā)的開放源代碼的類Unix操作系統(tǒng)的內(nèi)核。
目前大多數(shù)人用它來表示以Linux內(nèi)核為基礎(chǔ)的整個操作系統(tǒng)。從這種意義講,Linux指的是源碼開放,包含內(nèi)核和系統(tǒng)工具、完整的開發(fā)環(huán)境和應(yīng)用的類Unix操作系統(tǒng)。
同時,Linux遵循GNU(GNU’sNotUnix)的通用公共許可證GPL(GeneralPublicLicense),是自由軟件家族中的一員。自由軟件最早由美國麻省理工學(xué)院MIT的RichardStallman提出。自1984年起,在MIT的支持下,Richard創(chuàng)建了自由軟件基金會FSF(FreeSoftwareFoundation)。FSF的主要項目是GNU計劃(革奴計劃),它的目標(biāo)是建立可自由發(fā)布和可移植的類Unix操作系統(tǒng)。同時,Richard創(chuàng)作了通用公共許可證GPL作為GNU的版權(quán)聲明。GPL也叫Copyleft,這與我們平常所說的Copyright截然相反。任何人只要遵循GPL,就可以對Linux內(nèi)核加以修改并發(fā)布給他人使用。
Copyleft標(biāo)志什么是自由軟件?1.1.1Linux操作系統(tǒng)發(fā)展歷史2011年11月,Linux內(nèi)核發(fā)布最新版3.1.2Linux之所以受到廣大計算機(jī)愛好者的喜愛主要原因: 一是它屬于自由軟件,用戶不用支付任何費用就可以獲得它和它的源代碼,并且可以根據(jù)自己的需要對它進(jìn)行必要的修改和無約束地繼續(xù)傳播。 另一個原因是,它具有Unix的全部功能,任何使用Unix操作系統(tǒng)或想要學(xué)習(xí)Unix操作系統(tǒng)的人都可以從Linux中獲益。Linux之父:李納斯·托沃茲Linus
TorvaldsFrom:torvalds@klaava.Helsinki.FI(LinusBenedictTorvalds)Newsgroups:comp.os.minixSubject:Whatwouldyouliketoseemostinminix?Summary:smallpollformynewoperatingsystemMessage-ID:Date:25Aug9120:57:08GMTOrganization:UniversityofHelsinkiHelloeverybodyoutthereusingminix-Idoinga(free)operating
system(justahobby,won‘tbebigandprofessionallikegnu)for386(486)ATclones.(你好,所有使用minix
的人-我正在為386(486)AT做一個免費的操作系統(tǒng)(只是為了愛好),不會像GNU那樣很大很專業(yè))ThishasbeenbrewingsinceApril,andisstartingtogetready.Ilikeanyfeedbackonthingspeoplelike/dislikeinminix,asmyOSresemblespracticalreasonsamongotherthings.Ihavecurrentlyportedbash(1.08)andgcc(1.40),andthingsseemtowork.ThisimpliesthatI'llgetsomethingpracticalwithinafewmonths,andIliketoknowwhatfeathersmostpeoplewouldwant.Anysuggestionsarewelcome,butIwon'tpromiseI'Ilimplementthem:-)Linus(torvalds@kruuna.helsinki.fi)Ps.Yes-it‘sfreeofanyminix
code,andithasamulti-threadedfs.ItisNOTportable(uses386taskswitchingetc),anditprobablyneverwillsupportanythingotherthanAT-hard-disks,asthat'sallIhave:-(Linux的起源linuxfor工作linux系統(tǒng)管理員linux系統(tǒng)的維護(hù)、配置等linux程序員需c/c++、java,php、jsp…linux軟件工程師(PC)linux嵌入式開發(fā)(單片機(jī)、芯片)1.Linux系統(tǒng)的特點開放性:指系統(tǒng)遵循世界標(biāo)準(zhǔn)規(guī)范,特別是遵循開放系統(tǒng)互連(OSI)國際標(biāo)準(zhǔn)。多用戶:是指系統(tǒng)資源可以被不同用戶使用,每個用戶對自己的資源(例如:文件、設(shè)備)有特定的權(quán)限,互不影響。多任務(wù):它是指計算機(jī)同時執(zhí)行多個程序,而且各個程序的運行互相獨立。良好的用戶界面:Linux向用戶提供了3種界面:用戶界面、系統(tǒng)調(diào)用、圖形用戶界面。它利用鼠標(biāo)、菜單、窗口、滾動條等設(shè)施,給用戶呈現(xiàn)一個直觀、易操作、交互性強(qiáng)的友好的圖形化界面1.1.2Linux系統(tǒng)的特點及組成設(shè)備獨立性:是指操作系統(tǒng)把所有外部設(shè)備統(tǒng)一當(dāng)作成文件來看待,只要安裝它們的驅(qū)動程序,任何用戶都可以象使用文件一樣,操縱、使用這些設(shè)備,而不必知道它們的具體存在形式。Linux是具有設(shè)備獨立性的操作系統(tǒng),它的內(nèi)核具有高度適應(yīng)能力提供了豐富的網(wǎng)絡(luò)功能:完善的內(nèi)置網(wǎng)絡(luò)是Linux一大特點??煽康陌踩到y(tǒng):Linux采取了許多安全技術(shù)措施,包括對讀、寫控制、帶保護(hù)的子系統(tǒng)、審計跟蹤、核心授權(quán)等,這為網(wǎng)絡(luò)多用戶環(huán)境中的用戶提供了必要的安全保障。良好的可移植性:是指將操作系統(tǒng)從一個平臺轉(zhuǎn)移到另一個平臺使它仍然能按其自身的方式運行的能力。Linux是一種可移植的操作系統(tǒng),能夠在從微型計算機(jī)到大型計算機(jī)的任何環(huán)境中和任何平臺上運行。1.1.2Linux系統(tǒng)的特點及組成2.Linux系統(tǒng)的組成Linux一般由以下4部分組成:Linux的內(nèi)核:內(nèi)核是系統(tǒng)的核心,是運行程序和管理像磁盤和打印機(jī)等硬件設(shè)備的核心程序。LinuxShell:
Shell是系統(tǒng)的用戶界面,它是一個命令解釋器,它解釋用戶輸入的命令,并且把它們送到內(nèi)核。提供了用戶與內(nèi)核進(jìn)行交互操作的一種接口。Linux應(yīng)用系統(tǒng):標(biāo)準(zhǔn)的Linux系統(tǒng)都有一整套稱為應(yīng)用程序的程序集,包括文本編輯器、編程語言、XWindow、辦公套件、Internet工具、數(shù)據(jù)庫等。Linux文件系統(tǒng):
Linux文件系統(tǒng)是文件存放在磁盤等存儲設(shè)備上的組織方法。Linux能支持多種目前許多的文件系統(tǒng),如EXT2、EXT3、FAT、VFAT、ISO9660、NFS、SMB等。1.Linux的內(nèi)核版本 Linux內(nèi)核采用雙樹結(jié)構(gòu)。一棵樹是穩(wěn)定樹,主要用于發(fā)行;另一棵樹是非穩(wěn)定樹或開發(fā)樹,用于產(chǎn)品開發(fā)、改進(jìn)。 源代碼版本序號的形式為r.x.y,其中r為主版本號,代表較大改動;x為次版本號,表示功能性的改動;y為末版本號,表示BUG的改動(錯誤修補(bǔ)的次數(shù))。其中r介于0到9之間,x和y則介于0到99之間。 對于穩(wěn)定樹來說,x是偶數(shù);對于開發(fā)樹來說,x是比相應(yīng)穩(wěn)定樹大1的奇數(shù)。例2.4.20為穩(wěn)定內(nèi)核版本。 可以從http:///獲得最新的內(nèi)核信息1.1.3Linux的內(nèi)核版本與發(fā)行版本2.Linux的發(fā)行版本 Linux的發(fā)布版本就是將Linux核心與應(yīng)用軟件打包。雖然Linux只有一個標(biāo)準(zhǔn)化的版本,但有好多個不同的發(fā)布版本。如今的Linux已經(jīng)有超過250種發(fā)行版本,且可以支持所有體系結(jié)構(gòu)的處理器,如X86、PowerPC、ARM、XSCALE等,也可以支持帶MMU或不帶MMU的處理器。到目前為止,它的內(nèi)核版本也已從原先的0.0.1發(fā)展到現(xiàn)在的3.x。 紅旗Linux 沖浪Linux 中軟Linux RedHatLinux UbuntuLinux TurboLinux
DebianLinux MandrivaLinux 其中RedHatLinux和UbuntuLinux(適合初學(xué)者)比較普遍1.1.3Linux的內(nèi)核版本與發(fā)行版本RedHatLinux的優(yōu)勢RedHatLinux是最成熟也是目前最流行的一種Linux發(fā)布版本,無論在銷售還是裝機(jī)容量上都居榜首。RedHatLinux可運行在多種硬件平臺上。市場上有大量的文章是針對RedHatLinux來介紹的,同時其http://站點包含有大量文檔,如Users’Guide、FAQ等。在RedHat的300名工程師中,有6名來自于全世界最頂尖的Linux核心開發(fā)者,7名來自全球最出色Linux開發(fā)工具工程師。全世界,也許只有RedHat能夠把Linux和開源技術(shù)以及企業(yè)級的培訓(xùn)、技術(shù)支持和咨詢?nèi)诤系萌绱嗣烂睢edHat的培訓(xùn)及認(rèn)證被認(rèn)為是Linux認(rèn)證的標(biāo)準(zhǔn)。Certification雜志的最新調(diào)查顯示,RHCE(RedHat認(rèn)證工程師)認(rèn)證被公認(rèn)為總體質(zhì)量最高的國際IT認(rèn)證。RedHat的發(fā)展戰(zhàn)略是每三年發(fā)布一個新版本的企業(yè)級Linux操作系統(tǒng),并且每六個月發(fā)布一次更新。第一階段:linux平臺上的開發(fā),包括vi,gcc,gdb,make,jdk,tomcat,mysql..和linux基本操作第二階段:加厚c語言功底《c專家編程》或是java語言第三階段:學(xué)習(xí)unix環(huán)境高級編程《unix環(huán)境高級編程》第四階段:linux應(yīng)用系統(tǒng)開發(fā)/linux嵌入式開發(fā)推薦書籍《鳥哥的Linux的私房菜基礎(chǔ)學(xué)習(xí)篇》鳥哥、許偉、林彩娥等編著《Linux編程從入門到精通》宮虎波編著《Linux內(nèi)核完全剖析》趙炯編著實踐合理利用網(wǎng)絡(luò)資源:論壇、視頻等如何學(xué)習(xí)Linux1.2.1Linux內(nèi)核結(jié)構(gòu)1.2Linux的內(nèi)核分析內(nèi)核負(fù)責(zé)管理磁盤上的文件、內(nèi)存,負(fù)責(zé)啟動并運行程序,負(fù)責(zé)從網(wǎng)絡(luò)上接收和發(fā)送數(shù)據(jù)包等等。內(nèi)核實際是抽象的資源操作到具體硬件操作細(xì)節(jié)之間的接口。
從程序員來看,Linux內(nèi)核抽象了許多硬件細(xì)節(jié),使程序員可以以統(tǒng)一的方式進(jìn)行數(shù)據(jù)處理。
從用戶來看,Linux是一個資源管理者,幫助用戶方便的管理自己的數(shù)據(jù),完成自己的工作。
Linux是多用戶、多任務(wù)的操作系統(tǒng)。Linux內(nèi)核保證每個用戶都象自己獨占內(nèi)存和其他硬件資源一樣運行其進(jìn)程,并使各進(jìn)程公平合理地使用各種資源。1.2.2Linux內(nèi)核的作用1.2.3Linux內(nèi)核的抽象結(jié)構(gòu)
5個子系統(tǒng)提供對各種網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)硬件的支持。分為網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)設(shè)備驅(qū)動兩部分。保證多個進(jìn)程安全地共享內(nèi)存區(qū)域。負(fù)責(zé)控制進(jìn)程對CPU的訪問。支持進(jìn)程間各種通信機(jī)制為所有設(shè)備提供統(tǒng)一的接口,支持?jǐn)?shù)十種不同的文件系統(tǒng)。包括邏輯文件系統(tǒng)和設(shè)備驅(qū)動程序。各個子系統(tǒng)之間的依賴關(guān)系互相依賴。在多道程序環(huán)境下,程序要運行必須為之創(chuàng)建進(jìn)程,而創(chuàng)建進(jìn)程的第一件事情,就是將程序和數(shù)據(jù)裝入內(nèi)存。依賴
支持共享內(nèi)存通信機(jī)制,這種機(jī)制允許兩個進(jìn)程除了擁有自己的私有空間,還可以存取共同的內(nèi)存區(qū)域。虛擬文件系統(tǒng)利用網(wǎng)絡(luò)接口支持網(wǎng)絡(luò)文件系統(tǒng)(NFS)內(nèi)存管理利用虛擬文件系統(tǒng)支持交換,交換進(jìn)程定期由調(diào)度程序調(diào)度,這也是內(nèi)存管理依賴于進(jìn)程調(diào)度的唯一原因。各個子系統(tǒng)之間的依賴關(guān)系
進(jìn)程調(diào)度與內(nèi)存管理之間的關(guān)系:這兩個子系統(tǒng)互相依賴。在多道程序環(huán)境下,程序要運行必須為之創(chuàng)建進(jìn)程,而創(chuàng)建進(jìn)程的第一件事情,就是將程序和數(shù)據(jù)裝入內(nèi)存。進(jìn)程間通信與內(nèi)存管理的關(guān)系:進(jìn)程間通信子系統(tǒng)要依賴內(nèi)存管理支持共享內(nèi)存通信機(jī)制,這種機(jī)制允許兩個進(jìn)程除了擁有自己的私有空間,還可以存取共同的內(nèi)存區(qū)域。
虛擬文件系統(tǒng)與網(wǎng)絡(luò)接口之間的關(guān)系:虛擬文件系統(tǒng)利用網(wǎng)絡(luò)接口支持網(wǎng)絡(luò)文件系統(tǒng)(NFS)。內(nèi)存管理與虛擬文件系統(tǒng)之間的關(guān)系:內(nèi)存管理利用虛擬文件系統(tǒng)支持交換,交換進(jìn)程定期由調(diào)度程序調(diào)度,這也是內(nèi)存管理依賴于進(jìn)程調(diào)度的唯一原因。當(dāng)一個進(jìn)程存取的內(nèi)存映射被換出時,內(nèi)存管理向文件系統(tǒng)發(fā)出請求,同時,掛起當(dāng)前正在運行的進(jìn)程。1.2.3Linux內(nèi)核的抽象結(jié)構(gòu)
一般在Linux系統(tǒng)中的/usr/src/Linux-*.*.*(*.*.*代表內(nèi)核版本)目錄下就是內(nèi)核源代碼。Linux內(nèi)核非常龐大,包括驅(qū)動程序在內(nèi)有數(shù)百兆之多。1.2.4Linux內(nèi)核的源代碼1.2.4Linux內(nèi)核的源代碼arch目錄:包含了體系結(jié)構(gòu)相關(guān)部分的內(nèi)核代碼,其中的每一個目錄都代表一種硬件平臺,比如ARM平臺和PC機(jī)使用的i386。對于任何一種平臺,都包括以下5個目錄:boot、kernel、lib、mm和math-xxx。顯然,移植工作的重點就是arch目錄下的文件。/mm目錄:包含了所有的內(nèi)存管理代碼。/init目錄:包含了內(nèi)核的初始化代碼(不是系統(tǒng)的引導(dǎo)代碼),有main.c和version.c兩個文件。內(nèi)核從此工作。/fs目錄:包含了Linux所支持的所有文件系統(tǒng)。一般來說,文件系統(tǒng)與硬件無關(guān)。/ipc目錄:包含了核心進(jìn)程間的通信代碼。/kernel目錄:包含了內(nèi)核管理的核心代碼。/include目錄:包含了建立內(nèi)核代碼時所需的大部分頭文件,比如,與平臺無關(guān)的頭文件在include/linux子目錄下。此外,也包括了不同平臺需要的庫文件,比如,asm-arm是ARM平臺需要的庫文件。/net目錄:包含了和網(wǎng)絡(luò)相關(guān)的代碼,其每一個子目錄對應(yīng)于網(wǎng)絡(luò)的一個方面。/lib目錄:包含了所有的庫代碼。其它目錄:Documentation目錄包含了許多非常詳細(xì)的文檔。Scripts目錄主要在配置內(nèi)核時用到,存放了配置內(nèi)核的一些腳本文件,如“makemenuconfig”命令。1.2.4Linux內(nèi)核的源代碼1.3常見的嵌入式操作系統(tǒng)1.3.1嵌入式操作系統(tǒng)概念和分類
操作系統(tǒng)(OS,OperatingSystem):
是隱藏底層不同硬件的差異,向在其上運行的應(yīng)用程序提供一個統(tǒng)一的調(diào)用接口。
操作系統(tǒng)主要完成三項任務(wù):
內(nèi)存管理多任務(wù)管理外圍設(shè)備管理。應(yīng)用程序操作系統(tǒng)系統(tǒng)界面驅(qū)動程序硬件硬件硬件硬件1.3.1嵌入式操作系統(tǒng)概念和分類---概念嵌入式操作系統(tǒng)(EmbeddedOperatingSystem)
負(fù)責(zé)嵌入式系統(tǒng)的全部軟、硬件資源的分配、調(diào)度、控制、協(xié)調(diào);能夠通過加載/卸載某些模塊來達(dá)到系統(tǒng)所要求的功能。EOS是相對于一般操作系統(tǒng)而言的,它除具備了一般操作系統(tǒng)最基本的功能,如任務(wù)調(diào)度、同步機(jī)制、中斷處理、文件處理等外,還有以下特點:強(qiáng)穩(wěn)定性,弱交互性:具有很強(qiáng)的穩(wěn)定性;較強(qiáng)的實時性;可伸縮性:開放、可伸縮性的體系結(jié)構(gòu);外設(shè)接口的統(tǒng)一性:提供各種設(shè)備驅(qū)動接口。實時操作系統(tǒng)(Real-TimeOperatingSystem,RTOS),是指操作系統(tǒng)本身要能在一個固定時限內(nèi)對程序調(diào)用(或外部事件)做出正確的反應(yīng),亦即對時序與穩(wěn)定性的要求十分嚴(yán)格。目前國際較為知名的有:VxWorks、NeutrinoRTOS、NucleusPlus、OS/9、VRTX、LinuxOS,RTLinux、BlueCatRT等。通用型操作系統(tǒng):執(zhí)行性能與反應(yīng)速度比起實時操作系統(tǒng),相對沒有那么嚴(yán)格。目前較知名的有:WindowsCE、PalmOS、TimeSysLinux/GPL、BlueCatLinux等。
嵌入式操作系統(tǒng)的性能通常取決于核心程序,而核心的工作主要在任務(wù)管理(TaskManagement)、任務(wù)調(diào)度(TaskScheduling)、進(jìn)程間的通信(IPC)、內(nèi)存管理(MemoryManagement)。1.3.1嵌入式操作系統(tǒng)概念和分類---分類比較著名的嵌入式操作系統(tǒng)(了解)嵌入式LinuxμC/OS-IIWindowsCEVxWorksQNX 利用Linux搭建嵌入式操作系統(tǒng)是近年來最令人振奮的方案之一,Linux將來可能會成為嵌入式系統(tǒng)主流操作系統(tǒng)。
1.3.2嵌入式Linux(1)嵌入式Linux是按照嵌入式操作系統(tǒng)的要求而設(shè)計的一種小型操作系統(tǒng)。由一個內(nèi)核及一些根據(jù)需要進(jìn)行定制的系統(tǒng)模塊組成。其kernel很小,一般只有幾百kB左右。即使加上其它必須的模塊和應(yīng)用程序,所需的存儲空間也很小。它有多任務(wù)、多進(jìn)程的系統(tǒng)特征,有些還具有實時性。
1.3.2嵌入式Linux(2)嵌入式Linux操作系統(tǒng)的優(yōu)勢(1)、支持多種體系結(jié)構(gòu); 目前Linux能夠支持x86,ARM,IPS,APARC等多種CPU的體系機(jī)構(gòu),已被移植到數(shù)十種硬件平臺上。(2)、多任務(wù),內(nèi)核穩(wěn)定,可定制,源代碼開放;(3)、強(qiáng)大的網(wǎng)絡(luò)支持功能; 支持TCP/IP協(xié)議,及其上的高層協(xié)議,如ftp,Telnet,http等。同時支持Socket網(wǎng)絡(luò)編程。(4)、支持多文件系統(tǒng);
linux支持FAT32,EXT2,EXT3等多種文件系統(tǒng),支持虛擬文件系統(tǒng),同時還可以連接其它的文件系統(tǒng),如ROMFS,JFFS等文件系統(tǒng)。嵌入式Linux操作系統(tǒng)的優(yōu)勢(5)、驅(qū)動豐富,支持大量的外設(shè);
linux支持基本所有的PC外設(shè),具有豐富的外設(shè)驅(qū)動程序。(6)、Linux具備一整套工具鏈。容易自行建立嵌入式系統(tǒng)的開發(fā)環(huán)境、交叉運行環(huán)境,并且可以跨越嵌入式系統(tǒng)開發(fā)中仿真工具的障礙。一般開發(fā)嵌入式操作系統(tǒng)的程序調(diào)試和跟蹤都是使用仿真器來實現(xiàn)的,而使用Linux系統(tǒng)做原型的時候,可以繞過這個障礙,直接使用內(nèi)核調(diào)試器來做操作系統(tǒng)的內(nèi)核調(diào)試和查錯。μC/OS是一個典型的實時操作系統(tǒng)。該系統(tǒng)從1992年開始發(fā)展,目前流行的是第二個版本,即μC/OSII。名稱μC/OS-II來源于術(shù)語Micro-ControllerOperatingSystem(微控制器操作系統(tǒng))。它通常也稱為MUCOS或者UCOS。1.3.3μC/OS-IIμC/OS-Ⅱ只是一個實時操作系統(tǒng)內(nèi)核,其特點:提供任務(wù)調(diào)度、任務(wù)管理、時間管理、內(nèi)存管理和任務(wù)間通信和同步等基本功能;沒有提供輸入輸出管理、文件管理、網(wǎng)絡(luò)等額外的服務(wù)。源碼開放及可擴(kuò)展?;趦?yōu)先級調(diào)度的搶占式實時內(nèi)核,在內(nèi)核之上提供最基本的系統(tǒng)服務(wù)。例如:信號量、郵箱、消息隊列、內(nèi)存管理、中斷管理等。應(yīng)用領(lǐng)域包括便攜式電話、照相機(jī)、醫(yī)療器械、音響設(shè)備、發(fā)動機(jī)控制、高速公路電話系統(tǒng)、自動支付終端、交換機(jī)等。2000年,得到美國航空管理局(FAA)的認(rèn)證,可以用于飛行器中。1.3.3μC/OS-IIμC/OS-Ⅱ具有良好的可移植性。μC/OS-Ⅱ的大部分代碼都是用C語言寫成的,只有與處理器的硬件相關(guān)的一部分代碼用匯編語言編寫。目前μC/OS-Ⅱ支持ARM、PowerPC、MIPS、68k/ColdFire和x86等多種體系結(jié)構(gòu)。是一個源碼公開、可移植、可裁減、占用資源少、搶先式的實時多任務(wù)操作系統(tǒng)。其絕大部分源碼采用ANSIC寫的,移植性好。高校教學(xué)可免費使用。目前的版本是μC/OS-IIV2.72。
1.3.3μC/OS-IIWindowsCE,微軟公司,它是從整體上為資源有限的平臺設(shè)計的多線程、完整優(yōu)先權(quán)、多任務(wù)的操作系統(tǒng)。模塊化設(shè)計,并允許針對從掌上電腦到專用的工控電子設(shè)備進(jìn)行定制。操作系統(tǒng)的基本內(nèi)核需要至少200KB的ROM。主要應(yīng)用于PDA,智能電話(smartphone)等多媒體網(wǎng)絡(luò)產(chǎn)品。
嵌入式操作系統(tǒng)領(lǐng)域競爭激烈,微軟公司不得不應(yīng)付來自Linux等免費系統(tǒng)的沖擊。微軟公司在WindowsCE.Net4.2版中,增加一項授權(quán)價僅3美元的精簡版本W(wǎng)indowsCE.NetCore?;镜墓δ馨ǎ簩崟rOS核心(RealTimeOSKernel),新文件系統(tǒng),IPv4、IPv6、WLAN、藍(lán)牙等聯(lián)網(wǎng)功能,WindowsMediaCodec,.Net開發(fā)框架以及SQLServer.ce。低價版本的WindowsCE.Net,主要是看好語音電話、WLAN的無線橋接器和個性化視聽設(shè)備的成長潛力。1.3.4WindowsCE嵌入式LinuxOS與WindowsCE相比的優(yōu)點第一:Linux是開放源代碼,遍布全球的眾多Linux愛好者都是Linux開發(fā)者的強(qiáng)大技術(shù)支持者;WindowsCE6.0內(nèi)核全部開放,GUI不開放。第二:Linux的內(nèi)核小、效率高;WindowsCE相比,占用過多的RAM。第三:Linux是開放源代碼的OS,在價格上極具競爭力,適合中國國情。WindowsCE需要版權(quán)費用。第四:Linux不僅支持x86芯片,還是一個跨平臺的系統(tǒng)。更換CPU時就不會遇到更換平臺的困擾。第五:Linux內(nèi)核的結(jié)構(gòu)在網(wǎng)絡(luò)方面是非常完整的,它提供了對包括十兆位、百兆位及千兆位的以太網(wǎng)絡(luò),還有無線網(wǎng)絡(luò)、Tokenring(令牌環(huán))和光纖甚至衛(wèi)星的支持,WindowsCE的網(wǎng)絡(luò)功能也比較強(qiáng)大。嵌入式LinuxOS與WindowsCE相比的弱點第一:LINUX開發(fā)難度較高,需要很高的技術(shù)實力,WINCE開發(fā)相對較容易,開發(fā)周期短,內(nèi)核完善,主要是應(yīng)用層開發(fā)。第二:LINUX核心調(diào)試工具不全,調(diào)試不太方便,尚沒有很好的用戶圖形界面,WINCE的GUI豐富,開發(fā)工具強(qiáng)大;第三,系統(tǒng)維護(hù)難度大。Linux在使用較完整的GUI時一般會占用較大的內(nèi)存,如果去掉部分無用的功能來減小使用的內(nèi)存,但是如果不仔細(xì),將引起新的問題。1.4嵌入式系統(tǒng)開發(fā)過程1.4.1嵌入式系統(tǒng)總體結(jié)構(gòu)
1.硬件層:由嵌入式微處理器、外圍電路和外設(shè)組成。外圍電路有:電源電路、復(fù)位電路、調(diào)試接口和存儲器電路,就構(gòu)成一個嵌入式核心控制模塊。
操作系統(tǒng)和應(yīng)用程序都可以固化在ROM或者Flash中。有些嵌入式系統(tǒng)還包括:LCD、鍵盤、USB接口,以及其他一些功能的擴(kuò)展電路。1.4.1嵌入式系統(tǒng)總體結(jié)構(gòu)2.中間層:硬件層與軟件層之間為中間層,也稱為BSP(BoardSupportPackage,板級支持包)。作用:將系統(tǒng)軟件與底層硬件部分隔離,使得系統(tǒng)的底層設(shè)備驅(qū)動程序與硬件無關(guān);功能:具有相關(guān)硬件的初始化、數(shù)據(jù)的輸入/輸出操作和硬件設(shè)備的配置等功能。BSP是主板硬件環(huán)境和操作系統(tǒng)的中間接口,是軟件平臺中具有硬件依賴性的那一部分,主要目的是為了支持操作系統(tǒng),使之能夠更好地運行于硬件主板上。1.4.1嵌入式系統(tǒng)總體結(jié)構(gòu)3.軟件層 主要是操作系統(tǒng),有的還包括文件系統(tǒng)、圖形用戶接口和網(wǎng)絡(luò)系統(tǒng)等。操作系統(tǒng)是一個標(biāo)準(zhǔn)的內(nèi)核,將中斷、I/O、定時器等資源都封裝起來,以方便用戶使用。4.功能層 由基于操作系統(tǒng)開發(fā)的應(yīng)用程序組成,用來完成對被控對象的控制功能。功能層是面向被控對象和用戶的,為了方便用戶操作,往往需要具有友好的人機(jī)界面。1.4.1嵌入式系統(tǒng)總體結(jié)構(gòu)1.4.2嵌入式系統(tǒng)的開發(fā)特點1.采用宿主機(jī)/目標(biāo)機(jī)方式,所需要的開發(fā)環(huán)境稱為交叉開發(fā)環(huán)境2.為了保證穩(wěn)定性和實時性,選用RTOS開發(fā)平臺3.生成代碼需要固態(tài)化存儲4.軟件代碼具有高質(zhì)量、高可靠性1.4.2嵌入式系統(tǒng)的開發(fā)特點嵌入式系統(tǒng)的應(yīng)用開發(fā)一般由5個階段構(gòu)成:需求分析設(shè)計規(guī)格說明書(功能性和非功能性需求、任務(wù)和目標(biāo))體系結(jié)構(gòu)設(shè)計如何實現(xiàn)需求,對硬件、軟件的功能劃分,硬件、軟件、操作系統(tǒng)的選型硬件/軟件設(shè)計軟件(應(yīng)用程序)和硬件的詳細(xì)設(shè)計系統(tǒng)集成軟件和硬件集成調(diào)試代碼固化。將程序?qū)懭氲紽lash等非易失性存儲器中。各階段間往往要求不斷地反復(fù)和修改,直到最終完成設(shè)計目標(biāo)。1.4.3嵌入式系統(tǒng)開發(fā)流程系統(tǒng)的調(diào)試有如下幾種:1.源程序模擬器(Simulator)
2.實時在線仿真系統(tǒng)ICE(In-CircuitEmulator)方式--是一種完全仿造調(diào)試目標(biāo)CPU設(shè)計的儀器3.監(jiān)控器方式4.在線調(diào)試器方式ICD5.高級語言編譯器(CompilerTools)1.4.4嵌入式系統(tǒng)調(diào)試有關(guān)嵌入式系統(tǒng)學(xué)習(xí)的四個層面:
嵌入式系統(tǒng)分為4層,硬件層、驅(qū)動層、操作系統(tǒng)層和應(yīng)用層。1、硬件層,是整個嵌入式系統(tǒng)的根本,如果現(xiàn)在單片機(jī)及接口這塊很熟悉,并且能用C和匯編語言來編程的話,從嵌入式系統(tǒng)的硬件層走起來相對容易,硬件層也是驅(qū)動層的基礎(chǔ),一個優(yōu)秀的驅(qū)動工程師是要能夠看懂硬件的電路圖和自行完成CPLD的邏輯設(shè)計的,同時還要對操作系統(tǒng)內(nèi)核及其調(diào)度性相當(dāng)?shù)氖煜さ?。但硬件平臺是基礎(chǔ),增值還要靠軟件。硬件層比較適合于,電子、通信、自動化、機(jī)電一體、信息工程類專業(yè)的人來搞,需要掌握的專業(yè)基礎(chǔ)知識有,單片機(jī)原理及接口技術(shù)、微機(jī)原理及接口技術(shù)、C語言。
2、驅(qū)動層,這部分比較難,驅(qū)動工程師不僅要能看懂電路圖還要能對操作系統(tǒng)內(nèi)核十分的精通,以便其所寫的驅(qū)動程序在系統(tǒng)調(diào)用時,不會獨占操作系統(tǒng)時間片,而導(dǎo)至其它任務(wù)不能動行,不懂操作系統(tǒng)內(nèi)核架構(gòu)和實時調(diào)度性,沒有良好的驅(qū)動編寫風(fēng)格,按大多數(shù)書上所說添加的驅(qū)動的方式,很多人都能做到,但可能連個初級的驅(qū)動工程師的水平都達(dá)不到,這樣所寫的驅(qū)動在應(yīng)用調(diào)用時就如同windows下我們打開一個程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 棗陽運力課堂考試題目及答案
- 養(yǎng)老院老人康復(fù)理療服務(wù)質(zhì)量管理制度
- 養(yǎng)老院老人健康監(jiān)測人員激勵制度
- 養(yǎng)老院環(huán)境衛(wèi)生制度
- 高一數(shù)學(xué)套卷題目及答案
- 辦公室員工健康與安全管理制度
- 邊防協(xié)管員培訓(xùn)制度
- 試析民商事仲裁中的證據(jù)制度
- 行政單位廉潔自律制度
- 2025年新泰17年事業(yè)單位考試及答案
- 韭菜的自我修養(yǎng)(李笑來)-2018
- 高一上學(xué)期期末考試英語試卷及答案兩套(附聽力錄音稿)
- 勞務(wù)派遣標(biāo)書服務(wù)方案(全覆蓋版本)
- 視覺傳播概論 課件全 任悅 第1-12章 視覺傳播的研究- 視覺傳播中的倫理與法規(guī)
- 溝通技巧與情商提升
- 2024屆新疆維吾爾自治區(qū)烏魯木齊市高三上學(xué)期第一次質(zhì)量監(jiān)測生物試題【含答案解析】
- 公司基層黨建問題清單
- 《廣西歷史建筑保護(hù)修繕及檢測技術(shù)標(biāo)準(zhǔn)》
- 福州港羅源灣港區(qū)碧里作業(yè)區(qū)4號泊位擴(kuò)能改造工程環(huán)境影響報告
- 八年級物理下冊《滑輪》練習(xí)題及答案-人教版
- 江蘇省建設(shè)工程施工項目部關(guān)鍵崗位人員變更申請表優(yōu)質(zhì)資料
評論
0/150
提交評論