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

下載本文檔

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

文檔簡介

1、課程設(shè)計基于 Linux 系統(tǒng)的 ARM 項目開發(fā)兩天上午 8: 30 - 12:00 下午 13:30 - 18:00匯編語言、微機原理及接口技術(shù)課程設(shè)計的主要知識:1. 嵌入式及 ARM 的簡單介紹2. 操作系統(tǒng)原理及具體管理 (Linux)3. Linux 下的 C 程序開發(fā)(編譯工具、反向工程、編譯流程及原理等)4. Linux 下的系統(tǒng)開發(fā)(系統(tǒng)功能調(diào)用)5. ARM 移植與開發(fā)計算機科學(xué)與技術(shù)研究的兩大領(lǐng)域1. 通用計算機系統(tǒng)2. 嵌入式計算機系統(tǒng)數(shù)字電路技術(shù)微機原理與接口技術(shù)計算機體系結(jié)構(gòu)單片機 ARM后PC時代移動互聯(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)建一個符合要求的操作系統(tǒng))驅(qū)動傳感器及設(shè)備(微機原理與接口)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% 的常用指令集,通過算法來模擬實現(xiàn),就是精簡指令集精簡指令集的兩大特點:省電、穩(wěn)定

3、性高C. 嵌入式系統(tǒng)的概念“專用” “形態(tài)不同”“對其它系統(tǒng)進行智能控制” “應(yīng)用為中心” “以計算機技術(shù)為基礎(chǔ)” “軟硬件可剪裁”D. 嵌入式與 PC 機的區(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)高級開發(fā)API (應(yīng)用程序編程接口) ARM 電路與原理 ARM 匯編與編程系統(tǒng)的構(gòu)建與移植系統(tǒng)剪裁啟動代碼 bootloader驅(qū)動程序開發(fā) Embedded C+面向?qū)ο?Qt 平臺圖形編程 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)的眾多版本免費 藍帽Ubuntu 烏斑圖CentOSSUSE Linux中標公司Kylin 麒麟200 多種 LinuxC. Linux 系統(tǒng)的特點(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).可靠的安全性對用戶做了嚴格的權(quán)限限制系統(tǒng)分為超級管理員root 和 普通用戶微內(nèi)核結(jié)構(gòu),不會因為其它功能的崩潰造成整個系統(tǒng)的崩潰(5). 良好的可移植性Linux 絕大部分是C 開發(fā)的AlphaMIPSPA-RISCARMx86PowerPC495臺2臺(6). 豐富的網(wǎng)絡(luò)功能TCP/IPWeb ServerDNS ServerMail ServerDocuments ServerFirewallBBS Server(7)

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

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

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

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

11、文件rm-rfoldDir 刪除非空目錄全部內(nèi)容(10) mvmove移動 、 剪切a.移動文件或者目錄到另一個位置b.對已經(jīng)存在的文件或目錄改變名稱e.g:mvoldFilenewFile改名mvoldFile/home/weixin/linux 移動(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)中輸入密碼時不顯示*e.g.:rpm-elinuxqq刪除已經(jīng)安裝的e 是 eraseVmware 虛擬機可以設(shè)置共享文件夾共享文件夾默認掛載在/mnt/hgfs 目錄下當設(shè)置好共享目錄后,就可以去/mnt/hgfs下訪問共享的那些文件QQmnt 的縮寫是mount ,本身就是掛載的意思別的文件系統(tǒng)被掛載到/mnt/hgfs 下File SystemWindows :FATFAT32NTFSLinux :Ext3Ext4Linux 系統(tǒng)是大小寫區(qū)分的系統(tǒng)(14) suswitch usere.g.:suroot切換用戶賬戶的命

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

14、r123456VMware虛擬機軟件的三種網(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目標文件first可執(zhí)行程序預(yù)處理指令:#define#include預(yù)處理指令不是C 語言的關(guān)鍵字也不是 C 的語法只是在正式編譯開始前,對編譯環(huán)境做準備工作B. 開發(fā)工具(1).文本編輯器geditGraphics EditLinux 系統(tǒng)上的文本編輯器(2).編譯器gccGNU Compiler Collectionsc、 c+、 java、 fortain它比其它的編譯器效率高30% 以上gcc 集成預(yù)處理器、編譯器、匯編器、鏈接器(3)

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

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

18、前目錄下找?guī)?lcalc 通知 gcc庫名叫 calc-I.通知 gcc頭文件在當前目錄下4. Linux 下的系統(tǒng)開發(fā)(系統(tǒng)功能調(diào)用)A. 項目項目的組織架構(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ù),改變設(shè)備運行狀態(tài), 是與系統(tǒng)設(shè)備進行通信的最重要的函數(shù)read() 從設(shè)備或文件中讀取數(shù)據(jù)write() 往設(shè)

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論