




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、嵌入式Linux開發(fā)流程開發(fā)流程嵌入式Linux開發(fā)流程開發(fā)流程 嵌入式嵌入式Linux開發(fā)概述開發(fā)概述 嵌入式嵌入式Linux軟件開發(fā)的五個階段軟件開發(fā)的五個階段 嵌入式嵌入式Linux開發(fā)流程開發(fā)流程 嵌入式嵌入式Linux開發(fā)工具簡介開發(fā)工具簡介BackGround Debugging Mode(摩托羅拉公司支持的一種摩托羅拉公司支持的一種OCD的調(diào)試模式的調(diào)試模式)交叉編譯環(huán)境建立交叉編譯環(huán)境建立交叉編譯環(huán)境建立交叉編譯環(huán)境建立嵌入式Linux開發(fā)環(huán)境開發(fā)環(huán)境 交叉開發(fā)環(huán)境(主機(jī)目標(biāo)機(jī)的工作方式)目標(biāo)機(jī)的工作方式)嵌入式Linux開發(fā)環(huán)境開發(fā)環(huán)境 Linux下開發(fā)下開發(fā) Windows
2、下開發(fā)下開發(fā)CygwinVmware(虛擬機(jī))(虛擬機(jī))+ Linux其它集成開發(fā)環(huán)境嵌入式Linux軟件組成軟件組成 嵌入式Linux系統(tǒng)軟件由以下部分組成:系統(tǒng)軟件由以下部分組成: 嵌入式Linux啟動裝載器:Boot Loader Boot Loader驅(qū)動程序 嵌入式Linux操作系統(tǒng)內(nèi)核 Linux設(shè)備驅(qū)動程序 最小支持文件系統(tǒng) 應(yīng)用程序嵌入式Linux組成組成BootLoader 啟動裝載器完成Linux操作系統(tǒng)內(nèi)核的啟動加操作系統(tǒng)內(nèi)核的啟動加載。 系統(tǒng)上電后執(zhí)行,初始化硬件。 提供基本的交互操作界面,如內(nèi)存查看與修改,設(shè)備查詢等功能。 提供下載(讀取)Linux內(nèi)核的功能。 提供
3、從裝載器到Linux內(nèi)核傳送參數(shù)的功能。 裝載Linux操作系統(tǒng)到內(nèi)存中,并將控制轉(zhuǎn)移到 Linux內(nèi)核起始執(zhí)行處。完成Linux內(nèi)核的啟動。嵌入式Linux組成組成BootLoader驅(qū)動驅(qū)動 啟動裝載器驅(qū)動程序驅(qū)動基本設(shè)備,提供獲取內(nèi)核能力。 啟動裝載器驅(qū)動程序只在裝載器環(huán)境中使用,與Linux驅(qū)動不同。 一般采用相對較為簡單的方式,如一般可以不必采用中斷方式,而是采用查詢方式。 驅(qū)動串行接口,進(jìn)行控制臺(console)操作。 驅(qū)動網(wǎng)口,提供從網(wǎng)絡(luò)下載內(nèi)核的能力。 驅(qū)動FLASH,提供從FLASH讀取內(nèi)核能力。嵌入式Linux組成組成Linux內(nèi)核內(nèi)核 嵌入式嵌入式Linux內(nèi)核(內(nèi)核(
4、Kernel)是整個嵌入式操作)是整個嵌入式操作系統(tǒng)的核心,它直接管理硬件,并通過系統(tǒng)調(diào)系統(tǒng)的核心,它直接管理硬件,并通過系統(tǒng)調(diào)用為上層應(yīng)用提供服務(wù)。用為上層應(yīng)用提供服務(wù)。 為適應(yīng)嵌入式環(huán)境,需對內(nèi)核進(jìn)行為適應(yīng)嵌入式環(huán)境,需對內(nèi)核進(jìn)行裁減與配置裁減與配置。 提供支持特定硬件平臺的內(nèi)核啟動代碼 去除多余功能,減小體積 增加實(shí)時功能 添加特殊的系統(tǒng)調(diào)用嵌入式Linux組成組成Linux設(shè)備驅(qū)動設(shè)備驅(qū)動 Linux硬件驅(qū)動提供目標(biāo)系統(tǒng)硬件在Linux操作系統(tǒng)下的驅(qū)動程序,供系統(tǒng)以及之上的應(yīng)用存取硬件使用。 Linux下的設(shè)備劃分為3類:字符設(shè)備char(如鍵盤、串口等)、塊設(shè)備block(如磁盤等)
5、、網(wǎng)絡(luò)設(shè)備一般列為單獨(dú)的一類設(shè)備 由于Linux運(yùn)行時候劃分內(nèi)核空間與用戶空間,而驅(qū)動程序一般運(yùn)行在內(nèi)核空間中。對于運(yùn)行在用戶空間的應(yīng)用程序而言,從相應(yīng)硬件中獲取數(shù)據(jù)需要經(jīng)過一個內(nèi)核空間到用戶空間拷貝的過程。嵌入式Linux組成組成最小文件系統(tǒng)最小文件系統(tǒng) 嵌入式Linux必須要有文件系統(tǒng)支持才能運(yùn)行必須要有文件系統(tǒng)支持才能運(yùn)行 嵌入式系統(tǒng)中一般采用MTD的物理設(shè)備作為文的物理設(shè)備作為文件系統(tǒng)駐留空間:如RAM、Flash等。等。 文件系統(tǒng)中必須包含的內(nèi)容 系統(tǒng)init程序; Shell; 應(yīng)用程序; 應(yīng)用程序函數(shù)庫。 必須采取措施,減小文件系統(tǒng)的體積,以適應(yīng)嵌入式應(yīng)用的需求。嵌入式Linux
6、組成組成應(yīng)用程序應(yīng)用程序 應(yīng)用程序 應(yīng)用程序完成整個嵌入式系統(tǒng)的對外功能需求與功能接口。 應(yīng)用程序一般運(yùn)行在Linux的用戶空間,作為一個用戶進(jìn)程在運(yùn)行。 應(yīng)用程序通過系統(tǒng)調(diào)用進(jìn)入內(nèi)核,訪問內(nèi)核提供的服務(wù)。存取硬件。 可以有多個應(yīng)用程序同時運(yùn)行。 應(yīng)用程序崩潰一般不會導(dǎo)致系統(tǒng)崩潰。 Linux支持Posix線程:pthread。嵌入式Linux開發(fā)流程開發(fā)流程 嵌入式嵌入式Linux開發(fā)概述開發(fā)概述 嵌入式嵌入式Linux軟件開發(fā)的五個階段軟件開發(fā)的五個階段 嵌入式嵌入式Linux開發(fā)流程開發(fā)流程 嵌入式嵌入式Linux開發(fā)工具簡介開發(fā)工具簡介嵌入式嵌入式Linux軟件開發(fā)的五個開發(fā)階段軟件開
7、發(fā)的五個開發(fā)階段 根據(jù)整個嵌入式根據(jù)整個嵌入式Linux應(yīng)用開發(fā)過程的時間先應(yīng)用開發(fā)過程的時間先后可以分為以下后可以分為以下5個開發(fā)階段:個開發(fā)階段: Boot程序(含Boot驅(qū)動)開發(fā) Linux內(nèi)核開發(fā) Linux驅(qū)動程序開發(fā) 應(yīng)用程序開發(fā) Linux目標(biāo)系統(tǒng)集成 每個開發(fā)階段對應(yīng)于一個完整嵌入式每個開發(fā)階段對應(yīng)于一個完整嵌入式Linux系系統(tǒng)的一些組成部分進(jìn)行的開發(fā)工作統(tǒng)的一些組成部分進(jìn)行的開發(fā)工作Boot及驅(qū)動程序開發(fā)及驅(qū)動程序開發(fā)Step1 開發(fā)目標(biāo)開發(fā)目標(biāo) 啟動嵌入式目標(biāo)系統(tǒng),使系統(tǒng)具有加載并啟動Linux內(nèi)核的能力。 工作重點(diǎn)工作重點(diǎn) CPU初始化;RAM初始化;串口、網(wǎng)卡、以及
8、FLASH驅(qū)動;基本的網(wǎng)絡(luò)UDP/IP協(xié)議棧支持。 工作產(chǎn)品工作產(chǎn)品 目標(biāo)系統(tǒng)的啟動ROM??梢詥幽繕?biāo)系統(tǒng) 的Boot Loader。Linux內(nèi)核開發(fā)內(nèi)核開發(fā)Step2 開發(fā)目標(biāo)開發(fā)目標(biāo) 獲得一個滿足目標(biāo)系統(tǒng)功能與性能需求,可以啟動的Linux內(nèi)核。 工作重點(diǎn)工作重點(diǎn) 啟動最小系統(tǒng)(內(nèi)核配置和生成)開發(fā)、 外圍設(shè)備驅(qū)動的開發(fā)。 工作產(chǎn)品工作產(chǎn)品 可以啟動系統(tǒng)的Linux內(nèi)核(bzImage、 pImage等)Linux設(shè)備驅(qū)動程序開發(fā)設(shè)備驅(qū)動程序開發(fā)Step3 開發(fā)目標(biāo)開發(fā)目標(biāo) 驅(qū)動目標(biāo)系統(tǒng)上的相關(guān)設(shè)備,為上層應(yīng)用提供存取硬件的能力。 工作重點(diǎn)工作重點(diǎn) 關(guān)注設(shè)備身的特性,采用合適的驅(qū)動方式
9、。 工作產(chǎn)品工作產(chǎn)品 可以是內(nèi)核的一部分,也可以是模塊化的驅(qū)動程序(內(nèi)核可裝載模塊)的目標(biāo)文件(*.o)。Linux應(yīng)用程序開發(fā)應(yīng)用程序開發(fā)Step4 開發(fā)目標(biāo)開發(fā)目標(biāo) 實(shí)現(xiàn)單板需要實(shí)現(xiàn)的產(chǎn)品功能與接口。提供相應(yīng)的單板服務(wù)與響應(yīng)。 工作重點(diǎn)工作重點(diǎn) 關(guān)注應(yīng)用本身。如果在封裝過的操作系統(tǒng)平臺上開發(fā),需要關(guān)注所封裝的接口。 工作產(chǎn)品工作產(chǎn)品 可以執(zhí)行的應(yīng)用程序,一般為ELF格式,采用動態(tài)或者靜態(tài)連接,可以在目標(biāo)系統(tǒng)上運(yùn)行。Linux目標(biāo)系統(tǒng)集成目標(biāo)系統(tǒng)集成Step5 開發(fā)目標(biāo)開發(fā)目標(biāo) 提供產(chǎn)品化的嵌入式Linux系統(tǒng)。 工作重點(diǎn)工作重點(diǎn) 關(guān)注系統(tǒng)占用的存儲空間,文件系統(tǒng)選擇。系統(tǒng)啟動腳本。 工作產(chǎn)
10、品工作產(chǎn)品 無需開發(fā)主機(jī)配合就可以獨(dú)立運(yùn)行的產(chǎn)品化的嵌入式Linux系統(tǒng)。嵌入式Linux開發(fā)流程開發(fā)流程 嵌入式嵌入式Linux開發(fā)概述開發(fā)概述 嵌入式嵌入式Linux軟件開發(fā)的五個階段軟件開發(fā)的五個階段 嵌入式嵌入式Linux開發(fā)流程開發(fā)流程 嵌入式嵌入式Linux開發(fā)工具簡介開發(fā)工具簡介Linux開發(fā)流程開發(fā)流程-操作系統(tǒng)的裁剪操作系統(tǒng)的裁剪1 操作系統(tǒng)的裁剪操作系統(tǒng)的裁剪 對應(yīng)于PC機(jī)上的軟件開發(fā),這應(yīng)該屬于系統(tǒng)設(shè)計,針對嵌入式系統(tǒng)的硬件環(huán)境,必須對操作系統(tǒng)進(jìn)行裁剪設(shè)計,一方面卸載和刪除無用的模塊,修改和簡化需要的模塊;另一方面增加板極支持包的支持,相對嵌入式硬件系統(tǒng),完善相對應(yīng)的操作
11、系統(tǒng),使得系統(tǒng)最為緊湊、小巧。Linux開發(fā)流程開發(fā)流程-嵌入式操作系統(tǒng)內(nèi)核的配置和編譯嵌入式操作系統(tǒng)內(nèi)核的配置和編譯2 嵌入式操作系統(tǒng)內(nèi)核的配置和編譯嵌入式操作系統(tǒng)內(nèi)核的配置和編譯 當(dāng)系統(tǒng)設(shè)計確定后,就可以具體對操作系統(tǒng)的內(nèi)核進(jìn)行合理配置和編譯,形成新的應(yīng)用于嵌入式硬件系統(tǒng)的定制的內(nèi)核,最后一般形成內(nèi)核影象文件,下載到系統(tǒng)的FLASH中,完成內(nèi)核的“量身定做”。Linux開發(fā)流程開發(fā)流程-文件系統(tǒng)的建立文件系統(tǒng)的建立3 文件系統(tǒng)的建立文件系統(tǒng)的建立 對于操作系統(tǒng),內(nèi)核裁剪完成后,接著對文件系統(tǒng)進(jìn)行裁剪,由于每一種操作系統(tǒng)都支持很多文件系統(tǒng),對于嵌入式操作系統(tǒng)的文件系統(tǒng)裁剪,和內(nèi)核一樣,針對板
12、子上的并口FLASH、串口FLASH,各種存儲卡、U盤等等,構(gòu)造和裁剪出相應(yīng)的文件系統(tǒng),完成文件系統(tǒng)的建立。Linux開發(fā)流程開發(fā)流程-用戶程序的編寫和簡單的仿真調(diào)試用戶程序的編寫和簡單的仿真調(diào)試4 用戶程序的編寫和簡單的仿真調(diào)試用戶程序的編寫和簡單的仿真調(diào)試 建立交叉編譯的開發(fā)環(huán)境,開發(fā)用戶的應(yīng)用程序,并且盡可能采用一些開發(fā)工具,如vi等,把一些模塊下載到目標(biāo)板上,進(jìn)行測試。Linux開發(fā)流程開發(fā)流程-整體系統(tǒng)的目標(biāo)板仿真調(diào)試整體系統(tǒng)的目標(biāo)板仿真調(diào)試5 整體系統(tǒng)的目標(biāo)板仿真調(diào)試整體系統(tǒng)的目標(biāo)板仿真調(diào)試 應(yīng)用程序開發(fā)完后,和文件系統(tǒng)一起,形成文件系統(tǒng)的映像文件,然后通過仿真工具(仿真機(jī)、調(diào)試串
13、口等)和host-target開發(fā)環(huán)境,對系統(tǒng)進(jìn)行仿真和調(diào)試Linux開發(fā)流程開發(fā)流程-系統(tǒng)下載和脫機(jī)運(yùn)行系統(tǒng)下載和脫機(jī)運(yùn)行6 系統(tǒng)下載和脫機(jī)運(yùn)行系統(tǒng)下載和脫機(jī)運(yùn)行 當(dāng)仿真完成,確定系統(tǒng)功能開發(fā)達(dá)到目標(biāo)后,把最終形成的影象文件,內(nèi)核影象文件和文件系統(tǒng)影象通過開發(fā)系統(tǒng)的下載工具進(jìn)行下載,然后測試。嵌入式Linux開發(fā)流程開發(fā)流程 嵌入式嵌入式Linux開發(fā)概述開發(fā)概述 嵌入式嵌入式Linux軟件開發(fā)的五個階段軟件開發(fā)的五個階段 嵌入式嵌入式Linux開發(fā)流程開發(fā)流程 嵌入式嵌入式Linux開發(fā)工具簡介開發(fā)工具簡介GNU基礎(chǔ)工具鏈基礎(chǔ)工具鏈 Binutils binutils是二進(jìn)制工具,它是一套處理二進(jìn)制文件的工具的集合,需要使用它進(jìn)行可執(zhí)行文件的生成等工作。 GCC GCC是GNU C語言編譯器,使用它來進(jìn)行Linux內(nèi)核、庫文件、以及應(yīng)用程序的編譯。 Glibc Glibc是GNU的C語言函數(shù)庫,使用它提供C語言庫函數(shù)的支持。 Gdb Gdb是GNU Debuger,是Linux平臺上的標(biāo)準(zhǔn)調(diào)試工具。http:/ Make 根據(jù)目標(biāo)與依賴條件的時間關(guān)系,去執(zhí)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 質(zhì)量認(rèn)證申請表-質(zhì)量認(rèn)證申請材料準(zhǔn)備
- 銀行競聘考試試題及答案
- 音樂上崗考試試題及答案
- 醫(yī)院物流考試試題及答案
- 六一書畫活動方案
- 六一兒童節(jié)文藝活動方案
- 六一咖啡活動策劃方案
- 六一奔馳活動方案
- 六一幼兒集市活動方案
- 六一活動寶樂匯活動方案
- 2022-2023學(xué)年江蘇省無錫市江陰市數(shù)學(xué)四下期末監(jiān)測試題含解析
- 小學(xué)生愛國主義教育校長講話稿7篇
- 口腔頜面外科學(xué) 第十章 顳下頜關(guān)節(jié)疾病
- 建設(shè)文化強(qiáng)國說課 教學(xué)設(shè)計
- 陳巴爾虎旗草原全域旅游發(fā)展總體規(guī)劃
- 壓鑄行業(yè)常用英語專業(yè)詞匯
- 立管高空作業(yè)施工專項(xiàng)安全方案
- GB/T 7778-2017制冷劑編號方法和安全性分類
- GB/T 40393-2021金屬和合金的腐蝕奧氏體不銹鋼晶間腐蝕敏感性加速腐蝕試驗(yàn)方法
- GB/T 31765-2015高密度纖維板
- GB/T 18682-2002物理氣相沉積TiN薄膜技術(shù)條件
評論
0/150
提交評論