嵌入式原理與應(yīng)用_第1頁(yè)
嵌入式原理與應(yīng)用_第2頁(yè)
嵌入式原理與應(yīng)用_第3頁(yè)
嵌入式原理與應(yīng)用_第4頁(yè)
嵌入式原理與應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、嵌入式系統(tǒng)原理與應(yīng)用 朱政康本課程主要內(nèi)容1.Linux系統(tǒng)基礎(chǔ)知識(shí)nLinux系統(tǒng)基本概念、文件及文件系統(tǒng)nLinux常用命令nLinux下的C語(yǔ)言編程基礎(chǔ)2.嵌入式Linux環(huán)境的建立n嵌入式系統(tǒng)基礎(chǔ)知識(shí)n嵌入式Linux開(kāi)發(fā)環(huán)境的搭建n嵌入式開(kāi)發(fā)中常用工具的使用3.嵌入式Linux的應(yīng)用開(kāi)發(fā)n嵌入式Linux的I/O與文件系統(tǒng)的開(kāi)發(fā)n進(jìn)程控制的開(kāi)發(fā)n進(jìn)程間通信開(kāi)發(fā)n多線程開(kāi)發(fā)n(網(wǎng)絡(luò)驅(qū)動(dòng)、設(shè)備驅(qū)動(dòng)、嵌入式圖形界面開(kāi)發(fā))第1章 Linux 快速入門(mén)1.1嵌入式Linux基礎(chǔ)1.1.1 Liunx發(fā)展概述 FSF(Free Software Foundation)GPL(General Pu

2、blic License)1991年Linus Torvalds編寫(xiě)出了與UNIX兼容的Linux操作系統(tǒng)內(nèi)核并在GPL條款下發(fā)布。Linux之后在網(wǎng)上廣泛流傳,許多程序員參與了開(kāi)發(fā)與修改。1992年Linux與其他GNU軟件結(jié)合,完全自由的操作系統(tǒng)正式誕生。該操作系統(tǒng)往往被稱為“GNU/Linux”或簡(jiǎn)稱Linux。 GNU開(kāi)發(fā)工具(gcc gdb make Emacs)1.1.2 Linux作為嵌入式操作系統(tǒng)的優(yōu)勢(shì)n低成本開(kāi)發(fā)系統(tǒng)n可應(yīng)用于多種硬件平臺(tái)n可定制內(nèi)核n性能優(yōu)異n良好的網(wǎng)絡(luò)支持1.1.3 Linux發(fā)行版本Linux目前已有超過(guò)250個(gè)發(fā)行版本Red hat、Debian、Ma

3、ndriva Linux 、ubuntu 、紅旗 Linux 1.1.4 如何學(xué)習(xí)Linux 實(shí)踐1.2 Linux安裝1.2.1 基礎(chǔ)概念 1. 文件系統(tǒng)、分區(qū)和掛載目錄結(jié)構(gòu)分區(qū)掛載目錄結(jié)構(gòu)分區(qū)圖1.1 Liunx下目錄與分區(qū)關(guān)系 圖1.2 Windows下目錄與分區(qū)關(guān)系圖2. 主分區(qū)、擴(kuò)展分區(qū)和邏輯分區(qū)n主分區(qū):包含操作系統(tǒng)啟動(dòng)必需的文件和數(shù)據(jù)的硬盤(pán)分區(qū)(數(shù)量13個(gè))n擴(kuò)展分區(qū):除主分區(qū)外的分區(qū)(01)注意:不能直接使用n邏輯分區(qū):數(shù)量無(wú)限制3. Swap交換分區(qū) 硬盤(pán)上的臨時(shí)內(nèi)存,相當(dāng)于Windows虛擬內(nèi)存4. 分區(qū)格式 支持多種格式5. GRUB 負(fù)責(zé)裝入內(nèi)核并引導(dǎo)Linux系統(tǒng)6.

4、 root權(quán)限1.2.2 硬件要求1.3 Linux文件及文件系統(tǒng)1. 3.1 文件類型及文件屬性1. 文件類型 (1) 普通文件(2)目錄文件 Linux中存儲(chǔ)文件名的唯一地方,每個(gè)文件都被賦予一個(gè)唯一數(shù)值(索引節(jié)點(diǎn)) 存儲(chǔ)在索引節(jié)點(diǎn)表上(Inode Table)。 Linux通過(guò)上下鏈接目錄文件系統(tǒng)來(lái)實(shí)現(xiàn)對(duì)整個(gè)文件系統(tǒng)的操作。 刪除 建立圖1.12 目錄文件與索引節(jié)點(diǎn)關(guān)系 (3) 鏈接文件 類似于Windows中的“快捷方式”(4) 設(shè)備文件 /dev 文件 a:目錄文件名:/etc/a索引號(hào):1.45.x文件 a:目錄文件名:/home/a索引號(hào):1.420.y移至2. 文件屬性圖1.1

5、3 Linux文件屬性表示方法-rwx rwx rwx文件擁有者文件所有組系統(tǒng)其他用戶 可讀 可寫(xiě) 可執(zhí)行1.3.2 文件系統(tǒng)類型介紹1. ext2 和 ext32. Swap文件系統(tǒng)3. vfat文件系統(tǒng)4. NFT文件系統(tǒng)5. ISO9660文件系統(tǒng)1.3.3 Linux目錄結(jié)構(gòu)見(jiàn)圖1.14第2章 Linux 基 礎(chǔ) 命 令2.1 Linux常用操作命令X窗口系統(tǒng):Linux上的一個(gè)軟件(服務(wù))Shell環(huán)境:Linux中的命令行解釋程序 用戶 內(nèi)核 Shell圖2.1 內(nèi)核、Shell和用戶的關(guān)系命令格式說(shuō)明n格式中帶的說(shuō)明為可選項(xiàng),其他為必選項(xiàng)n選項(xiàng)可以多個(gè)連帶寫(xiě)入n選項(xiàng)參數(shù)列表中加粗

6、的含義是:該選項(xiàng)是非常常用的選項(xiàng)命令解釋過(guò)程:作用、格式、常見(jiàn)參數(shù)、使用說(shuō)明2.1.1 用戶系統(tǒng)相關(guān)命令1. 用戶切換(su)2. 用戶管理(useradd 和 passwd)3. 系統(tǒng)管理命令(ps 和 kill)4. 磁盤(pán)相關(guān)命令(fdisk)5. 磁盤(pán)掛載命令(mount)2.1.2 文件目錄相關(guān)命令1. cd:改變工作目錄2. ls:列出文件名3. mkdir:創(chuàng)建目錄 (rmdir:刪除目錄)4. cat:顯示文本文件5: cp: 復(fù)制文件 mv:移動(dòng)文件 rm:刪除文件6. chown:改變文件或目錄的屬主和組 chgrp: 改變文件或目錄所屬的組7. chmod:改變文件或目錄的

7、訪問(wèn)權(quán)限8. grep: 查找字符串9. find: 搜索文件10. locate: 查找文件11. In: 為某一文件在另外一個(gè)位置建立一個(gè)符合鏈接2.1.4 比較合并文件相關(guān)命令(略)2.1.5 網(wǎng)絡(luò)相關(guān)命令(略)第3章 Linux下的C編程基礎(chǔ)3.1 Linux下C語(yǔ)言編程概述3.1.1 C語(yǔ)言簡(jiǎn)單回顧nC語(yǔ)言是“中級(jí)語(yǔ)言”nC語(yǔ)言是結(jié)構(gòu)化的語(yǔ)言nC語(yǔ)言功能齊全nC語(yǔ)言可移植性強(qiáng)3.1.2 Linux下C語(yǔ)言編程環(huán)境概述(1)編輯器 Vi Emacs(2)編譯鏈接器 Gcc(3)調(diào)試器 Gdb(4)項(xiàng)目管理器 make 類似于Windows中Visual C里的“工程”源代碼*.c預(yù)處理

8、器 編譯器匯編處理目標(biāo)代碼*.o鏈接可執(zhí)行文件圖3.1 編譯過(guò)程頭文件*.h引導(dǎo)代碼庫(kù)函數(shù)3.2 進(jìn)入Vi(略)3.3 進(jìn)入Emacs(略)3.4 Gcc編譯器3.4.1 Gcc編譯流程解析預(yù)處理編譯 匯編 鏈接#includeint main() printf (“Hello ! This is our embeded world!n”); return 0; (1)預(yù)處理階段rootlocalhost Gcc# Gcc E hello.c o hello.i(2)編譯階段rootlocalhost Gcc# Gcc S hello.i c hello.s(3)匯編階段rootlocalho

9、st Gcc# Gcc c hello.s c hello.o(4)鏈接階段rootlocalhost Gcc# Gcc hello.o c hello3.4.2 Gcc編譯選項(xiàng)分析n-I dir 在頭文件的搜索路徑列表中添加dir目錄rootlocalhost Gcc# Gcc hello1.c I /root/workspace/Gcc/ o hello1n-L dir 在庫(kù)文件的搜索路徑列表中添加dir目錄rootlocalhost Gcc# Gcc hello_sq.c L /root/workspace/Gcc/lib-lsunq o hello1_sq3.5 Gdb調(diào)試器rootl

10、ocalhost Gdb# Gcc g test.oc o hellorootlocalhost Gdb# Gdb test進(jìn)入了“(gdb)”開(kāi)頭的命令行界面n查看文件 (gdb) ln設(shè)置斷點(diǎn) (gdb) b 行號(hào)n查看斷點(diǎn)情況 (gdb) in (gdb) fo bn查看變量值 (gdb) p 變量n單步運(yùn)行 (gdb) n 或者(gdb) sn恢復(fù)程序運(yùn)行 (gdb) c3.6 Make工程管理器大型程序維護(hù)工具M(jìn)akefile 或 makefile: 告訴make維護(hù)一個(gè)大型程序,該做什么。Makefile說(shuō)明了組成程序的各模塊間的相互關(guān)系及更新模塊時(shí)必須進(jìn)行的動(dòng)作,make按照這些說(shuō)明自動(dòng)地維護(hù)這些模塊。 Netdefs.h 頭文件 Subrs.c network.c 源文件編譯 Subrs.o network.o 目標(biāo)文件連接 Network 可執(zhí)行文件在makefile(Makefile)中,自頂向下說(shuō)明各模塊之間的依賴關(guān)系及實(shí)現(xiàn)方法: network: network.o subrs.o (1) cc o network networ

溫馨提示

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

評(píng)論

0/150

提交評(píng)論