




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第十一章2022/7/16嵌入式系統開發過程選擇芯片繪制原理圖PCB布線制作PCB調試硬件板移植系統軟件編寫應用軟件嵌入式軟件系統結構簡單的嵌入式應用若嵌入式系統的功能需求比較簡單,嵌入式系統軟件只需完成較簡單的監控、驅動和處理功能,則不需要嵌入式操作系統的支持。如基于8051的應用:玩具、家電、汽車等的控制系統復雜的嵌入式應用若嵌入式系統的功能需求比較復雜,需要圖形用戶界面、網絡管理、存儲管理、進程/線程管理或需要支持二次開發等,則通過嵌入式操作系統的幫助,可以加快嵌入式系統軟件的開發進度和可靠性。如基于ARM的應用:手機、 PDA簡單嵌入式系統軟件結構不需要使用操作系統,基于裸機開發系統上
2、電后轉移到main函數入口,首先進行系統初始化,然后進入工作循環直到系統停電或者出現重大錯誤。void main(void) /變量、參數等的定義及說明 X_init( ); /系統初始化,一般為匯編代碼While(1) X( ); /超級循環復雜嵌入式系統軟件的一般結構ARM+M+I/OHAL、底層封裝、部分由OS提供BOOTLOAD復雜嵌入式系統軟件工作流程嵌入式操作系統嵌入式操作系統功能處理器管理存儲管理中斷管理時間管理任務擴展管理文件管理嵌入式實時操作系統RTlinux及其他嵌入式實時LinuxuC/OS IIeCOSVxworks (wind river systems公司)QNX
3、(QNX software systems公司)pSOSOS/9VRTXThreadX嵌入式非實時操作系統 一些嵌入inux系統Windows CE、Embedded windows xp(Microsoft)Palm OS (Palm公司)EPOC (Symbian公司)LINUX嵌入式操作系統Linux是一個類Unix(Unix-like)的、免費的、源代碼開放的、符合POSIX(Portable Operating System Interface Standard)標準規范的操作系統;嚴格來說,Linux指由Linux Torvalds維護的(及通過主要鏡像網站發布的)內核,而整個Li
4、nux系統的其它大部分都建立在GNU軟件之上;嵌入式Linux內核為特殊的硬件配置、或為了支持特別的應用而經過特別的裁剪的修改過的Linux內核;通常具有不同于工作站與服務器的內核配置;嵌入式Linux系統基于Linux內核的嵌入式系統;嵌入式Linux發行套件開發嵌入式Linux系統的平臺;各種為了在嵌入式系統中使用而剪裁過的應用軟件;LINUX內核的發展歷史1991年11月,芬蘭赫爾辛基大學的學生 Linus Torvalds寫了個小程序,取名為Linux,放在互聯網上。他表達了一個愿望,希望借此搞出一個操作系統的“內核”來,這完全是一個偶然事件;1993,在一批高水平黑客的參與下,誕生了
5、Linux 1.0 版 ;1994年,Linux 的第一個商業發行版 Slackware 問世;1996年,美國國家標準技術局的計算機系統實驗室確認 Linux 版本 1.2.13(由 Open Linux 公司打包)符合 POSIX 標準;2001年,Linux2.4版內核發布 ;2003年,Linux2.6版內核發布;Linux內核版本號由3位數字組成r.x.y第1位數字r為主版本號 第2位數字x為說明版本類型的次版本號,如果x為偶數,則表示為產品化版本,為奇數時表示為實驗版本 第3位數字y為修改號,表示錯誤修補的次數 幾種流行的Linux OS發行版本交叉編譯在一種機器上編譯可在另一種機
6、器上運行的程序如:pc機上編譯ARM可執行程序。Arm-linux-gcc輸出支持ARM體系結構的Elf文件引導程序BootLoader是嵌入式系統在加電啟動后執行的第一段代碼,功能類似pc機的BIOS和OS Loader,通常需要固化在目標板中;主要負責CPU、存儲器及相關硬件的初始化,以及將裝載操作系統映像到內存中,然后跳轉到規定的地址啟動操作系統運行。 Bootloader是嚴重依賴硬件而實現的,每一種不同體系結構的處理器都有不同的Bootloader,甚至同一種處理器的外圍硬件配置不同,其Bootloader也有差別。因此開發特定的Bootloader是構建嵌入式linux系統之前的一
7、項必要的基礎工作。Bootloader的開發Stage1(匯編實現)基本硬件設備初始化:CPU時鐘頻率,寄存器,存儲器數據寬度、訪問周期、刷新周期,中斷系統,I/O端口等;為第二階段準備RAM空間;復制第二階段代碼到RAM中;設置堆棧;并跳轉到第二階段入口點;Stage2(C實現)初始化本階段要使用到的硬件設備,實現對板級驅動的支持;檢測系統內存映射;將內核鏡像和根文件系統鏡像從flash讀到RAM中;為內核設置啟動參數;將PC指針指向內核的入口處,調用內核。掛載文件系統;Linux 環境下BootLoader種類BootloaderMonitor描 述x86ARMPowerPCLILO否Li
8、nux磁盤引導程序是否否GRUB否GNU的LILO替代程序是否否Loadlin否從DOS引導Linux是否否ROLO否從ROM引導Linux而不需要BIOS是否否Etherboot否通過以太網卡啟動Linux系統的固件是否否LinuxBIOS否完全替代BUIS的Linux引導程序是否否BLOB否LART等硬件平臺的引導程序否是否U-boot是通用引導程序是是是RedBoot是基于eCos的引導程序是是是u-bootuboot全稱 Universal Boot Loader,支持ARM體系等多種處理器,包含常見的外設的驅動,是一個開源的、功能強大的板極支持包;由德國DENX軟件工程中心的Wolf
9、gang Denk維護。u-boot啟動時處于正常的啟動加載模式,但是它會延時指定時間(單位秒)等待終端用戶按下任意鍵而切換到下載模式,如果在指定時間內用戶沒有按鍵,則繼續啟動操作系統。u-boot主要包括以下目錄:include:U-Boot頭文件,其configs子目錄下是與目標板相關的配置頭文件; board:目標板相關文件,包含SDRAM、Flash驅動等;cpu:與處理器相關文件,如網口、中斷初始化等; lib_xxx:處理器體系相關的文件,如lib_ppc, lib_arm目錄分別包含與PowerPC、ARM體系結構相關的文件;driver: 通用設備驅動,如CFI FLASH驅動
10、;net:與網絡功能相關的文件目錄,如bootp,nfs,tftp; post:上電自檢文件目錄。 doc:U-Boot的說明文檔;examples:可在U-Boot下運行的示例程序;tools 用于創建U-Boot S-RECORD和BIN鏡像文件的工具S3C2440啟動方式韓國三星公司的S3C2440支持Nor Flash和Nand Flash啟動, 可以通過硬件跳線(引腳OM1:0)設置啟動方式。具體含義如下:OM1:0=00時,處理器從NAND Flash啟動OM1:0=01時,處理器從16位寬度的Nor Flash啟動OM1:0=10時,處理器從32位寬度的Nor Flash啟動OM
11、1:0=11時,處理器從Test Mode啟動S3C2440 Nand Flash啟動過程:在系統上電后,Nand Flash控制器會自動的把Nand Flash上的前4K U-BOOT數據搬移到內部SRAM的地址最低端(此SRAM被稱為Steppingstone);CPU從內部RAM的0 x00000000位置開始啟動并在uboot啟動代碼的前4K里完成S3C2440的核心配置,然后把U-BOOT剩余部分搬到RAM中運行; S3C2440 Nand Flash嵌入式Linux系統結構圖 嵌入式Linux具有分層的體系結構,一般可分為3小層及內核空間和用戶空間兩大塊,每一層模塊都屏蔽了其以下各
12、層的具體細節,只對上層提供功能接口或圖形界面。上層模塊不需要知道其以下各層模塊的實現方式,只需要利用下層提供的接口完成相應功能即可。這樣的層次模型大大增加了嵌入式Linux的安全性、穩定性、裁減或增添模塊的便利性。Linux內核的各子系統之間的關系 嵌入式Linux內核一般可以分為4個部分:進程調度管理、內存管理、文件系統和設備驅動程序,它們之間的關系如上圖所示。進程調度處于中心位置,其他所有子系統都依賴于它。在嵌入式系統中,嵌入式Linux的實時性能改造與進程調度有很大的關系,調度策略的算法直接關系到系統的實時性能。嵌入式Linux中的文件系統結構 嵌入式Linux的文件系統建立在塊設備上,
13、不采用驅動器號或驅動器名稱來標識,而是采用了樹形結構,每個獨立文件系統為一個子樹,組成樹形的層次化的結構。當引入新的文件系統時,嵌入式Linux通過掛載方式將其連接到某個目錄,從而使不同的文件系統組合成一個整體成為可能。嵌入式LINUX內核移植如果一個系統是可以在不同的硬件平臺上運行,那么這個系統就是可移植的。Linux內核移植指根據自己的硬件平臺對內核源代碼進行修改,同時對內核進行裁剪,編譯出適合自己硬件平臺的內核鏡像文件。Linux內核源代碼包括多個目錄:(1)arch:包括硬件特定內核代碼,如arm、mips等;(2)drivers:包含硬件驅動代碼;(3)include:通用頭文件及針
14、對不同平臺的特定頭文件;(4)init:內核初始化代碼;(5)ipc:進程間通信代碼;(6)kernel:內核核心代碼;(7)mm:內存管理代碼;(8)net:與網絡協議棧相關的代碼;(9)fs:文件系統相關代碼,如nfs、vfat等;(10)lib:庫文件,與平臺無關的strlen、strcpy等嵌入式LINUX的配置與編譯 對linux內核的裁剪是通過內核配置來實現的,在內核配置過程中可以選擇自己需要的功能,而取消掉自己不需要的功能,這樣可以在滿足自己需要的同時盡可能的縮小內核鏡像的大小,這在嵌入式開發中是至關重要的。 對linux進行配置的方法是:在終端下進入內核源代碼目錄,輸入命令make menuconfig進入內核配置窗口;配置完畢后,在終端命令行下輸入命令make即可在linux內核目錄/arch/*/boot文件夾下生成內核
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025員工終止勞動合同告知書模板
- 2025年上海房屋買賣合同模板
- 《智慧啟航:探索未來》課件
- 中國第二十冶金建設公司綜合學校高中分校高中歷史四導學案:專題一三“康乾盛世”的開創者康熙
- 2025創業投資管理有限公司特許加盟合同書范本
- 現有門面出租合同協議
- 電費結算協議合同模板
- 生豬委托寄養合同協議
- 電廠檢修清包合同協議
- 監控工程拆除合同協議
- 購車金融方案
- 墻面油漆工程的詳細施工工序
- 血液透析水處理系統通用課件
- 知識產權與人工智能
- 人工晶體脫位查房
- 投產申請書完整版本
- 春季過敏性疾病預防
- 煤礦一通三防知識培訓課件
- 電磁波簡介完
- 國家開放大學《廣告學概論》形考任務1-4參考答案
- 焦化廠培訓課件講解
評論
0/150
提交評論