嵌入式Linux開發(fā)流程_第1頁
嵌入式Linux開發(fā)流程_第2頁
嵌入式Linux開發(fā)流程_第3頁
嵌入式Linux開發(fā)流程_第4頁
嵌入式Linux開發(fā)流程_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、嵌入式Linux開發(fā)流程開發(fā)流程嵌入式Linux開發(fā)流程開發(fā)流程 嵌入式嵌入式Linux開發(fā)概述開發(fā)概述 嵌入式嵌入式Linux軟件開發(fā)的五個階段軟件開發(fā)的五個階段 嵌入式嵌入式Linux開發(fā)流程開發(fā)流程 嵌入式嵌入式Linux開發(fā)工具簡介開發(fā)工具簡介BackGround Debugging Mode(摩托羅拉公司支持的一種摩托羅拉公司支持的一種OCD的調試模式的調試模式)交叉編譯環(huán)境建立交叉編譯環(huán)境建立交叉編譯環(huán)境建立交叉編譯環(huán)境建立嵌入式Linux開發(fā)環(huán)境開發(fā)環(huán)境 交叉開發(fā)環(huán)境(主機目標機的工作方式)目標機的工作方式)嵌入式Linux開發(fā)環(huán)境開發(fā)環(huán)境 Linux下開發(fā)下開發(fā) Windows

2、下開發(fā)下開發(fā)CygwinVmware(虛擬機)(虛擬機)+ Linux其它集成開發(fā)環(huán)境嵌入式Linux軟件組成軟件組成 嵌入式Linux系統(tǒng)軟件由以下部分組成:系統(tǒng)軟件由以下部分組成: 嵌入式Linux啟動裝載器:Boot Loader Boot Loader驅動程序 嵌入式Linux操作系統(tǒng)內核 Linux設備驅動程序 最小支持文件系統(tǒng) 應用程序嵌入式Linux組成組成BootLoader 啟動裝載器完成Linux操作系統(tǒng)內核的啟動加操作系統(tǒng)內核的啟動加載。 系統(tǒng)上電后執(zhí)行,初始化硬件。 提供基本的交互操作界面,如內存查看與修改,設備查詢等功能。 提供下載(讀?。㎜inux內核的功能。 提供

3、從裝載器到Linux內核傳送參數(shù)的功能。 裝載Linux操作系統(tǒng)到內存中,并將控制轉移到 Linux內核起始執(zhí)行處。完成Linux內核的啟動。嵌入式Linux組成組成BootLoader驅動驅動 啟動裝載器驅動程序驅動基本設備,提供獲取內核能力。 啟動裝載器驅動程序只在裝載器環(huán)境中使用,與Linux驅動不同。 一般采用相對較為簡單的方式,如一般可以不必采用中斷方式,而是采用查詢方式。 驅動串行接口,進行控制臺(console)操作。 驅動網(wǎng)口,提供從網(wǎng)絡下載內核的能力。 驅動FLASH,提供從FLASH讀取內核能力。嵌入式Linux組成組成Linux內核內核 嵌入式嵌入式Linux內核(內核(

4、Kernel)是整個嵌入式操作)是整個嵌入式操作系統(tǒng)的核心,它直接管理硬件,并通過系統(tǒng)調系統(tǒng)的核心,它直接管理硬件,并通過系統(tǒng)調用為上層應用提供服務。用為上層應用提供服務。 為適應嵌入式環(huán)境,需對內核進行為適應嵌入式環(huán)境,需對內核進行裁減與配置裁減與配置。 提供支持特定硬件平臺的內核啟動代碼 去除多余功能,減小體積 增加實時功能 添加特殊的系統(tǒng)調用嵌入式Linux組成組成Linux設備驅動設備驅動 Linux硬件驅動提供目標系統(tǒng)硬件在Linux操作系統(tǒng)下的驅動程序,供系統(tǒng)以及之上的應用存取硬件使用。 Linux下的設備劃分為3類:字符設備char(如鍵盤、串口等)、塊設備block(如磁盤等)

5、、網(wǎng)絡設備一般列為單獨的一類設備 由于Linux運行時候劃分內核空間與用戶空間,而驅動程序一般運行在內核空間中。對于運行在用戶空間的應用程序而言,從相應硬件中獲取數(shù)據(jù)需要經(jīng)過一個內核空間到用戶空間拷貝的過程。嵌入式Linux組成組成最小文件系統(tǒng)最小文件系統(tǒng) 嵌入式Linux必須要有文件系統(tǒng)支持才能運行必須要有文件系統(tǒng)支持才能運行 嵌入式系統(tǒng)中一般采用MTD的物理設備作為文的物理設備作為文件系統(tǒng)駐留空間:如RAM、Flash等。等。 文件系統(tǒng)中必須包含的內容 系統(tǒng)init程序; Shell; 應用程序; 應用程序函數(shù)庫。 必須采取措施,減小文件系統(tǒng)的體積,以適應嵌入式應用的需求。嵌入式Linux

6、組成組成應用程序應用程序 應用程序 應用程序完成整個嵌入式系統(tǒng)的對外功能需求與功能接口。 應用程序一般運行在Linux的用戶空間,作為一個用戶進程在運行。 應用程序通過系統(tǒng)調用進入內核,訪問內核提供的服務。存取硬件。 可以有多個應用程序同時運行。 應用程序崩潰一般不會導致系統(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應用開發(fā)過程的時間先應用開發(fā)過程的時間先后可以分為以下后可以分為以下5個開發(fā)階段:個開發(fā)階段: Boot程序(含Boot驅動)開發(fā) Linux內核開發(fā) Linux驅動程序開發(fā) 應用程序開發(fā) Linux目標系統(tǒng)集成 每個開發(fā)階段對應于一個完整嵌入式每個開發(fā)階段對應于一個完整嵌入式Linux系系統(tǒng)的一些組成部分進行的開發(fā)工作統(tǒng)的一些組成部分進行的開發(fā)工作Boot及驅動程序開發(fā)及驅動程序開發(fā)Step1 開發(fā)目標開發(fā)目標 啟動嵌入式目標系統(tǒng),使系統(tǒng)具有加載并啟動Linux內核的能力。 工作重點工作重點 CPU初始化;RAM初始化;串口、網(wǎng)卡、以及

8、FLASH驅動;基本的網(wǎng)絡UDP/IP協(xié)議棧支持。 工作產(chǎn)品工作產(chǎn)品 目標系統(tǒng)的啟動ROM??梢詥幽繕讼到y(tǒng) 的Boot Loader。Linux內核開發(fā)內核開發(fā)Step2 開發(fā)目標開發(fā)目標 獲得一個滿足目標系統(tǒng)功能與性能需求,可以啟動的Linux內核。 工作重點工作重點 啟動最小系統(tǒng)(內核配置和生成)開發(fā)、 外圍設備驅動的開發(fā)。 工作產(chǎn)品工作產(chǎn)品 可以啟動系統(tǒng)的Linux內核(bzImage、 pImage等)Linux設備驅動程序開發(fā)設備驅動程序開發(fā)Step3 開發(fā)目標開發(fā)目標 驅動目標系統(tǒng)上的相關設備,為上層應用提供存取硬件的能力。 工作重點工作重點 關注設備身的特性,采用合適的驅動方式

9、。 工作產(chǎn)品工作產(chǎn)品 可以是內核的一部分,也可以是模塊化的驅動程序(內核可裝載模塊)的目標文件(*.o)。Linux應用程序開發(fā)應用程序開發(fā)Step4 開發(fā)目標開發(fā)目標 實現(xiàn)單板需要實現(xiàn)的產(chǎn)品功能與接口。提供相應的單板服務與響應。 工作重點工作重點 關注應用本身。如果在封裝過的操作系統(tǒng)平臺上開發(fā),需要關注所封裝的接口。 工作產(chǎn)品工作產(chǎn)品 可以執(zhí)行的應用程序,一般為ELF格式,采用動態(tài)或者靜態(tài)連接,可以在目標系統(tǒng)上運行。Linux目標系統(tǒng)集成目標系統(tǒng)集成Step5 開發(fā)目標開發(fā)目標 提供產(chǎn)品化的嵌入式Linux系統(tǒng)。 工作重點工作重點 關注系統(tǒng)占用的存儲空間,文件系統(tǒng)選擇。系統(tǒng)啟動腳本。 工作產(chǎn)

10、品工作產(chǎn)品 無需開發(fā)主機配合就可以獨立運行的產(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)的裁剪 對應于PC機上的軟件開發(fā),這應該屬于系統(tǒng)設計,針對嵌入式系統(tǒng)的硬件環(huán)境,必須對操作系統(tǒng)進行裁剪設計,一方面卸載和刪除無用的模塊,修改和簡化需要的模塊;另一方面增加板極支持包的支持,相對嵌入式硬件系統(tǒng),完善相對應的操作

11、系統(tǒng),使得系統(tǒng)最為緊湊、小巧。Linux開發(fā)流程開發(fā)流程-嵌入式操作系統(tǒng)內核的配置和編譯嵌入式操作系統(tǒng)內核的配置和編譯2 嵌入式操作系統(tǒng)內核的配置和編譯嵌入式操作系統(tǒng)內核的配置和編譯 當系統(tǒng)設計確定后,就可以具體對操作系統(tǒng)的內核進行合理配置和編譯,形成新的應用于嵌入式硬件系統(tǒng)的定制的內核,最后一般形成內核影象文件,下載到系統(tǒng)的FLASH中,完成內核的“量身定做”。Linux開發(fā)流程開發(fā)流程-文件系統(tǒng)的建立文件系統(tǒng)的建立3 文件系統(tǒng)的建立文件系統(tǒng)的建立 對于操作系統(tǒng),內核裁剪完成后,接著對文件系統(tǒng)進行裁剪,由于每一種操作系統(tǒng)都支持很多文件系統(tǒng),對于嵌入式操作系統(tǒng)的文件系統(tǒng)裁剪,和內核一樣,針對板

12、子上的并口FLASH、串口FLASH,各種存儲卡、U盤等等,構造和裁剪出相應的文件系統(tǒng),完成文件系統(tǒng)的建立。Linux開發(fā)流程開發(fā)流程-用戶程序的編寫和簡單的仿真調試用戶程序的編寫和簡單的仿真調試4 用戶程序的編寫和簡單的仿真調試用戶程序的編寫和簡單的仿真調試 建立交叉編譯的開發(fā)環(huán)境,開發(fā)用戶的應用程序,并且盡可能采用一些開發(fā)工具,如vi等,把一些模塊下載到目標板上,進行測試。Linux開發(fā)流程開發(fā)流程-整體系統(tǒng)的目標板仿真調試整體系統(tǒng)的目標板仿真調試5 整體系統(tǒng)的目標板仿真調試整體系統(tǒng)的目標板仿真調試 應用程序開發(fā)完后,和文件系統(tǒng)一起,形成文件系統(tǒng)的映像文件,然后通過仿真工具(仿真機、調試串

13、口等)和host-target開發(fā)環(huán)境,對系統(tǒng)進行仿真和調試Linux開發(fā)流程開發(fā)流程-系統(tǒng)下載和脫機運行系統(tǒng)下載和脫機運行6 系統(tǒng)下載和脫機運行系統(tǒng)下載和脫機運行 當仿真完成,確定系統(tǒng)功能開發(fā)達到目標后,把最終形成的影象文件,內核影象文件和文件系統(tǒng)影象通過開發(fā)系統(tǒng)的下載工具進行下載,然后測試。嵌入式Linux開發(fā)流程開發(fā)流程 嵌入式嵌入式Linux開發(fā)概述開發(fā)概述 嵌入式嵌入式Linux軟件開發(fā)的五個階段軟件開發(fā)的五個階段 嵌入式嵌入式Linux開發(fā)流程開發(fā)流程 嵌入式嵌入式Linux開發(fā)工具簡介開發(fā)工具簡介GNU基礎工具鏈基礎工具鏈 Binutils binutils是二進制工具,它是一套處理二進制文件的工具的集合,需要使用它進行可執(zhí)行文件的生成等工作。 GCC GCC是GNU C語言編譯器,使用它來進行Linux內核、庫文件、以及應用程序的編譯。 Glibc Glibc是GNU的C語言函數(shù)庫,使用它提供C語言庫函數(shù)的支持。 Gdb Gdb是GNU Debuger,是Linux平臺上的標準調試工具。http:/ Make 根據(jù)目標與依賴條件的時間關系,去執(zhí)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論