![嵌入式Linux編程入門與開發(fā)實例PPT學習教案_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/31/9b751708-c062-4018-8e65-19a870abebd1/9b751708-c062-4018-8e65-19a870abebd11.gif)
![嵌入式Linux編程入門與開發(fā)實例PPT學習教案_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/31/9b751708-c062-4018-8e65-19a870abebd1/9b751708-c062-4018-8e65-19a870abebd12.gif)
![嵌入式Linux編程入門與開發(fā)實例PPT學習教案_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/31/9b751708-c062-4018-8e65-19a870abebd1/9b751708-c062-4018-8e65-19a870abebd13.gif)
![嵌入式Linux編程入門與開發(fā)實例PPT學習教案_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/31/9b751708-c062-4018-8e65-19a870abebd1/9b751708-c062-4018-8e65-19a870abebd14.gif)
![嵌入式Linux編程入門與開發(fā)實例PPT學習教案_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/31/9b751708-c062-4018-8e65-19a870abebd1/9b751708-c062-4018-8e65-19a870abebd15.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、會計學1 嵌入式嵌入式Linux編程入門與開發(fā)實例編程入門與開發(fā)實例 嵌入式系統(tǒng)開發(fā)環(huán)境的構建嵌入式系統(tǒng)開發(fā)環(huán)境的構建 3.1 U-bootU-boot的移植的移植 3. 2 嵌入式Linux操作系統(tǒng)內核編譯 3.3 習題與練習習題與練習 3. 4 第1頁/共77頁 第2頁/共77頁 第3頁/共77頁 第4頁/共77頁 第5頁/共77頁 第6頁/共77頁 第7頁/共77頁 第8頁/共77頁 GCC :工具是編譯程序的最為主要的工具。工具是編譯程序的最為主要的工具。 GCC包括以下幾個主要的工具:包括以下幾個主要的工具: Cpp:C預處理器。預處理器。 g+:C+編譯器。編譯器。 gcc:C編譯
2、器。編譯器。 gccbug:創(chuàng)建:創(chuàng)建bug報告的報告的Shell腳本。腳本。 gcov:分析在程序中哪里做優(yōu)化效果好。:分析在程序中哪里做優(yōu)化效果好。 第9頁/共77頁 第10頁/共77頁 Glibe:是提供系統(tǒng)調用和基本函數的是提供系統(tǒng)調用和基本函數的 C 庫,庫, 比如比如open(), malloc(), printf()等等。所有動態(tài)連等等。所有動態(tài)連 接的程序都要用到它接的程序都要用到它 。 第11頁/共77頁 第12頁/共77頁 第13頁/共77頁 第14頁/共77頁 第15頁/共77頁 第16頁/共77頁 第17頁/共77頁 第18頁/共77頁 第19頁/共77頁 Bootlo
3、ader 就是在操作系統(tǒng)內核運行之前就是在操作系統(tǒng)內核運行之前 運行的一段小程序。通過這段小程序,可以初始運行的一段小程序。通過這段小程序,可以初始 化硬件設備、建立內存空間的映射圖,從而將系化硬件設備、建立內存空間的映射圖,從而將系 統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最 終調用操作系統(tǒng)內核準備好正確的環(huán)境。終調用操作系統(tǒng)內核準備好正確的環(huán)境。 第20頁/共77頁 針對針對ARM處理器,常見的處理器,常見的Bootloader有有U-Boot、 RedBoot、ARMBoot等:等: lU-Boot :它是它是sourceforge上的一個開放源
4、代碼的項上的一個開放源代碼的項 目,可對目,可對PowerPC、ARM、MIPS、x86等處理器提供等處理器提供 支持,它支持的嵌入式操作系統(tǒng)有支持,它支持的嵌入式操作系統(tǒng)有Linux、VxWorks、 NetBSD、QNX、RTEMS等,是目前支持最廣泛、使等,是目前支持最廣泛、使 用最多的用最多的Bootloader。 3.2.1 Bootloader概述概述 第21頁/共77頁 lRedBoot : RedBoot是是Redhat公司隨公司隨eCos ( Embedded Configurable Operating System)發(fā)布的一)發(fā)布的一 個個Boot方案,是一個開源項目。方
5、案,是一個開源項目。 lARMBoot:是是sourceforge上的一個開放源代碼的上的一個開放源代碼的 項目,它最初的設計只是針對項目,它最初的設計只是針對ARM處理器體系結構,處理器體系結構, 所以它可以很容易地被移植到各種以所以它可以很容易地被移植到各種以ARM為核心的平為核心的平 臺上。臺上。 第22頁/共77頁 圖3-1 固態(tài)存儲設備的典型空間分配結構 第23頁/共77頁 3.2.2 Bootloader的啟動流程的啟動流程 第24頁/共77頁 第25頁/共77頁 第26頁/共77頁 第27頁/共77頁 第28頁/共77頁 第29頁/共77頁 圖3-2 Bootloader 的 s
6、tage2 可執(zhí)行映象剛被拷貝到 RAM 空間時 的系統(tǒng)內存布局 第30頁/共77頁 第31頁/共77頁 第32頁/共77頁 第33頁/共77頁 首先規(guī)劃內存占用的布局,這里包括兩個方首先規(guī)劃內存占用的布局,這里包括兩個方 面:內核映像所占用的內存范圍;根文件系統(tǒng)所面:內核映像所占用的內存范圍;根文件系統(tǒng)所 占用的內存范圍。在規(guī)劃內存占用的布局時,主占用的內存范圍。在規(guī)劃內存占用的布局時,主 要考慮基地址和映像的大小兩個方面。要考慮基地址和映像的大小兩個方面。 對于內核映像,一般將其拷貝到從基地址開對于內核映像,一般將其拷貝到從基地址開 始的大約始的大約1MB大小的內存范圍內。大小的內存范圍內
7、。 第34頁/共77頁 在將內核映像和根文件系統(tǒng)映像拷貝到在將內核映像和根文件系統(tǒng)映像拷貝到RAM 空間中后,就可以準備啟動空間中后,就可以準備啟動 Linux 內核了。但是內核了。但是 在調用內核之前,應該作一步準備工作,即設置在調用內核之前,應該作一步準備工作,即設置 Linux 內核的啟動參數。內核的啟動參數。 第35頁/共77頁 Bootloader 調用調用 Linux 內核的方法是直接跳內核的方法是直接跳 轉到內核的第一條指令處,也即直接跳轉到轉到內核的第一條指令處,也即直接跳轉到 MEM_START0 x8000 地址處。在跳轉時,下列地址處。在跳轉時,下列 條件要滿足:條件要滿
8、足: 第36頁/共77頁 第37頁/共77頁 Bootloader的系統(tǒng)啟動方案流程如圖3-3所示。 圖3-3 Bootloader系統(tǒng)啟動方案流圖 第38頁/共77頁 3.2.3 U-Boot 分析與移植分析與移植 第39頁/共77頁 。 第40頁/共77頁 第41頁/共77頁 第42頁/共77頁 第43頁/共77頁 第44頁/共77頁 目 錄 特 性解 釋 說 明 board平臺依賴 存放電路板相關的目錄文件,例如:RPXlite( mpc8xx)、smdk2410(arm920t)、sc520_cdp( x86) 等目錄 cpu平臺依賴 存放CPU相關的目錄文件,例如:mpc8xx、 p
9、pc4xx、arm720t、arm920t、 xscale、i386等目錄 lib_ppc平臺依賴 存放對PowerPC體系結構通用的文件,主要用于 實現(xiàn)PowerPC平臺通用的函數 lib_arm平臺依賴 存放對ARM體系結構通用的文件,主要用于實現(xiàn) ARM平臺通用的函數 lib_i386平臺依賴 存放對X86體系結構通用的文件,主要用于實現(xiàn) X86平臺通用的函數 include通用 頭文件和開發(fā)板配置文件,所有開發(fā)板的配置文 件都在configs目錄下 common通用通用的多功能函數實現(xiàn) 表3-1 U-Boot頂層目錄說明 第45頁/共77頁 lib_generic通用通用庫函數的實現(xiàn)
10、Net通用存放網絡的程序 Fs通用存放文件系統(tǒng)的程序 Post通用存放上電自檢程序 drivers通用 通用的設備驅動程序,主要有以太網接口的驅 動 Disk通用硬盤接口程序 第46頁/共77頁 Rtc通用RTC的驅動程序 Dtt通用數字溫度測量器或者傳感器的驅動 examples應用例程 一些獨立運行的應用程序的例子,例如 helloworld tools工具 存放制作S-Record 或者 U-Boot格式的映像等 工具,例如mkimage Doc文檔開發(fā)使用文檔 第47頁/共77頁 第48頁/共77頁 表3-2 U-Boot編譯生成的映像文件 文件名稱說明 System.mapU-Boo
11、t映像的符號表 u-bootU-Boot映像的ELF格式 u-boot.binU-Boot映像原始的二進制格式 u-boot.srecU-Boot映像的S-Record格式 第49頁/共77頁 第50頁/共77頁 第51頁/共77頁 3.2.4 VIVI 分析 第52頁/共77頁 表3-3 VIVI的命令 命令 功能 Load 把二進制文件載入Flash或 RAM Part操作MTD分區(qū)信息 Param設置參數 Boot啟動系統(tǒng) Flash管理Flash 第53頁/共77頁 配置VIVI使用的命令如下: make distclean; make menuconfig; 編 譯 之 前 , 要
12、先 指 定 M a k e f i l e 文 件 中 的 LINUX_INCLUDE_DIR、CROSS_COMPILE和 ARM_GCC_LIBS。配置并保存后,使用make命令開始 編譯VIVI。 第54頁/共77頁 第55頁/共77頁 第56頁/共77頁 Linux內核是指內核是指Linux源代碼經過編譯和鏈接生源代碼經過編譯和鏈接生 成的映像文件(成的映像文件(Image)。通常編譯嵌入式)。通常編譯嵌入式 Linux內核都是通過不同的內核都是通過不同的make命令來實現(xiàn)的命令來實現(xiàn)的, 它的執(zhí)行配置文件就是通常所說的它的執(zhí)行配置文件就是通常所說的Makefile,而而 不同的不同的
13、Makefile又通過互相的依賴關系構成一又通過互相的依賴關系構成一 個統(tǒng)一的整體去完成建立依存關系、建立內核個統(tǒng)一的整體去完成建立依存關系、建立內核 等功能。等功能。 第57頁/共77頁 3.3.1 Linux內核結構內核結構 1、進程調度(、進程調度(SCHED) 控制進程對控制進程對CPU的訪問。當需要選擇下一個進程的訪問。當需要選擇下一個進程 運行時,由調度程序選擇最值得運行的進程。可運行運行時,由調度程序選擇最值得運行的進程??蛇\行 進程實際上是僅等待進程實際上是僅等待CPU資源的進程,如果某個進程資源的進程,如果某個進程 在等待其它資源,則該進程是不可運行進程。在等待其它資源,則該
14、進程是不可運行進程。Linux使使 用了比較簡單的基于優(yōu)先級的進程調度算法選擇新的用了比較簡單的基于優(yōu)先級的進程調度算法選擇新的 進程。進程。 第58頁/共77頁 2、內存管理(、內存管理(MM) 允許多個進程安全的共享主內存區(qū)域。允許多個進程安全的共享主內存區(qū)域。 Linux的內存管理支持虛擬內存,即在計算機的內存管理支持虛擬內存,即在計算機 中運行的程序,其代碼,數據,堆棧的總量可中運行的程序,其代碼,數據,堆棧的總量可 以超過實際內存的大小,操作系統(tǒng)只是把當前以超過實際內存的大小,操作系統(tǒng)只是把當前 使用的程序塊保留在內存中,其余的程序塊則使用的程序塊保留在內存中,其余的程序塊則 保留在
15、磁盤中。必要時,操作系統(tǒng)負責在磁盤保留在磁盤中。必要時,操作系統(tǒng)負責在磁盤 和內存間交換程序塊。內存管理從邏輯上分為和內存間交換程序塊。內存管理從邏輯上分為 硬件無關部分和硬件有關部分。硬件無關部分硬件無關部分和硬件有關部分。硬件無關部分 提供了進程的映射和邏輯內存的對換;硬件相提供了進程的映射和邏輯內存的對換;硬件相 關的部分為內存管理硬件提供了虛擬接口。關的部分為內存管理硬件提供了虛擬接口。 第59頁/共77頁 3、虛擬文件系統(tǒng)(、虛擬文件系統(tǒng)(VirtualFileSystem,VFS) 隱藏了各種硬件的具體細節(jié),為所有的設隱藏了各種硬件的具體細節(jié),為所有的設 備提供了統(tǒng)一的接口,備提供
16、了統(tǒng)一的接口,VFS提供了多達數十種提供了多達數十種 不同的文件系統(tǒng)。虛擬文件系統(tǒng)可以分為邏輯不同的文件系統(tǒng)。虛擬文件系統(tǒng)可以分為邏輯 文件系統(tǒng)和設備驅動程序。邏輯文件系統(tǒng)指文件系統(tǒng)和設備驅動程序。邏輯文件系統(tǒng)指 Linux所支持的文件系統(tǒng),如所支持的文件系統(tǒng),如ext2,fat等,設備等,設備 驅動程序指為每一種硬件控制器所編寫的設備驅動程序指為每一種硬件控制器所編寫的設備 驅動程序模塊。驅動程序模塊。 第60頁/共77頁 4、網絡接口(、網絡接口(NET) 提供了對各種網絡標準的存取和各種網絡提供了對各種網絡標準的存取和各種網絡 硬件的支持。網絡接口可分為網絡協(xié)議和網絡硬件的支持。網絡接口可分為網絡協(xié)議和網絡 驅動程序。網絡協(xié)議部分負責實現(xiàn)每一種可能驅動程序。網絡協(xié)議部分負責實現(xiàn)每一種可能 的網絡傳輸協(xié)議。網絡設備驅動程序負責與硬的網絡傳輸協(xié)議。網絡設備驅動程序負責與硬 件設備通訊,每一種可能的硬件設備都有相應件設備通訊,每一種可能的硬件設備都有相應
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 知識管理提升企業(yè)核心競爭力的關鍵
- 外研版高中英語選擇性必修第四冊UNIT5 Period2課件
- 外研版高中英語選擇性必修第四冊UNIT2 Period4課件
- Module 1 Unit 2 Theyre near the window綜合練習 教科版(含答案)
- 護師聘任申請書
- 2024-2030年中國墨旱蓮行業(yè)市場深度分析及投資策略研究報告
- 2025-2030年中國手工型玻璃噴砂保護膜項目投資可行性研究分析報告
- 高中生補助申請書
- 現(xiàn)代辦公空間的環(huán)境藝術設計案例分享
- 知識產權在企業(yè)辦公文化中的角色
- 一年級語文教材解讀分析ppt
- 萬人計劃藍色簡約萬人計劃青年拔尖人才答辯PPT模板
- 統(tǒng)編高中《思想政治》教材編寫理念和內容介紹
- 高質量SCI論文入門必備從選題到發(fā)表全套課件
- 民政局離婚協(xié)議書模板(8篇)
- 2022年普通高等學校招生全國統(tǒng)一考試數學試卷 新高考Ⅰ卷(含解析)
- (完整版)中心醫(yī)院心血管學科的??平ㄔO與發(fā)展規(guī)劃
- 勞動合同法草案的立法背景與創(chuàng)新黎建飛中國人民大學法學院教授
- 第三章 檢測儀表與傳感器
- 服裝QC尾期查貨報告(中英雙語)
- 電機學辜承林(第三版)第1章
評論
0/150
提交評論