




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、嵌入式應(yīng)用程序設(shè)計嵌入式應(yīng)用程序設(shè)計第第1章章 搭建嵌入式搭建嵌入式linux開發(fā)環(huán)境開發(fā)環(huán)境 第第1章章 搭建嵌入式搭建嵌入式Linux開發(fā)環(huán)境開發(fā)環(huán)境第第2章章 嵌入式文件嵌入式文件I/O編程編程第第3章章 嵌入式嵌入式Linux多任務(wù)編程多任務(wù)編程第第4章章 嵌入式嵌入式Linux進程間通行進程間通行第第5章章 嵌入式嵌入式Linux多線程編程多線程編程第第6章章 嵌入式嵌入式Linux網(wǎng)絡(luò)編程網(wǎng)絡(luò)編程第第7章章 Qt圖形編程圖形編程第第8章章 嵌入式嵌入式Linux設(shè)備驅(qū)動編程設(shè)備驅(qū)動編程第第9章章 Qt聊天項目設(shè)計聊天項目設(shè)計課程安排:課程安排: 1.1 搭建嵌入式Linux交叉開發(fā)
2、環(huán)境1.2 Bootloader1.3 Linux內(nèi)核與移植1.4 嵌入式文件系統(tǒng)的構(gòu)建1.5 小結(jié)1.6 思考與練習本章課程:本章課程: 1.1.1 嵌入式交叉編譯環(huán)境搭建交叉編譯環(huán)境的意義如何搭建嵌入式交叉編譯環(huán)境嵌入式交叉編譯環(huán)境包括哪些內(nèi)容1.1 搭建嵌入式Linux開發(fā)環(huán)境 1.1.2 主機交叉開發(fā)環(huán)境的配置配置控制臺程序Windows操作系統(tǒng)中有超級終端HyperTerminal工具;Linux/Unix操作系統(tǒng)有minicom運用“minicom命令啟動該軟件等工具 1.1 嵌入式系統(tǒng)概述超級終端配置minicom配置 1.1.2 主機交叉開發(fā)環(huán)境的配置配置TFTP服務(wù) tftp
3、是一個傳輸文件的簡單協(xié)議,它基于UDP協(xié)議而實現(xiàn)。此協(xié)議設(shè)計的時候是進行小文件傳輸?shù)?1.1 嵌入式系統(tǒng)概述 1.1.2 主機交叉開發(fā)環(huán)境的配置Linux下TFTP服務(wù)配置 tftp是一個傳輸文件的簡單協(xié)議,它基于UDP協(xié)議而實現(xiàn)。此協(xié)議設(shè)計的時候是進行小文件傳輸?shù)?vim /etc/xinetd.d/tftpservice tftp socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_s
4、ource = 11 cps = 100 2 flags = IPv41.1 嵌入式系統(tǒng)概述 1.1.2 主機交叉開發(fā)環(huán)境的配置啟動TFTP服務(wù)$ /etc/init.d/xinetd start 關(guān)閉TFTP服務(wù) $ /etc/init.d/xinetd stop重啟TFTP服務(wù) $ /etc/init.d/xinetd restart查看TFTP狀態(tài)$ netstat au | grep tftpProto Recv-Q Send-Q Local Address Foreign Address Stateudp 0 0 *:tftp *:*1.1 嵌入式系統(tǒng)概述 1.1.2 主機交叉開發(fā)環(huán)
5、境的配置Windows下TFTP服務(wù)配置在Windows下配置tftp服務(wù)需要安裝使用tftp服務(wù)器軟件,常見的可使用tftpd32,網(wǎng)上有很多下載該軟件的地方,讀者可以自行下載。要注意的是,該軟件是tftp的服務(wù)器端,而目標板上則是tftp的客戶端 1.1 嵌入式系統(tǒng)概述 1.1.2 主機交叉開發(fā)環(huán)境的配置NFS文件系統(tǒng)NFS為Network FileSystem的簡稱,最早是由Sun公司提出發(fā)展起來的,其目的就是讓不同的機器、不同的操作系統(tǒng)之間可以彼此共享文件。1.1 嵌入式系統(tǒng)概述 1.1.2 主機交叉開發(fā)環(huán)境的配置NFS配置配置文件:/etc/exports配置文件每一行格式: 共享的
6、目錄 客戶端主機名稱或IP(參數(shù)1,參數(shù)2)NFS配置文件常用參數(shù):NFS配置文件舉例:cat /etc/exports/home/david/project *(rw,sync,no_root_squash)1.1 嵌入式系統(tǒng)概述 1.1.2 主機交叉開發(fā)環(huán)境的配置NFS服務(wù)啟動設(shè)置NFS服務(wù)在每次系統(tǒng)引導時自動開啟:# /sbin/chkconfig nfs on (在Ubuntu中應(yīng)該輸入 /sbin/chkconfig nfs-kernel-server on) 1.1 嵌入式系統(tǒng)概述 Bootloader是什么? Bootloader是在操作系統(tǒng)運行之前執(zhí)行的一段小程序。通過這段小程
7、序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映像表,從而建立適當?shù)南到y(tǒng)軟硬件環(huán)境,為最終調(diào)用操作系統(tǒng)內(nèi)核做好準備。 1.2 Bootloader 1.2.1 Bootloader的種類 1.2 Bootloader 1.2.2 U-Boot的編譯和使用什么是U-Boot 最早,DENX軟件工程中心的Wolfgang Denk基于8xxrom的源碼創(chuàng)建了PPCBOOT工程,并且不斷添加處理器的支持。后來,Sysgo Gmbh把PPCBOOT移植到ARM平臺上,創(chuàng)建了ARMBOOT工程。然后以PPCBOOT工程和ARMBOOT工程為基礎(chǔ),創(chuàng)建了U-Boot工程。 1.2 Bootloader 1.2
8、.2 U-Boot的編譯和使用U-Boot目錄結(jié)構(gòu) U-Boot目錄可以分為三類:與處理器體系結(jié)構(gòu)或者開發(fā)板硬件直接相關(guān)。一些通用的函數(shù)或驅(qū)動。U-Boot的應(yīng)用程序、工具或者文件。1.2 Bootloader U-Boot目錄結(jié)構(gòu)1.2 Bootloader 1.2.2 U-Boot的編譯和使用 U-Boot的源碼是通過gcc和Makefile組織編譯的。頂層目錄下的Makefile首先可以設(shè)置開發(fā)板的定義,然后遞歸地調(diào)用各級子目錄下的Makefile,最后把編譯過的程序鏈接成U-Boot映像。 頂層目錄下的 Makefile它負責u-boot整體配置編譯。每一種開發(fā)板在Makefile都需
9、要有板子配置的定義。配置u-boot: make smdk2410_config編譯: make1.2 Bootloader 1.2.2 U-Boot的編譯和使用U-Boot生成鏡像文件1.2 Bootloader 1.2.2 U-Boot的編譯和使用U-Boot工具1.2 Bootloader1.2 BootloaderU-Boot命令介紹命令介紹指令分類指令分類傳輸類、設(shè)置類、存儲類、內(nèi)存監(jiān)控類、加載運行傳輸類、設(shè)置類、存儲類、內(nèi)存監(jiān)控類、加載運行類類Printenv 打印環(huán)境變量。打印環(huán)境變量。Uboot printenvbaudrate=115200ipaddr=
10、ethaddr=12:34:56:78:9A:BCserverip=211.2 Bootloadersetenv 設(shè)置新的變量設(shè)置新的變量Uboot setenv myboard AT91RM9200DKUboot printenvbaudrate=115200ipaddr=ethaddr=12:34:56:78:9A:BCserverip=myboard=AT91RM9200DKEnvironment size: 102/8188 bytessaveenv 將當前定義的所有的變量及其值存入將當前定義的所有的變量及其值存入fla
11、sh中。中。221.2 Bootloadertftp 通過網(wǎng)絡(luò)下載程序通過網(wǎng)絡(luò)下載程序Uboot setenv ethaddr 12:34:56:78:9A:BCUboot setenv ipaddr Uboot setenv serverip 54 Uboot tftp 20000000 application.binUboot tftp 30200000 zImageLoadb 通過串口通過串口Kermit協(xié)議下載二進制數(shù)據(jù)。協(xié)議下載二進制數(shù)據(jù)。231.2 Bootloadermd 顯示內(nèi)存區(qū)的內(nèi)容。mm 修改內(nèi)存,地址自動遞增。nm 修改內(nèi)存,
12、地址不自動遞增。mw 填充內(nèi)存。mtest 測試內(nèi)存。cp 拷貝一塊內(nèi)存到另一塊。cmp 比較兩塊內(nèi)存區(qū)。mw 0 x32000000 ff 0 241.2 BootloaderProtect 寫保護操作protect on 1:0-3(就是對第一塊FLASH的0-3扇區(qū)進行保護)protect off 1:0-3取消寫保護erase 擦除扇區(qū)erase: 刪除FLASH的扇區(qū)erase 1:0-2(就是對每一塊FLASH的0-2扇區(qū)進行刪除)251.2 Bootloaderrun 執(zhí)行設(shè)置好的腳本Uboot setenv flashit tftp 200000
13、00 mycode.bin; erase 10020000 1002FFFF;cp.b 20000000 10020000 8000Uboot saveenvUboot run flashitbootcmd 保留的環(huán)境變量如果定義了該變量,在autoboot模式下,將會執(zhí)行該腳本的內(nèi)容。261.2 Bootloadergo 執(zhí)行內(nèi)存中的二進制代碼,一個簡單的跳轉(zhuǎn)到指定地址bootm 執(zhí)行內(nèi)存中的二進制代碼要求二進制代碼為制定格式的。通常為mkimage處理過的二進制文件。啟動Uboot工具制作的壓縮Linux內(nèi)核bootp 通過網(wǎng)絡(luò)啟動,需要提前設(shè)置好硬件地址。 271.2 Bootloade
14、rusb reset 復位(rescan) USB 控制器usb stop f - 停止USB usb tree - 顯示USB 設(shè)備樹usb info dev 顯示可用的USB設(shè)備usb storage - 顯示USB存儲設(shè)備詳細信息usb dev dev - show or set current USB storage deviceusb part dev - print partition table of one or all USB storage devicesusb read addr blk# cnt - read cnt blocks starting at block b
15、lk#to memory address addr281.2 Bootloadernand info: 顯示NAND 設(shè)備nand device dev:顯示或設(shè)置當前設(shè)備nand bad 顯示壞塊nand read.jffs2s addr off sizenand write.jffs2 addr off sizenand erase clean off size nand read.oob addr off sizenand write.oob addr off size291.2 Bootloadernfsnfs 32000000 :aa.txt把192.168.0
16、.2中的NFS文件系統(tǒng)中的aa.txt 讀入內(nèi)存0 x32000000處。301.2 Bootloader1.2.3 U-Boot移植在頂層Makefile中為開發(fā)板添加新的配置選項創(chuàng)建一個新目錄存放開發(fā)板相關(guān)的代碼,并且添加新文件 為開發(fā)板添加新的配置文件 配置開發(fā)板 編譯U-Boot 添加驅(qū)動或者功能選項 調(diào)試U-Boot源代碼,直到U-Boot在開發(fā)板上能夠正常啟動 311.3 Linux內(nèi)核Linux內(nèi)核主要功能進程管理內(nèi)存管理文件管理設(shè)備管理網(wǎng)絡(luò)管理 321.3 Linux內(nèi)核1.3.1 Linux內(nèi)核結(jié)構(gòu)331.3 Linux內(nèi)核1.3.2 Linux配置與編譯編譯內(nèi)核之前要先配置
17、。為了正確、合理地設(shè)置內(nèi)核編譯配置選項,從而只編譯系統(tǒng)需要的功能的代碼,一般主要有下面4個考慮。 尺寸小節(jié)省內(nèi)存減少漏洞動態(tài)加載模塊341.3 Linux內(nèi)核1.3.2 Linux配置與編譯編譯內(nèi)核的步驟:下載內(nèi)核源碼 修改內(nèi)核目錄樹根下的的Makefile,指明交叉編譯器 設(shè)置環(huán)境變量 配置內(nèi)核產(chǎn)生.config文件 輸入內(nèi)核配置命令(make menuconfig),進行內(nèi)核選項的選擇 編譯內(nèi)核下載Linux內(nèi)核 351.4 嵌入式文件系統(tǒng)的構(gòu)建 在嵌入式Linux中,busybox是構(gòu)造文件系統(tǒng)最常用的軟件工具包,它被非常形象地稱為嵌入式Linux系統(tǒng)中的“瑞士軍刀”,因為它將許多常用的Linux命令和工具結(jié)合到了一個單獨的可執(zhí)行程序busybox中。雖然與相應(yīng)的GNU工具比較起來,busybox所提供的功能和參數(shù)略少,但在比較小的系統(tǒng)例如啟動盤或者嵌入式系統(tǒng)中已經(jīng)足夠了 361.4 嵌入式文件系統(tǒng)的構(gòu)建使用busybox構(gòu)建文件根文件系統(tǒng)的步驟下載busybox源碼并進行配置編譯并安裝busybox創(chuàng)建系統(tǒng)必須目錄,完善文件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題開題報告:黨的教育方針貫徹落實成效評價指標與監(jiān)測機制研究
- 課題開題報告:大數(shù)據(jù)賦能下高職學生畫像與高質(zhì)量充分就業(yè)實施路徑研究
- 課題開題報告:創(chuàng)新課堂活動發(fā)展英語學科核心素養(yǎng)實踐研究
- 課題開題報告:產(chǎn)教融合背景下高校土建類專業(yè)共建虛擬仿真實驗教學中心建設(shè)
- 定制家具設(shè)計理念共享協(xié)議
- 中藥現(xiàn)代化創(chuàng)新藥物企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 錸酸鹽企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 棉紡紗加工企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 餐廚廢油高效回收利用裝備企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 圍棋運動用品企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 17J008擋土墻(重力式、衡重式、懸臂式)圖示圖集
- 2025年度國家鐵路局安全技術(shù)中心面向社會公開招聘工作人員5人高頻重點提升(共500題)附帶答案詳解
- 北師大版三年級下冊數(shù)學口算題練習1000道帶答案
- 技術(shù)推廣服務(wù)合同模板五篇
- 《智能制造技術(shù)基礎(chǔ)》課件-第3章 智能制造加工技術(shù)
- 【MOOC】理解馬克思-南京大學 中國大學慕課MOOC答案
- 四川政采評審專家入庫考試基礎(chǔ)題復習測試題
- 挑戰(zhàn)杯-申報書范本
- 超市投標書范文
- 《工程合同管理與招投標實訓》課程電子教案
- 標本溢灑應(yīng)急預案
評論
0/150
提交評論