嵌入式 知識點總結(jié)_第1頁
嵌入式 知識點總結(jié)_第2頁
嵌入式 知識點總結(jié)_第3頁
嵌入式 知識點總結(jié)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)的特點:⑴.嵌入式系統(tǒng)的共性化很強,軟件系統(tǒng)和硬件在不同的應(yīng)用中均有差異;⑵.由通用計算機系統(tǒng)進(jìn)展而來,依據(jù)應(yīng)用對軟硬件進(jìn)行裁剪;⑶,高的牢靠性,強的有用性;(4),高的耗電量直接影響系統(tǒng)的成本及電源壽命;2、什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),采納可剪裁硬件,適用于對功能,牢靠性,成本,體積,功耗等有嚴(yán)格要求的專用計算機系統(tǒng)。3、采納RISC架構(gòu)的ARM微處理器一般具有如下特點:⑴.體積小、功耗低、成本低、性能高;⑵.支持Thumb(16位)/ARM(3位)雙指令集,能很好地兼容8位/16位器件;⑶.大量使用寄存器,指令執(zhí)行速度快;⑷.大多數(shù)數(shù)據(jù)操作都在寄存器中完成;⑸,尋址方式敏捷簡潔,執(zhí)行效率高;⑹.采納固定長度的指令格式;4、嵌入式系統(tǒng)開發(fā)流程:選擇嵌入式處理器(硬件平臺)一選擇嵌入式操作系統(tǒng)(軟件平臺)一-開發(fā)嵌入式應(yīng)用軟件一-測試通過一(是)一系統(tǒng)測試一--開發(fā)結(jié)束5、嵌入式系統(tǒng)軟件設(shè)計流程:代碼編程(C/匯編源程序)--—交叉編譯(OBJ文件)-一交叉函數(shù)庫--交叉鏈接(系統(tǒng)映像文件)一(重定向與下載)一目標(biāo)板--調(diào)試;6、ARM9E處理器有獨立的指令緩存(ICACHE)和數(shù)據(jù)緩存(DCACHE);7、ARM9系列處理器共有37個寄存器,其中31個屬于通用寄存器,6個為ARM處理器;8、ARM總共有7種不同的處理器模式,分別是:用戶模式,快速中斷模式,外部中斷模式,管理模式,數(shù)據(jù)訪問中止模式,未定義指令中止模式,系統(tǒng)模式9、R13一般作為棧指針SP;R14被稱為連接寄存器LR,作用:一是在通過BL或者BLX指令調(diào)用子程序時存放當(dāng)前子程序的返回地址;二是在發(fā)生特別時用來保存該模式基于PC的返回地址;R15是程序計數(shù)器PC,用來保存處理器取值的地址;10、流水線技術(shù)的工作原理:ARM7采納的是3級流水線:FETCH/DECODE/EXECUTE.此時在EXECUTE階段要完成大量的工作,包括寄存器和存儲器的讀寫操作、移位操作、ALU操作等,這導(dǎo)致在執(zhí)行階段往往需要多個時鐘周期,從而成為系統(tǒng)性能的瓶頸。ARM9采納5級流水線技術(shù),分別是FETCH/DECODE/EXECUTE/MEMORY/WRITE.FETCH階段和之前功能相同,即從指令存儲器中取值;DECODE階段除了譯碼之外,還讀取寄存器操作數(shù);EXECUTE階段執(zhí)行運算,產(chǎn)生ALU運算結(jié)果或產(chǎn)生存儲器地址;MEMORY階段進(jìn)行存儲器的讀寫操作;WRITE階段將結(jié)果寫回寄存器;11>ARM9使用一個統(tǒng)一的TLB來緩存頁表信息,TLB主頁分為兩個部分:主TLB和鎖定TLB;12、ARM總共有7種處理器特別:復(fù)位特別、未定義指令特別、軟件中斷特別、指令預(yù)取終止特別、數(shù)據(jù)訪問終止特別、外部訪問終止特別、快速中斷懇求特別13、(1),復(fù)位特別和軟件中斷特別時,處理器進(jìn)入管理模式;⑵,未定義指令特別時,處理器進(jìn)入未定義模式;⑶.指令預(yù)取終止特別和數(shù)據(jù)訪問終止特別時,處理器進(jìn)入中止模式;⑷,外部中斷懇求時,處理器進(jìn)入外部中斷模式;(5),快速中斷懇求時,處理器進(jìn)入快速中斷模式;.ARM運行狀態(tài):ARM狀態(tài)和Thumb狀態(tài);ARM指令必需在ARM狀態(tài)下執(zhí)行,同樣,Thumb指令也必需處于Thumb狀態(tài)下執(zhí)行。.ARM狀態(tài)和Thumb狀態(tài)切換可以通過BX指令來實現(xiàn)。.ARM指令集有5種形式的位移操作:LSL:規(guī)律左移;LSR:規(guī)律右移;ASR:算術(shù)右移;ROR:循環(huán)右移;RRX:帶擴展的循環(huán)右移;.馬上數(shù)并不是任意數(shù)都是合法的,在馬上數(shù)尋址中,安排給馬上數(shù)的空間是12位,8位用于保存一個常數(shù),4位用于保存循環(huán)右移基數(shù),而循環(huán)右移每次需要移動偶數(shù)位,即右移的位數(shù)是基數(shù)*2;假設(shè)常數(shù)為A,循環(huán)右移位數(shù)為N,則最終得到的馬上數(shù)二A循環(huán)右移(N*2位);.ARM指令的尋址方式及特點:⑴馬上尋址;⑵.寄存器偏移尋址;⑶,寄存器偏移尋址;⑷.寄存器間接尋址;⑸,基址變址尋址;⑹.多寄存器尋址;⑺,堆棧尋址:滿遞增堆棧、空遞增堆棧、滿遞減堆棧、空遞減堆棧;.LDR和STRLDR指令:從內(nèi)存讀取數(shù)據(jù)裝入寄存器;STR指令:將寄存器中的數(shù)據(jù)存入內(nèi)存;.CDP:是協(xié)處理器數(shù)據(jù)處理指令:用來執(zhí)行特定的數(shù)據(jù)操作;MCR:將ARM寄存器中的數(shù)據(jù)傳輸?shù)絽f(xié)處理器寄存器中;MRC:數(shù)據(jù)傳輸方向與MCR指令相反,它將協(xié)處理器寄存器中的數(shù)據(jù)傳送到ARM處理器寄存器中;.ADR:小范圍的地址讀取偽指令,主要用來讀取基于PC相對偏移的地址或基于寄存器相對偏移的地址;LDR:大范圍偽地址讀取偽指令,用于加載32位的馬上數(shù)或是一個地址值;.Thumb跳轉(zhuǎn)指令:B:是Thumb指令中唯一可以條件執(zhí)行的指令;BL:帶鏈接的長跳轉(zhuǎn);BX:指令在跳轉(zhuǎn)的同時,會選擇性的切換指令集;BLX:帶鏈接的跳轉(zhuǎn),并選擇性的切換指令集;.MMU:其作用主要有2個方面:一是地址映射,負(fù)責(zé)將虛擬地址映射成物理地址;二是對地址訪問的愛護(hù)和限制;供應(yīng)硬件機制的內(nèi)存訪問授權(quán),大多數(shù)使用虛擬存儲器的系統(tǒng)都使用一種稱為分頁機制,虛擬地址空間劃分成大小相同的一組頁,每個頁有一個用來標(biāo)記它的頁號,而相應(yīng)的物理地址空間也被進(jìn)行劃分,單位幀、頁和頁幀的大小必需相同,虛擬地址被送往MMU,MMU將虛擬地址轉(zhuǎn)化為物理地址。.進(jìn)程調(diào)度策略可分為:〃搶占式調(diào)度〃和〃非搶占式調(diào)度〃;25,在用戶空間中,進(jìn)程是由進(jìn)程標(biāo)識符(PID)表示的,一個PID在進(jìn)程的整個生命期間不會更改,但PID可以在進(jìn)程進(jìn)行銷毀后重新使用;對用戶來說,PID是唯一標(biāo)識一個進(jìn)程的數(shù)字值;.Linux進(jìn)程還可以通過exec系統(tǒng)調(diào)用產(chǎn)生;.Linux操作系統(tǒng)有三種進(jìn)程調(diào)度策略:⑴.分時調(diào)度策略;(2).先到先服務(wù)的實時調(diào)度策略;⑶.時間片輪的實時調(diào)度策略;28.嵌入式文件系統(tǒng)分類:⑴.基于Flash的文件系統(tǒng):JFFS2文件系統(tǒng);YAFFS文件系統(tǒng);Cramfs;Romfs;其他文件系統(tǒng);⑵.基于RAM的文件系統(tǒng):RamDisk;Ramfs/Tmpfs⑶.網(wǎng)絡(luò)文件系統(tǒng)NFS29.BootLoader階段一:1.基本的硬件初始化:a.屏蔽全部中斷;b.設(shè)置CPU的速度和時鐘頻率;c.RAM初始化;d.初始化LED;.ARM-Linux內(nèi)存管理原理:從兩方面入手:一是Linux內(nèi)核對內(nèi)存的管理(包括最重要的地址映射、內(nèi)存空間的安排以及地址訪問的限制,即愛護(hù)機制);二是體系對內(nèi)存管理方面的特別性;.Linux虛擬內(nèi)存的實現(xiàn)需要6種機制的支持:地址映射機制、懇求頁機制、內(nèi)存安排回收機制、緩存和刷新機制、交換機制和內(nèi)存共享機制;.Linux虛擬內(nèi)存實現(xiàn)機制間的相互關(guān)系:地址映射機制--懇求頁機制--內(nèi)存安排和回收機制一交換機制--緩存和刷新機制.進(jìn)程,又稱作任務(wù),是一個動態(tài)的執(zhí)行過程,是處于執(zhí)行期的程序,進(jìn)程是系統(tǒng)資源安排的最小單位。.在Linux系統(tǒng)中,全部的進(jìn)程都是fork出來的,它們有個共同的祖先:0號進(jìn)程;init是內(nèi)核啟動的第一個用戶級進(jìn)程,也是系統(tǒng)的第一個真正的進(jìn)程,是其他全部進(jìn)程的父進(jìn)程,所以init內(nèi)核線程(或進(jìn)程)的標(biāo)識符為1,init有很多重要的任務(wù),負(fù)責(zé)完成系統(tǒng)的一些初始化設(shè)置任務(wù),以及執(zhí)行系統(tǒng)初始化程序,init程序使用/etc/inittab作為腳本文件來創(chuàng)建系統(tǒng)中的新進(jìn)程;.進(jìn)程的銷毀通過以下三個大事驅(qū)動:正常的進(jìn)程結(jié)束、信號、exit函數(shù)的調(diào)用;.進(jìn)程調(diào)度時機可分為:主動調(diào)度和被動調(diào)度;按細(xì)分的話:⑴進(jìn)程狀態(tài)轉(zhuǎn)換;⑵當(dāng)前進(jìn)程的時間片用完;(3)設(shè)施驅(qū)動程序;(4)進(jìn)程從中斷、特別以及系統(tǒng)調(diào)用返回到用戶態(tài);.選擇進(jìn)程的依據(jù):policy、priority、counter>rt_priority;.內(nèi)核模塊全稱為動態(tài)可加載內(nèi)核模塊,是Linux內(nèi)核向外部供應(yīng)的一個插口,簡稱為模塊;.加載模塊有兩種方法:第一種是通過insmod命令手工將module載入內(nèi)核;其次種是依據(jù)需要載入module;kerneld的主要功能是module載入內(nèi)核和將它卸載出內(nèi)核;.中斷是一個流程,一般經(jīng)過三個環(huán)節(jié):中斷相應(yīng)、中斷處理、中斷返回;.ARM-Linux的系統(tǒng)調(diào)用原理:系統(tǒng)調(diào)用的過程和中斷有類似之處,當(dāng)CPU遇到自陷指令后,跳轉(zhuǎn)到內(nèi)核態(tài),操作系統(tǒng)首先保存當(dāng)前運行的信息,然后依據(jù)系統(tǒng)調(diào)用號來查找相應(yīng)的函數(shù)去執(zhí)行,執(zhí)行完了以后恢復(fù)原先保存的運行信息返回,比如通常應(yīng)用程序所用的fork()函數(shù),它是經(jīng)過包裝的函數(shù),其最終的實現(xiàn)是系統(tǒng)調(diào)用;.在UNIX系統(tǒng)下有兩種方式實現(xiàn)系統(tǒng)調(diào)用:通過經(jīng)過封裝的C庫或者直接調(diào)用;.系統(tǒng)調(diào)用的過程和中斷有類似之處,當(dāng)CPU遇到自陷指令后,跳轉(zhuǎn)到內(nèi)核態(tài),操作系統(tǒng)首先保存當(dāng)前運行的信息,然后依據(jù)系統(tǒng)調(diào)用號查找相應(yīng)的函數(shù)去執(zhí)行,執(zhí)行完了以后恢復(fù)原先保存的運行信息返回;通過不同的向量索引可以使CPU馬上轉(zhuǎn)入不同的處理程序;45.init進(jìn)程是系統(tǒng)全部進(jìn)程的起點,內(nèi)核在完成核內(nèi)參數(shù)init二XXX來設(shè)置init進(jìn)程,init進(jìn)程需要讀取/etc/inittab文件作為其行為指針,inittab是以行為為單位的描述性(非執(zhí)行性)文本;.存儲文件系統(tǒng)的設(shè)施稱為block設(shè)施(塊設(shè)施);.設(shè)施驅(qū)動的接口API都是從文件管理器API中繼承下來的,所以這些設(shè)施API都有open().close().read().write().lseek()^Uioctl()等與文件API類似的接口;.Linux也使用文件管理器,但是它的文件管理器使用了VFS(虛擬文件系統(tǒng)),正是VFS讓Linux能夠支持目前多種文件系統(tǒng)。VFS具備訪問各種各樣的文件系統(tǒng)的力量,也是由于VFS在內(nèi)部去適應(yīng)各種不同文件系統(tǒng)的差異,而供應(yīng)應(yīng)用戶進(jìn)程的是統(tǒng)一的文件APIo49JFFS2嵌入式文件系統(tǒng)原理:首先JFFS2是一個日志結(jié)構(gòu)文件系統(tǒng),包含數(shù)據(jù)和元數(shù)據(jù)的節(jié)點在閃存上挨次存儲。JFFS2定義了三種節(jié)點類型:JFFS2_NODETYPEJNODE,JFFS2_NODETYPE_DIREN7;JFFS2_NODETYPE_CLEANMARKERoJFFS2中I節(jié)點的信息并沒有全部存放在內(nèi)存,mount操作時,會為節(jié)點建立映射表,但是這個映射表并不全部存放在內(nèi)存中,存放在內(nèi)存中的節(jié)點信息是一個縮小尺寸的結(jié)構(gòu)體。JFFS2使用了多個級別的待回收塊隊歹上JFFS2寫平衡策略是在垃圾收集中實現(xiàn)的,垃圾收集的時候會讀取系統(tǒng)時間,使用這個系統(tǒng)時間產(chǎn)生一個偽隨機數(shù)。采用這個偽隨機數(shù)結(jié)合不同的待回收鏈表選擇要進(jìn)行回收的鏈表。50JFFS2克服了JFFS中以下缺點:⑴.使用了基于哈希表的日志節(jié)點結(jié)構(gòu),大大加快了對節(jié)點的操作速度;⑵.支持?jǐn)?shù)據(jù)壓縮;⑶,供應(yīng)了〃寫平衡〃支持;⑷.支持多種節(jié)點類型(數(shù)據(jù)I節(jié)點,名目I節(jié)點等);⑸.提高了對閃存的采用率,降低了內(nèi)存的消耗;.系統(tǒng)調(diào)用是操作系統(tǒng)內(nèi)核和應(yīng)用程序之間的接口,而設(shè)施驅(qū)動程序則是操作系統(tǒng)內(nèi)核和機器硬件之間的接口;.Linux支持三類硬件設(shè)施:字符設(shè)施、塊設(shè)施、網(wǎng)絡(luò)設(shè)施;.Linux內(nèi)核設(shè)施模型的目的和功能:目的:設(shè)施模型供應(yīng)獨立的機制表示設(shè)施,并表示其在系統(tǒng)中的拓?fù)浣Y(jié)構(gòu),這樣使系統(tǒng)具有以下優(yōu)點:代碼重復(fù)最??;供應(yīng)如引用計數(shù)這樣的統(tǒng)一機制;列舉系統(tǒng)中全部設(shè)施,觀看其狀態(tài),查看其連接總線;用樹的形式將全部設(shè)施結(jié)構(gòu)完整、有效地呈現(xiàn),包括全部總線和內(nèi)部連接;將設(shè)施和對應(yīng)驅(qū)動聯(lián)系起來,將設(shè)施依據(jù)類型分類;從樹的葉子向根的方向依次遍歷,確保以正確挨次關(guān)閉各個設(shè)施的電源;初衷是為了節(jié)能,有助于電源管理,通過建立表示系統(tǒng)設(shè)施拓?fù)潢P(guān)系的樹結(jié)構(gòu),能夠在內(nèi)核中實現(xiàn)智能的電源管理;功能:將系統(tǒng)中的設(shè)施組織成層次結(jié)構(gòu),然后向用戶程序供應(yīng)內(nèi)核數(shù)據(jù)結(jié)構(gòu)信息;.同步機制的分類及特點:⑴.同步鎖:適用于保持時間段的狀況,可以在任何上下文使用,不行以睡眠,任何時候,只能有一個持有者;⑵.信號量:不能用在內(nèi)核之外,是一種睡眠鎖,適用于鎖會被長期持有的狀況,允很多個持有者;⑶,原子操作:在執(zhí)行完畢前絕不會被任何其他任何或時間打斷,是最小的執(zhí)行單位,主要用在資源計數(shù)上;⑷.完成大事:適用于需要睡眠和喚醒的情景,不會引起資源競爭;.表示字符設(shè)施的設(shè)施文件可以通過〃ls-1〃命令輸出的第一列中的“c〃來識別,而塊設(shè)施則用“b〃標(biāo)識;.devt是一個32位的無符號數(shù),其高12位用來表示主設(shè)施號,低20位用來表示次設(shè)施號;Register_chrdev_region()函數(shù)和alloc_chrdev_region()函數(shù)用于安排設(shè)施號,這兩個函數(shù)最終都會調(diào)用_register_chrdev_region()函數(shù)來注冊一組設(shè)施的編號范圍,它們的區(qū)分是后者是以動態(tài)的方式安排的,unregister_chrdev_region()函數(shù)則用于釋放設(shè)施號。Alloc_chrdev_region()函數(shù)用于動態(tài)申請設(shè)施號范圍,通過指針參數(shù)返回實際安排的起始設(shè)施號,Dev_ti_rdev:對于設(shè)施文件而言,此成員包含實際的設(shè)施號;Structcdev*i_cdev:字符設(shè)施在內(nèi)核中是用cdev結(jié)構(gòu)來表示的,此成員是指想cdev結(jié)構(gòu)的指針;57.1/0接口是微掌握器必需具備的最基本外設(shè)功能。通常在ARM里,全部I/O都是通用的,稱為GPI0(通用輸入輸出);GPI0接口一般至少會有兩個寄存器,即掌握寄存器和數(shù)據(jù)寄存器;58.同步外設(shè)接口是由摩托羅拉公司推出的一種高速的、全雙工、

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論