課程設(shè)計(jì)上課筆記_第1頁
課程設(shè)計(jì)上課筆記_第2頁
課程設(shè)計(jì)上課筆記_第3頁
課程設(shè)計(jì)上課筆記_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余28頁可下載查看

下載本文檔

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

文檔簡介

1、課程設(shè)計(jì)基于 Linux 系統(tǒng)的 ARM 項(xiàng)目開發(fā)兩天上午 8: 30 - 12:00 下午 13:30 - 18:00匯編語言、微機(jī)原理及接口技術(shù)課程設(shè)計(jì)的主要知識(shí):1. 嵌入式及 ARM 的簡單介紹2. 操作系統(tǒng)原理及具體管理 (Linux)3. Linux 下的 C 程序開發(fā)(編譯工具、反向工程、編譯流程及原理等)4. Linux 下的系統(tǒng)開發(fā)(系統(tǒng)功能調(diào)用)5. ARM 移植與開發(fā)計(jì)算機(jī)科學(xué)與技術(shù)研究的兩大領(lǐng)域1. 通用計(jì)算機(jī)系統(tǒng)2. 嵌入式計(jì)算機(jī)系統(tǒng)數(shù)字電路技術(shù)微機(jī)原理與接口技術(shù)計(jì)算機(jī)體系結(jié)構(gòu)單片機(jī) ARM后PC時(shí)代移動(dòng)互聯(lián)網(wǎng)物聯(lián)網(wǎng)應(yīng)用開發(fā)方向AndroidIOSWindow Pho

2、neJavaC+ .NET系統(tǒng)開發(fā)方向系統(tǒng)構(gòu)建(在硬件系統(tǒng)之上構(gòu)建一個(gè)符合要求的操作系統(tǒng))驅(qū)動(dòng)傳感器及設(shè)備(微機(jī)原理與接口)CC+1. 嵌入式及 ARM 的簡單介紹A. S3C6400 S3C2400 Samsung ARMB. RISC 精簡指令集架構(gòu)Reduced Instructions Set ComputerCISC復(fù)雜指令集架構(gòu)Complex Instructions Set Computer頻繁使用的指令集只占整體的20%不頻繁使用的指令集占到了整體80%砍掉不常用的 80% 的指令集用其它 20% 的常用指令集,通過算法來模擬實(shí)現(xiàn),就是精簡指令集精簡指令集的兩大特點(diǎn):省電、穩(wěn)定

3、性高C. 嵌入式系統(tǒng)的概念“專用” “形態(tài)不同”“對(duì)其它系統(tǒng)進(jìn)行智能控制” “應(yīng)用為中心” “以計(jì)算機(jī)技術(shù)為基礎(chǔ)” “軟硬件可剪裁”D. 嵌入式與 PC 機(jī)的區(qū)別a. 嵌入式處理器 (RISC):ARM PowerPC MIPS LongSun Alphab. x86 處理器 (CISC):酷睿 Pentium AMD VIA c. Intel40044bit80088bit808616bit802868038632bit804868058632bitPentium 酷睿64bitEAXEBXECXEDXd.系統(tǒng)的引導(dǎo)代碼不同PC 用的 BIOSBasic Input/Output Syste

4、m POST 加電自檢Power On Self Testing嵌入式用的 Bootloadere. 操作系統(tǒng)不一樣嵌入式: Linux、Android、IOS 、 Windows CE、uCOS、VxWorks、Windows Embedded通用: Windows、Linux、UnixE.嵌入式需要學(xué)習(xí)哪些課程? Linux 操作系統(tǒng) Embedded C Linux 系統(tǒng)高級(jí)開發(fā)API (應(yīng)用程序編程接口) ARM 電路與原理 ARM 匯編與編程系統(tǒng)的構(gòu)建與移植系統(tǒng)剪裁啟動(dòng)代碼 bootloader驅(qū)動(dòng)程序開發(fā) Embedded C+面向?qū)ο?Qt 平臺(tái)圖形編程 SQLite 數(shù)據(jù)庫系統(tǒng)

5、開發(fā)2. 操作系統(tǒng)原理及具體管理 (Linux) A. VMware Workstation 的安裝Typical 推薦安裝 Custom 自定義安裝changeB. Linux 系統(tǒng)簡介Unix 的發(fā)展史Linux 系統(tǒng)的眾多版本免費(fèi) 藍(lán)帽Ubuntu 烏斑圖CentOSSUSE Linux中標(biāo)公司Kylin 麒麟200 多種 LinuxC. Linux 系統(tǒng)的特點(diǎn)(1). 開源GNUGPL(2). 多用戶 :真正的多用戶多任務(wù)操作系統(tǒng)(3). 良好的用戶界面:a.UI 用戶界面 :GUI Graphics User Interface CLI Command Line Interfaceb

6、.API應(yīng)用程序編程接口Applications Programming我們提供給大家的 Fedora 采用是 Gnome 圖形用戶界面Linux 內(nèi)核+ Gnome(4).可靠的安全性對(duì)用戶做了嚴(yán)格的權(quán)限限制系統(tǒng)分為超級(jí)管理員root 和 普通用戶微內(nèi)核結(jié)構(gòu),不會(huì)因?yàn)槠渌δ艿谋罎⒃斐烧麄€(gè)系統(tǒng)的崩潰(5). 良好的可移植性Linux 絕大部分是C 開發(fā)的AlphaMIPSPA-RISCARMx86PowerPC495臺(tái)2臺(tái)(6). 豐富的網(wǎng)絡(luò)功能TCP/IPWeb ServerDNS ServerMail ServerDocuments ServerFirewallBBS Server(7)

7、. 設(shè)備獨(dú)立性Linux 系統(tǒng)把設(shè)備當(dāng)文件來處理靈活對(duì) Linux 進(jìn)行剪裁移植到不同的系統(tǒng)設(shè)備中D. 虛擬機(jī)的一些概念Guest OSHost OSE. Linux 的系統(tǒng)結(jié)構(gòu)Linux 系統(tǒng)的三大核心組件:a. Kernel 內(nèi)核(大腦中樞神經(jīng))處理機(jī)管理存儲(chǔ)管理設(shè)備管理文件管理進(jìn)程(任務(wù))管理對(duì)計(jì)算機(jī)系統(tǒng)資源的協(xié)調(diào)、管理、配置都必須通過 kernel 來進(jìn)行。b. Shell 人與內(nèi)核交互的界面翻譯官 和 解釋器Shell 負(fù)責(zé)解釋命令, 調(diào)用內(nèi)核的相關(guān)功能,并顯示結(jié)果Fedora 系統(tǒng)中所使用shell 的版本叫做 bashbourne-again shellc. File Syste

8、m操作系統(tǒng)以文件 (file)為單位存儲(chǔ)、調(diào)用、傳遞數(shù)據(jù)。數(shù)據(jù)都以文件為一個(gè)單位保存在存儲(chǔ)設(shè)備中。文件 (file)目錄 (directory)文件系統(tǒng)構(gòu)成了一個(gè)倒樹狀的層次結(jié)構(gòu)。F. 路徑Pathname (參照系)絕對(duì)路徑: 以 / 開頭相對(duì)路徑:不以/ 開頭Linux 系統(tǒng)有且只有一個(gè)根目錄,/rootG. Linux 系統(tǒng)下的一些重要目錄/bin系統(tǒng)命令所在目錄/usr系統(tǒng)程序及函數(shù)庫/home普通用戶的主目錄/etc系統(tǒng)配置文件/dev系統(tǒng)設(shè)備文件/rootroot 用戶的主目錄/boot系統(tǒng)啟動(dòng)目錄H. Shell 環(huán)境的命令提示符:用戶名 機(jī)器名 目錄名 $ 普通用戶末尾是 $超

9、級(jí)用戶末尾是#I. Linux 的基本命令:(1) ls list 列出指定目錄下的內(nèi)容選項(xiàng) :-l以詳細(xì)列表的方式顯示內(nèi)容e.g.:ls-l/boot(2)pwdprint working directory(告訴你在哪兒 )顯示當(dāng)前所在目錄的絕對(duì)路徑(3)cdchange directory改變當(dāng)前所在目錄,進(jìn)入指定目錄e.g.:cd/home(4)mkdirmake directory創(chuàng)建一個(gè)空目錄選項(xiàng):e.g.:e.g.:(5)rmdir-p級(jí)聯(lián)創(chuàng)建多層新的空目錄mkdir-plinux/c/textmkdirnewdirremove directory 刪除一個(gè)空目錄注意: 不能刪除

10、非空目錄e.g.:rmdirnewdir(6)file顯示指定文件的類型信息e.g.:file newdir目錄是一個(gè)特殊的文件:directory文本文件:emptyASCII text(7)touch創(chuàng)建一個(gè)空文件e.g.:touchhello.c(8)cpcopy復(fù)制一個(gè)文件,生成一個(gè)新的文件 , 內(nèi)容相同選項(xiàng): -r recursive 復(fù)制整個(gè)目錄的全部內(nèi)容e.g.:cpoldFilenewFile復(fù)制文件cp-roldDirnewDir復(fù)制目錄(9)rmremove刪除指定文件和非空目錄注: rm 可以用來刪除非空目錄選項(xiàng): -r刪除目錄-f強(qiáng)制刪除e.g.:rmoldFile刪除

11、文件rm-rfoldDir 刪除非空目錄全部內(nèi)容(10) mvmove移動(dòng) 、 剪切a.移動(dòng)文件或者目錄到另一個(gè)位置b.對(duì)已經(jīng)存在的文件或目錄改變名稱e.g:mvoldFilenewFile改名mvoldFile/home/weixin/linux 移動(dòng)(11) cat 顯示文件的內(nèi)容到屏幕上e.g.:cathello.c顯示文件(12) gedit 調(diào)用 gedit文本編輯器編輯內(nèi)容 e.g.: gedit hello.c(13) rpm安裝 rpm 包Redhat 系列操作系統(tǒng)的軟件包大都是rpm 包e.g.:rpm-ivhqq2013.rpm安裝 QQ要執(zhí)行 rpm 包的安裝,必須具備

12、root 權(quán)限 root 的密碼是 123456在 Linux 系統(tǒng)中輸入密碼時(shí)不顯示*e.g.:rpm-elinuxqq刪除已經(jīng)安裝的e 是 eraseVmware 虛擬機(jī)可以設(shè)置共享文件夾共享文件夾默認(rèn)掛載在/mnt/hgfs 目錄下當(dāng)設(shè)置好共享目錄后,就可以去/mnt/hgfs下訪問共享的那些文件QQmnt 的縮寫是mount ,本身就是掛載的意思別的文件系統(tǒng)被掛載到/mnt/hgfs 下File SystemWindows :FATFAT32NTFSLinux :Ext3Ext4Linux 系統(tǒng)是大小寫區(qū)分的系統(tǒng)(14) suswitch usere.g.:suroot切換用戶賬戶的命

13、令輸入密碼時(shí)不顯示* 號(hào),請(qǐng)繼續(xù)輸入(15) tar 壓縮和解壓縮命令在 Linux 系統(tǒng)中,有很多的壓縮包格式tar.gz 是比較常見的壓縮包選項(xiàng) :-zxvf用于解壓縮e.g.:tar-zxvf在當(dāng)前目錄下生成一個(gè)your 的子目錄J. Linux 系統(tǒng)的遠(yuǎn)程登錄Linux 系統(tǒng)在服務(wù)器領(lǐng)域和嵌入式領(lǐng)域占有絕對(duì)的壟斷地位,市場占有率超過90%Linux 一般裝在數(shù)據(jù)中心的服務(wù)器中,平時(shí)只能通過遠(yuǎn)程登錄的方式來進(jìn)行配置、維護(hù)和管理。Putty 是一個(gè)輕巧的遠(yuǎn)程登錄工具,但不安全,密碼采用明文發(fā)送,用抓包工具可以很輕松獲取密碼。Translation:下拉菜單選擇 UTF-8編碼compute

14、r123456VMware虛擬機(jī)軟件的三種網(wǎng)絡(luò)連接方式a.橋接 bridgeb.NAT 網(wǎng)絡(luò)地址映射c.host-only 本地連接模式d.non不連接網(wǎng)絡(luò)3. Linux 下的 C 程序開發(fā)(編譯工具、反向工程、編譯流程及原理等)A. 編譯執(zhí)行流程(1) 編寫源程序first.c(2) 預(yù)處理階段原料 first.c產(chǎn)品 first.igcc-Efirst.c-ofirst.i編譯階段原料 first.i產(chǎn)品 first.sgcc-Sfirst.i-ofirst.s匯編階段原料 first.s產(chǎn)品 first.ogcc-cfirst.s-ofirst.o鏈接階段原料 first.o產(chǎn)品 fi

15、rstgccfirst.o-ofirst(3) 執(zhí)行代碼./firstfirst.i經(jīng)過預(yù)處理后的源代碼文件first.s匯編語言源文件first.o目標(biāo)文件first可執(zhí)行程序預(yù)處理指令:#define#include預(yù)處理指令不是C 語言的關(guān)鍵字也不是 C 的語法只是在正式編譯開始前,對(duì)編譯環(huán)境做準(zhǔn)備工作B. 開發(fā)工具(1).文本編輯器geditGraphics EditLinux 系統(tǒng)上的文本編輯器(2).編譯器gccGNU Compiler Collectionsc、 c+、 java、 fortain它比其它的編譯器效率高30% 以上gcc 集成預(yù)處理器、編譯器、匯編器、鏈接器(3)

16、.調(diào)試器gdb(4).項(xiàng)目管理器makeVC+ 6.0IDE集成開發(fā)環(huán)境C. Embedded C 知識(shí)點(diǎn)串講(1). C 的各種版本1971丹尼斯 里奇發(fā)明了 C 語言1989ANSIC891990ISOC901995ISOC951999ISOC99GNU開源組織LinuxgccgdbGNU C標(biāo)準(zhǔn)gcc-std=c90按照 C90標(biāo)準(zhǔn)編譯源碼gcc-std=c99按照 C99標(biāo)準(zhǔn)編譯源碼gcc-std=gnu99 按照 GNU99 標(biāo)準(zhǔn)編譯GNU支持內(nèi)聯(lián)函數(shù)inline(2). 字符指針常量不能被賦值(3). 更多的知識(shí)點(diǎn)請(qǐng)參照發(fā)給大家的PDF 文檔(4). 靜態(tài)庫和 共享庫(Linux)

17、靜態(tài)庫和 動(dòng)態(tài)鏈接庫( Windows).dlldynamic linked library庫 (函數(shù)和其它資源)Linux 系統(tǒng)中的庫的一般格式:libxxxx.a靜態(tài)庫libxxxx.so共享庫xxxx 代表庫名稱 ,使用時(shí)只需提供庫名稱(5).創(chuàng)建第一個(gè)多文件的程序架構(gòu)main.ccalc.ccalc.hmain()add()sub()multiply()divide()a. 生成代碼庫的目標(biāo)程序gcc-ccalc.c-ocalc.ob. 創(chuàng)建靜態(tài)庫ar-crvlibcalc.acalc.oc. 編譯生成最終的可執(zhí)行程序gccmain.c-L.-lcalc-I.-L. 通知 gcc 在當(dāng)

18、前目錄下找?guī)?lcalc 通知 gcc庫名叫 calc-I.通知 gcc頭文件在當(dāng)前目錄下4. Linux 下的系統(tǒng)開發(fā)(系統(tǒng)功能調(diào)用)A. 項(xiàng)目項(xiàng)目的組織架構(gòu)Project Name: Music PlayerVersion:1.0binincludelibsrcdocbakB.Linux 系統(tǒng)調(diào)用(調(diào)用函數(shù))程序員利用系統(tǒng)提供的 API訪問系統(tǒng)的功能,從而使用操作系統(tǒng)管理的各種資源。播放聲音文件用到的系統(tǒng)調(diào)用函數(shù)如下:open()打開聲卡打開文件ioctl()用于設(shè)置系統(tǒng)設(shè)備參數(shù),改變?cè)O(shè)備運(yùn)行狀態(tài), 是與系統(tǒng)設(shè)備進(jìn)行通信的最重要的函數(shù)read() 從設(shè)備或文件中讀取數(shù)據(jù)write() 往設(shè)

19、備或文件中寫入數(shù)據(jù)C. MP3 原理Mp3 的一些重要參數(shù):聲道、采樣率、位速聲音是模擬量,計(jì)算機(jī)只能保存離散量,所以聲音在計(jì)算機(jī)中保存需要壓縮,會(huì)涉及到采樣的概念。一個(gè)聲道16bit立體聲就是雙聲道128kbpskilo bits / scharaudio_buffer4096緩存D. 聲音播放的基本工作流程a. open()打開聲卡b. ioctl()設(shè)置好聲卡的讀取格式包括聲道、比特率、播放速率c. open()打開聲音文件d. 循環(huán)讀取 read()數(shù)據(jù)到緩存中再寫入聲卡設(shè)備,驅(qū)動(dòng)聲卡發(fā)聲E. 項(xiàng)目實(shí)施:分小組進(jìn)行開發(fā), 開發(fā)良好的用戶交互界面,完成ARM 平臺(tái)下的 Linux 系統(tǒng)音樂播放程序 。5. ARM 移植與開發(fā)A. ARM 平臺(tái)與 x86 平臺(tái)采用不同的指令系統(tǒng),故 x86 下編譯的音樂播放器無法在ARM 平臺(tái)上直接運(yùn)行, 需要進(jìn)行交叉

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論