




已閱讀5頁(yè),還剩25頁(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)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。,2,嵌入式系統(tǒng)特點(diǎn),面向特定應(yīng)用的特點(diǎn) 。 嵌入式系統(tǒng)的硬件和軟件都必須進(jìn)行高效地設(shè)計(jì),量體裁衣、去除冗余,力爭(zhēng)在同樣的硅片面積上實(shí)現(xiàn)更高的性能 。 嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個(gè)行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物 。 為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲(chǔ)器芯片中或單片機(jī)本身,而不是存儲(chǔ)于磁盤中。 嵌入式開發(fā)的軟件代碼尤其要求高質(zhì)量、高可靠性 。 嵌入式系統(tǒng)本身不具備二次開發(fā)能力 。,3,嵌入式系統(tǒng)常用處理器體系結(jié)構(gòu),PowerPC RISC體系結(jié)構(gòu),蘋果電腦公司、IBM和摩托羅拉的半導(dǎo)體部門(Freescale)共同開發(fā)。 汽車、消費(fèi)類電子產(chǎn)品、網(wǎng)絡(luò)應(yīng)用設(shè)備、電信交換機(jī) MIPS RISC體系結(jié)構(gòu),MIPS Technology公司 廣泛應(yīng)用于許多產(chǎn)品中 ARM Intel Atom,4,ARM簡(jiǎn)介,ARM是一類嵌入式微處理器,同時(shí)也是一個(gè)公司的名字。ARM公司于1990年11月成立于英國(guó)劍橋,它是一家專門從事16/32位RISC微處理器知識(shí)產(chǎn)權(quán)設(shè)計(jì)的供應(yīng)商。ARM公司本身不直接從事芯片生產(chǎn),而只是授權(quán)ARM內(nèi)核,再給生產(chǎn)和銷售半導(dǎo)體的合作伙伴,同時(shí)也提供基于ARM架構(gòu)的開發(fā)設(shè)計(jì)技術(shù)。世界各大半導(dǎo)體生產(chǎn)商從ARM公司處購(gòu)買其設(shè)計(jì)的ARM微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐?,從而形成自己的ARM微處理器芯片進(jìn)入市場(chǎng)。 ARM公司從成立至今,在短短幾十年的時(shí)間就占據(jù)了75%的市場(chǎng)份額,如今,ARM微處理器及技術(shù)的應(yīng)用幾乎已經(jīng)深入到各個(gè)領(lǐng)域。采用ARM技術(shù)的微處理器現(xiàn)在已經(jīng)遍及各類電子產(chǎn)品,汽車、消費(fèi)娛樂、影像、工業(yè)控制、海量存儲(chǔ)、網(wǎng)絡(luò)、安保和無(wú)線等市場(chǎng)。到2001年就幾乎已經(jīng)壟斷了全球RISC芯片市場(chǎng),成為業(yè)界實(shí)際的RISC芯片標(biāo)準(zhǔn)。,5,ARM體系架構(gòu)的版本,ARM體系架構(gòu)的版本就是它所使用的指令集的版本。 ARMv4 當(dāng)今市場(chǎng)上最老版本,只支持32位指令集。一些ARM7處理器和Intel StrongARM采用。 ARMv4T 增加了16位的Thumb指令集。可以使編譯器生成更緊湊的代碼,提高指令執(zhí)行效率。 ARMv5TE 1999年,ARMv5TE改進(jìn)了Thumb指令集,增加了一些“增強(qiáng)型DSP指令”,簡(jiǎn)稱為E指令集。,6,ARM體系架構(gòu)的版本(續(xù)),ARMv5TEJ 2000年,ARMv5TEJ版本增加了Jazelle技術(shù)用于提供Java加速功能,和僅用軟件實(shí)現(xiàn)的Java虛擬機(jī)相比,運(yùn)行速度大大提高,功耗大幅下降。 ARMv6 2001年問世。在許多方面都有改進(jìn):存儲(chǔ)系統(tǒng)、異常處理,最重要的是增加了對(duì)多媒體功能的支持。 引入了Thumb-2和TrustZone技術(shù)。 ARMv7 使用Thumb-2技術(shù),還使用了NEON技術(shù),將DSP和媒體處理能力提高了近4倍,并支持改良的浮點(diǎn)運(yùn)算。,7,ARM處理器系列,ARM7 32位低功耗RISC處理器。無(wú)MMU(內(nèi)存管理單元) ARM9 有MMU和Cache。 ARM920T(如S3C2410和S3C2440)和ARM922T兩種類型。 ARM9E 在單一的處理器內(nèi)核上提供了微控制器、DSP、Java應(yīng)用系統(tǒng)的解決方案 ARM10E 使用新的體系結(jié)構(gòu)擁有所有ARM系列中最高主頻。含有浮點(diǎn)運(yùn)算協(xié)處理器。,8,ARM處理器系列(續(xù)),ARM11 ARMv6的第一代設(shè)計(jì)實(shí)現(xiàn)。 Cortex 基于ARMv7架構(gòu),分為Cortex-A、Cortex-R和Cortex-M 3類。Cortex-A為傳統(tǒng)的、基于虛擬存儲(chǔ)的操作系統(tǒng)和應(yīng)用程序而設(shè)計(jì)。Cortex-R針對(duì)實(shí)時(shí)系統(tǒng)。Cortex-M針對(duì)價(jià)格敏感產(chǎn)品,只支持Thumb-2指令集。 SecurCore 專為安全需要而設(shè)計(jì) OptimoDE Data Engines 針對(duì)高性能嵌入式信號(hào)處理應(yīng)用 Intel 的strongARM和Xscale系列 Xscale基于ARMv5TE 如PXA270,9,嵌入式操作系統(tǒng)簡(jiǎn)介,C/OS-II Micrium公司開發(fā),可用于8位、16位和32位處理器,硬件要求低 Vxworks WindRiver公司開發(fā)的嵌入式實(shí)時(shí)操作系統(tǒng),非常優(yōu)秀。 Windows CE Linux eCos RedHat公司開發(fā),實(shí)時(shí)性好,硬件要求低 RTEMS 實(shí)時(shí)性好,占用資源少,10,嵌入式Linux開發(fā)過(guò)程,硬件設(shè)計(jì) 制作交叉編譯工具鏈 移植Bootloader Bootloader就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段程序,它類似于PC機(jī)中的BIOS程序。通過(guò)這段程序,可以完成硬件設(shè)備的初始化,并建立內(nèi)存空間的映射關(guān)系,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),為最終加載系統(tǒng)內(nèi)核做好準(zhǔn)備。 Uboot Vivi Supervivi NOR和NAND flash的作用,11,嵌入式Linux開發(fā)過(guò)程(續(xù)),移植內(nèi)核(配置編譯內(nèi)核) 制作根文件系統(tǒng) 根文件系統(tǒng)是內(nèi)核啟動(dòng)時(shí)掛載的第一個(gè)文件系統(tǒng),包括Linux啟動(dòng)時(shí)所必須的目錄和關(guān)鍵性的文件。 一般有/bin /sbin /dev /etc /lib /home /root /usr /var /proc /mnt /tmp等目錄。 一般來(lái)說(shuō),都要使用Busybox來(lái)創(chuàng)建/bin、/sbin等目錄下的可執(zhí)行文件。Busybox動(dòng)態(tài)鏈接只有幾百KB,靜態(tài)鏈接只有1MB左右。 編寫自己增加的設(shè)備的驅(qū)動(dòng) 編寫應(yīng)用程序,12,嵌入式開發(fā)的幾個(gè)基本概念,宿主機(jī)與目標(biāo)板 交叉編譯 串口在調(diào)試中的作用 終端、傳送文件,13,宿主機(jī)Linux的選擇,RedHat 系列 RedHat企業(yè)版6 CentOS5.6 Fedora 15 早期的RedHat9 Debian系列 Debian 6.0.1a Ubuntu 11.04 Mint 新華華鐳 Suse系列 SUSE Linux Enterprise Server SUSE Linux Enterprise Desktop OpenSuse,14,宿主機(jī)Linux的選擇(續(xù)),Gentoo Slackware Mandriva Puppy Linux 紅旗Linux,15,Linux常用命令與軟件,ls cd cp rm mv mkdir cat more head tail find grep mount chmod ps kill dmesg tar du df mknod diff echo 注意文件和目錄的權(quán)限 文本編輯器可以使用vi、emacs、gedit、geany等 編譯gcc 交叉編譯arm-linux-gcc 調(diào)試gdb make make不是編譯器,它可以根據(jù)預(yù)定義的參數(shù)來(lái)執(zhí)行訂制的編譯過(guò)程,在這個(gè)過(guò)程中要依靠外部編譯器,16,編寫C語(yǔ)言程序編譯、運(yùn)行,用文本編輯器編寫程序 取名為lx1.c #include int main() printf(“Hello,World.n“); return 0; 編譯程序 gcc lx1.c -o lx1.o 運(yùn)行程序 ./lx1.o,17,多個(gè)文件的編譯,編寫程序,輸入一個(gè)整數(shù),然后輸出該整數(shù)的10倍和20倍。其中,10倍20倍各用一個(gè)函數(shù)實(shí)現(xiàn) 主程序lx2.c 10倍 lx2_func1.c 20倍 lx2_func2.c 頭文件 lx2_h.h,18,程序lx2_func1.c int mul10(int x) return 10*x; ,程序lx2_func2.c int mul20(int x) return 20*x; ,頭文件lx2_h.h int mul10(int x); int mul20(int x);,19,程序lx2.c #include #include “l(fā)x2_h.h“ int main() int x; printf(“x=?n“); scanf(“%d“, ,編譯程序 gcc lx2.c lx2_func1.c lx2_func2.c -o lx2 運(yùn)行程序 ./lx2,gcc -c lx2.c gcc -c lx2_func1.c gcc -c lx2_func2.c gcc lx2.o lx2_func1.o lx2_func2.o -o lx2,20,make工程管理器,make工程管理器也就是個(gè)“自動(dòng)編譯管理器”,這里的“自動(dòng)”是指它能構(gòu)根據(jù)文件時(shí)間戳自動(dòng)發(fā)現(xiàn)更新過(guò)的文件而減少編譯的工作量,同時(shí),它通過(guò)讀入Makefile文件文件的內(nèi)容來(lái)執(zhí)行大量的編譯工作 makefile文件有有一組依賴關(guān)系和規(guī)則構(gòu)成。每個(gè)依賴關(guān)系由一個(gè)目標(biāo)(即將要?jiǎng)?chuàng)造的文件)和一組該目標(biāo)所依賴的源文件組成。而規(guī)則描述了如何通過(guò)依賴文件創(chuàng)建目標(biāo)。,21,lx1:lx1.c gcc -o lx1 lx1.c 注意表示規(guī)則的語(yǔ)句以Tab開頭,不能以空格開頭,Make的3個(gè)常用選項(xiàng) -k make發(fā)現(xiàn)錯(cuò)誤時(shí)繼續(xù)執(zhí)行,而不是發(fā)現(xiàn)第一個(gè)錯(cuò)誤就停下來(lái)。 -n make命令輸出將要執(zhí)行的步驟,而不真正執(zhí)行這些操作。 -f 告訴make命令,哪個(gè)文件作為makefile文件,如未使用該選項(xiàng),make命令首先查找當(dāng)前目錄下名為makefile的文件然后查找Makefile all : prog1 prog2 prog3 執(zhí)行make時(shí),目標(biāo)“all”被作為終極目標(biāo)。為了完成對(duì)它的更新,make會(huì)創(chuàng)建(不存在)或者重建(已存在)目標(biāo)“all”的所有依賴文件(prog1、prog2和prog3)。 clean: rm -f *.o make clean 可以清除前面產(chǎn)生的文件。 #開始的語(yǔ)句是注釋,22,/*lx2_func1.c*/ int mul10(int x) return 10*x; ,/*lx2_func2.c*/ int mul20(int x) return 20*x; ,/*lx2.c*/ #include #include int main() int x; printf(“x=?n“); scanf(“%d“, /本句如果注釋掉,編譯時(shí)使用 -Wall 有警告 ,/*lx2_h.h*/ int mul10(int x); int mul20(int x);,23,lx2:lx2.o lx2_func1.o lx2_func2.o gcc -o lx2 lx2.o lx2_func1.o lx2_func2.o lx2.o:lx2.c lx2_h.h gcc -I . -c lx2.c lx2_func1.o:lx2_func1.c gcc -c lx2_func1.c lx2_func2.o:lx2_func2.c gcc -c lx2_func2.c clean: # rm lx2.o lx2_func1.o lx2_func2.o rm *.o,24,makefile文件中的宏,makefile文件允許使用宏,這樣可以以一種更為通用的格式來(lái)書寫makefile文件。便于管理大型項(xiàng)目。 還可以,很簡(jiǎn)單的修改編譯器的名稱,只改一行,不用修改多行。 gcc cc c89 arm-linux-gcc,25,all:lx2 CC=gcc INCLUDE=. CFLAGS=-g -Wall lx2:lx2.o lx2_func1.o lx2_func2.o $(CC) -o lx2 lx2.o lx2_func1.o lx2_func2.o lx2.o:lx2.c lx2_h.h $(CC) -I $(INCLUDE) $(CFLAGS) -c lx2.c lx2_func1.o:lx2_func1.c $(CC) $(CFLAGS) -c lx2_func1.c lx2_func2.o:lx2_func2.c $(CC) $(CFLAGS) -c lx2_func2.c clean: # rm lx2.o lx2_func1.o lx2_func2.o rm *.o,26,mini2440開發(fā)板交叉編譯工具鏈的安裝,交叉編譯器統(tǒng)一為 arm-linux-gcc-4.3.2 下面是它的安裝設(shè)置步驟。 Step1:將光盤目錄 linux中的 arm-linux-gcc-4.3.2.tgz 復(fù)制到某個(gè)目錄下如 tmp,然后 進(jìn)入到該目錄,執(zhí)行解壓命令: #cd tmp #tar xvzf arm-linux-gcc-4.3.2.tgz C / 注意:C 后面有個(gè)空格,并且 C 是大寫的,它是英文單詞“Change”的第一個(gè)字母, 在此是改變目錄的意思。 執(zhí)行該命令,將把 arm-linux-gcc 安裝到/usr/loca/arm/4.3.2 目錄。 Step2:把編譯器路徑加入系統(tǒng)環(huán)境變量,運(yùn)行命令 #gedit /root/.bashrc 編輯/root/.bashrc 文件,在最后一行 export PATH=$PATH:/usr/local/arm/4.3.2/bin 重新登錄系統(tǒng)(不必重啟機(jī)器,開始-logout 即可),使以上設(shè)置生效,在命令行輸入 arm-linux-gcc v,會(huì)出現(xiàn)提示信息,這說(shuō)明交叉編譯環(huán)境已經(jīng)成功安裝。,27,系統(tǒng)環(huán)境變量也可以如下修改: 修改 /.bash_profile 修改后該文件最后幾行內(nèi)容如下 PATH=$PATH:$HOME/bin:/usr/local/arm/4.3.2/bin export PATH 交叉編譯時(shí)使用命令 arm-linux-gcc,28,從PC機(jī)向開發(fā)板傳文件 在開發(fā)板終端窗口輸入 rz 出現(xiàn) C*B0100000023be50ve.*B0100000023be50 按ctrl+A 再按s 選zmodem 再根據(jù)提示選文件(進(jìn)入目錄的方法是用空格雙擊。選中文件的辦法是單擊空格選中文件,再按回車。) 從開發(fā)板向PC機(jī)傳文件,例如開發(fā)板上有個(gè)文件名為lx1.c sz lx1.c,PC機(jī)和開發(fā)板使用minicom軟件通過(guò)串口傳輸文件,29,PC機(jī)和開發(fā)板可以使用ftp傳輸文件 在PC機(jī)輸入 ftp 192.168.1
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第1課神奇的小畫冊(cè)(說(shuō)課稿)
- 《社會(huì)學(xué)概論》授課教案
- 座椅發(fā)泡設(shè)計(jì)指南
- 兒童心理障礙的早期干預(yù)和家庭支持
- 浙江省臺(tái)州市六校聯(lián)盟2024-2025學(xué)年高一下學(xué)期4月期中語(yǔ)文試卷(含答案)
- 湖北省武漢市部分重點(diǎn)中學(xué)2024-2025學(xué)年高一下學(xué)期期末聯(lián)考語(yǔ)文試卷(含答案)
- 河南省安陽(yáng)市滑縣2024-2025學(xué)年七年級(jí)下學(xué)期5月月考生物試卷(含答案)
- 工廠體驗(yàn)體察活動(dòng)方案
- 工行信用卡品牌活動(dòng)方案
- 工廠囤貨活動(dòng)方案
- 2022年出版專業(yè)資格考試中級(jí)中級(jí)出版專業(yè)基礎(chǔ)知識(shí)考試題
- 疼痛治療(外科學(xué)-九章)
- 壓力容器的發(fā)展趨勢(shì)
- 工程質(zhì)量投訴受理處理臺(tái)賬
- 2023年版一級(jí)建造師-水利工程實(shí)務(wù)電子教材
- GB/T 38537-2020纖維增強(qiáng)樹脂基復(fù)合材料超聲檢測(cè)方法C掃描法
- GB/T 29490-2013企業(yè)知識(shí)產(chǎn)權(quán)管理規(guī)范
- GB/T 19787-2005包裝材料聚烯烴熱收縮薄膜
- GB/T 16535-2008精細(xì)陶瓷線熱膨脹系數(shù)試驗(yàn)方法頂桿法
- GB/T 14436-1993工業(yè)產(chǎn)品保證文件總則
- GB/T 10051.7-2010起重吊鉤第7部分:直柄雙鉤
評(píng)論
0/150
提交評(píng)論