欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      嵌入式系統(tǒng)相關(guān)知識點總結(jié)

      時間:2019-05-12 13:50:18下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《嵌入式系統(tǒng)相關(guān)知識點總結(jié)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《嵌入式系統(tǒng)相關(guān)知識點總結(jié)》。

      第一篇:嵌入式系統(tǒng)相關(guān)知識點總結(jié)

      嵌入式系統(tǒng)的定義及特點

      定義:嵌入式系統(tǒng)是以應(yīng)用為中心、以計算機(jī)技術(shù)為基礎(chǔ),軟、硬件可裁剪,適應(yīng)于應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等方面有特殊要求的專用計算機(jī)系統(tǒng)。

      特點:(1)嵌入式系統(tǒng)是面向特定應(yīng)用的。嵌入式系統(tǒng)中的CPU是專門為特定應(yīng)用設(shè)計的,具有低功耗、體積小、集成度高等特點,能夠把通用CPU中許多由板卡完成的任務(wù)集成在芯片內(nèi)部,從而有利于整個系統(tǒng)設(shè)計趨于小型化。

      (2)嵌入式系統(tǒng)涉及先進(jìn)的計算機(jī)技術(shù)、半導(dǎo)體技術(shù)、電子技術(shù)、通信和軟件等各個行業(yè)。是一個技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng)。

      (3)嵌入式系統(tǒng)的硬件和軟件都必須具備高度可定制性。

      (4)嵌入式系統(tǒng)的生命周期相當(dāng)長。嵌入式系統(tǒng)和具體應(yīng)用有機(jī)地結(jié)合在一起,其升級換代也是和具體產(chǎn)品同步進(jìn)行的。

      (5)嵌入式系統(tǒng)本身并不具備在其上進(jìn)行進(jìn)一步開發(fā)的能力。在設(shè)計完成以后,用戶如果需要修改其中的程序功能,必須借助于一套專門的開發(fā)工具和環(huán)境。

      (6)為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片或單片機(jī)中,而不是存貯于磁盤等載體中。

      特點也可答:1.系統(tǒng)內(nèi)核小。2.專用性強。3.系統(tǒng)精簡。4.高實時性的系統(tǒng)軟件(OS)是嵌入式軟件的基本要求。5.嵌入式軟件開發(fā)要想走向標(biāo)準(zhǔn)化,就必須使用多任務(wù)的操作系統(tǒng)。6.嵌入式系統(tǒng)開發(fā)需要開發(fā)工具和環(huán)境。7.嵌入式系統(tǒng)與具體應(yīng)用有機(jī)結(jié)合在一起,升級換代也是同步進(jìn)行,所以具有較長的生命周期。8.為了提高運行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片中。

      操作系統(tǒng)在嵌入式系統(tǒng)中所起的作用(四個)

      嵌入式操作系統(tǒng)(嵌入式linux學(xué)習(xí))的功能

      嵌入式操作系統(tǒng)除具備了一般操作系統(tǒng)(嵌入式linux系統(tǒng))最基本的功能,如任務(wù)調(diào)度、同步機(jī)制、中斷處理、文件處理等外,還有以下兩個方面的功能:

      1.構(gòu)成一個易于編程的虛擬機(jī)平臺

      嵌入式操作系統(tǒng)構(gòu)成一個虛擬機(jī)平臺,EOS把底層的硬件細(xì)節(jié)封裝起來,為運行在它上面的軟件(如中間件軟件和各種應(yīng)用軟件)提供了一個抽象的編程接口。軟件開發(fā)在這個編程接口的上進(jìn)行,而不直接與機(jī)器硬件層打交道。

      2.系統(tǒng)資源的管理者

      嵌入式操作系統(tǒng)是一個系統(tǒng)資源的管理者,負(fù)責(zé)管理系統(tǒng)當(dāng)中的各種軟硬件資源,如處理器、內(nèi)存、各種I/O設(shè)備、文件和數(shù)據(jù)等,使得整個系統(tǒng)能夠高效、可靠地運轉(zhuǎn)。

      嵌入式操作系統(tǒng)負(fù)責(zé)嵌入式系統(tǒng)的全部軟、硬件資源的分配、調(diào)度、控制、協(xié)調(diào)并發(fā)活動。它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達(dá)到系統(tǒng)所要求的功能。

      嵌入式操作系統(tǒng)是嵌入式系統(tǒng)應(yīng)用的核心.嵌入式操作系統(tǒng),大大地提高了嵌入式系統(tǒng)硬件工作效率,并為應(yīng)用軟件開發(fā)提供了極大的便利。

      操作系統(tǒng)的作用主要體現(xiàn)在兩方面:

      1.屏蔽硬件物理特性和操作細(xì)節(jié),為用戶使用計算機(jī)提供了便利 2.有效管理系統(tǒng)資源,提高系統(tǒng)資源使用效率

      Linux與嵌入式使用的uclinux操作系統(tǒng)的關(guān)系

      Linux與UNIX系統(tǒng)兼容,開放源代碼。現(xiàn)在廣泛應(yīng)用于服務(wù)器領(lǐng)域。而更大的影響在于它正逐漸的應(yīng)用于嵌入式設(shè)備。uClinux正是在這種氛圍下產(chǎn)生的。所以uClinux就是Micro-Control-Linux,字面上的理解就是“針對微控制領(lǐng)域而設(shè)計的Linux系統(tǒng)”。

      uClinux是針對控制領(lǐng)域的嵌入式linux操作系統(tǒng),它從Linux 2.0/2.4內(nèi)核派生而來,沿襲了主流Linux的絕大部分特性。uClinux同標(biāo)準(zhǔn)Linux的最大區(qū)別就在于內(nèi)存管理。標(biāo)準(zhǔn)Linux是針對有MMU的處理器設(shè)計的。在這種處理器上,虛擬地址被送到MMU,MMU把虛擬地址映射為物理地址。通過賦予每個任務(wù)不同的虛擬—物理地址轉(zhuǎn)換映射,支持不同任務(wù)之間的保護(hù)。對于uCLinux來說,其設(shè)計針對沒有MMU的處理器,不能使用處理器的虛擬內(nèi)存管理技術(shù),仍然采用存儲器的分頁管理。

      什么是內(nèi)核?

      內(nèi)核是操作系統(tǒng)最基本的部分。它是為眾多應(yīng)用程序提供對計算機(jī)硬件的安全訪問的一部分軟件,這種訪問是有限的,并且內(nèi)核決定一個程序在什么時候?qū)δ巢糠钟布僮鞫嚅L時間。內(nèi)核,是一個操作系統(tǒng)的核心。是基于硬件的第一層軟件擴(kuò)充,提供操作系統(tǒng)的最基本的功能,是操作系統(tǒng)工作的基礎(chǔ),它負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動程序、文件和網(wǎng)絡(luò)系統(tǒng),決定著系統(tǒng)的性能和穩(wěn)定性。

      什么是Bootlonder? 答案一搜狗百科:啟動程序(英語:boot loader,也稱啟動加載器,引導(dǎo)程序)位于電腦或其他計算機(jī)應(yīng)用上,是指引導(dǎo)操作系統(tǒng)啟動的程序。引導(dǎo)程序啟動方式及程序視應(yīng)用機(jī)型種類而不同。BIOS開機(jī)完成后,bootloader就接手初始化硬件設(shè)備、創(chuàng)建存儲器空間的映射,以便為操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的軟硬件環(huán)境。BootLoader是依賴于硬件而實現(xiàn)的,特別是在嵌入式領(lǐng)域,為嵌入式系統(tǒng)建立一個通用的BootLoader是很困難的。

      答案二百度百科:Boot Loader 是在操作系統(tǒng)內(nèi)核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。通常,Boot Loader 是嚴(yán)重地依賴于硬件而實現(xiàn)的,特別是在嵌入式世界。因此,在嵌入式世界里建立一個通用的 Boot Loader 幾乎是不可能的。盡管如此,我們?nèi)匀豢梢詫?Boot Loader 歸納出一些通用的概念來,以指導(dǎo)用戶特定的 Boot Loader 設(shè)計與實現(xiàn)。

      使用帶uclinux操作系統(tǒng)的嵌入式系統(tǒng)應(yīng)該注意什么問題?

      uClinux的內(nèi)存管理

      uClinux同標(biāo)準(zhǔn)Linux的最大區(qū)別就在于內(nèi)存管理。對于uCLinux來說,其設(shè)計針對沒有MMU的處理器,不能使用處理器的虛擬內(nèi)存管理技術(shù),仍采用存儲器的分頁管理,系統(tǒng)在啟動時把實際存儲器進(jìn)行分頁。在加載應(yīng)用程序時程序分頁加載。這一點影響了系統(tǒng)工作的很多方面。

      uClinux系統(tǒng)對于內(nèi)存的訪問是直接的,所有程序中訪問的地址都是實際的物理地址。操作系統(tǒng)對內(nèi)存空間沒有保護(hù),各個進(jìn)程實際上共享一個運行空間。由于應(yīng)用程序加載時必須分配連續(xù)的地址空間,而針對不同硬件平臺的可一次成塊,分配內(nèi)存大小限制是不同,所以開發(fā)人員在開發(fā)應(yīng)用程序時必須考慮內(nèi)存的分配情況并關(guān)注應(yīng)用程序需要運行空間的大小。另外由于采用實存儲器管理策略,用戶程序同內(nèi)核以及其它用戶程序在一個地址空間,程序開發(fā)時要保證不侵犯其它程序的地址空間,以使得程序不至于破壞系統(tǒng)的正常工作,或?qū)е缕渌绦虻倪\行異常。

      從內(nèi)存的訪問角度來看,開發(fā)人員的權(quán)利增大了(開發(fā)人員在編程時可以訪問任意的地址空間),但與此同時系統(tǒng)的安全性也大為下降。uClinux的多進(jìn)程處理

      uClinux沒有MMU管理存儲器,在實現(xiàn)多個進(jìn)程時(fork調(diào)用生成子進(jìn)程)需要實現(xiàn)數(shù)據(jù)保護(hù)。uClinux的這種多進(jìn)程實現(xiàn)機(jī)制同它的內(nèi)存管理緊密相關(guān)。uClinux針對沒有mmu處理器開發(fā),所以被迫使用一種flat方式的內(nèi)存管理模式,啟動新的應(yīng)用程序時系統(tǒng)必須為應(yīng)用程序分配存儲空間,并立即把應(yīng)用程序加載到內(nèi)存。缺少了MMU的內(nèi)存重映射機(jī)制,uClinux必須在可執(zhí)行文件加載階段對可執(zhí)行文件reloc處理,使得程序執(zhí)行時能夠直接使用物理內(nèi)存。

      編程實現(xiàn)五個點的中值濾波和均值濾波

      clear all;t=0:0.01:1;f2=5;%生成一個正弦信號y; y1=1*sin(2*pi*f2*t);%y1=square(2*pi*f2*t);%向y中加入噪聲信號生成x;x1=y1+0.1*randn(1,101);figure(1)subplot(2,1,1);plot(t,y1,'r');title('生成一個正弦信號y');grid;legend y;subplot(2,1,2);plot(t, x1,'r');title('向y中加入噪聲信號生成x');grid;legend x;X=1:length(x1)for X=1:length(x1)z2=smooth(x1,5);%M=5時的均值濾波 end for X=1:length(x1)figure(2)plot(t,z1,'r');title('M=5時的均值濾波處理后的信號');grid;legend y;for X=1:length(x1)L2= median(x1,5);end figure(3)plot(t,L2,'r');title('M=5時的中值濾波處理后的信號');grid;legend y;

      第二篇:嵌入式 知識點總結(jié)

      1、嵌入式系統(tǒng)的特點:

      (1).嵌入式系統(tǒng)的個性化很強,軟件系統(tǒng)和硬件在不同的應(yīng)用中均有差異;(2).由通用計算機(jī)系統(tǒng)發(fā)展而來,根據(jù)應(yīng)用對軟硬件進(jìn)行裁剪;(3).高的可靠性,強的實用性;

      (4).高的耗電量直接影響系統(tǒng)的成本及電源壽命;

      2、什么是嵌入式系統(tǒng)?

      嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機(jī)技術(shù)為基礎(chǔ),采用可剪裁硬件,適用于對功能,可靠性,成本,體積,功耗等有嚴(yán)格要求的專用計算機(jī)系統(tǒng)。

      3、采用RISC架構(gòu)的ARM微處理器一般具有如下特點:(1).體積小、功耗低、成本低、性能高;

      (2).支持Thumb(16位)/ARM(3位)雙指令集,能很好地兼容8位/16位器件;(3).大量使用寄存器,指令執(zhí)行速度快;(4).大多數(shù)數(shù)據(jù)操作都在寄存器中完成;(5).尋址方式靈活簡單,執(zhí)行效率高;(6).采用固定長度的指令格式;

      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)入管理模式;(2).未定義指令異常時,處理器進(jìn)入未定義模式;

      (3).指令預(yù)取終止異常和數(shù)據(jù)訪問終止異常時,處理器進(jìn)入中止模式;(4).外部中斷請求時,處理器進(jìn)入外部中斷模式;(5).快速中斷請求時,處理器進(jìn)入快速中斷模式; 14.ARM運行狀態(tài):ARM狀態(tài)和Thumb狀態(tài);ARM指令必須在ARM狀態(tài)下執(zhí)行,同樣,Thumb指令也必須處于Thumb狀態(tài)下執(zhí)行。

      15.ARM狀態(tài)和Thumb狀態(tài)切換可以通過BX指令來實現(xiàn)。

      16.ARM指令集有5種形式的位移操作:LSL:邏輯左移;LSR:邏輯右移;ASR:算術(shù)右移;ROR:循環(huán)右移;RRX:帶擴(kuò)展的循環(huán)右移;

      17.立即數(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位);

      18.ARM指令的尋址方式及特點:(1)立即尋址;

      (2).寄存器偏移尋址;(3).寄存器偏移尋址;(4).寄存器間接尋址;(5).基址變址尋址;(6).多寄存器尋址;

      (7).堆棧尋址:滿遞增堆棧、空遞增堆棧、滿遞減堆棧、空遞減堆棧; 19.LDR和STR LDR指令:從內(nèi)存讀取數(shù)據(jù)裝入寄存器; STR指令:將寄存器中的數(shù)據(jù)存入內(nèi)存;

      20.CDP:是協(xié)處理器數(shù)據(jù)處理指令:用來執(zhí)行特定的數(shù)據(jù)操作; MCR:將ARM寄存器中的數(shù)據(jù)傳輸?shù)絽f(xié)處理器寄存器中;

      MRC:數(shù)據(jù)傳輸方向與MCR指令相反,它將協(xié)處理器寄存器中的數(shù)據(jù)傳送到ARM處理器寄存器中;

      21.ADR:小范圍的地址讀取偽指令,主要用來讀取基于PC相對偏移的地址或基于寄存器相對偏移的地址;

      LDR:大范圍偽地址讀取偽指令,用于加載32位的立即數(shù)或是一個地址值; 22.Thumb跳轉(zhuǎn)指令:

      B:是Thumb指令中唯一可以條件執(zhí)行的指令; BL:帶鏈接的長跳轉(zhuǎn);

      BX:指令在跳轉(zhuǎn)的同時,會選擇性的切換指令集; BLX:帶鏈接的跳轉(zhuǎn),并選擇性的切換指令集;

      23.MMU:其作用主要有2個方面:一是地址映射,負(fù)責(zé)將虛擬地址映射成物理地址;二是對地址訪問的保護(hù)和限制;提供硬件機(jī)制的內(nèi)存訪問授權(quán),大多數(shù)使用虛擬存儲器的系統(tǒng)都使用一種稱為分頁機(jī)制,虛擬地址空間劃分成大小相同的一組頁,每個頁有一個用來標(biāo)記它的頁號,而相應(yīng)的物理地址空間也被進(jìn)行劃分,單位幀、頁和頁幀的大小必須相同,虛擬地址被送往MMU,MMU將虛擬地址轉(zhuǎn)化為物理地址。

      24.進(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ù)字值;

      26.Linux進(jìn)程還可以通過exec系統(tǒng)調(diào)用產(chǎn)生; 27.Linux操作系統(tǒng)有三種進(jìn)程調(diào)度策略:(1).分時調(diào)度策略;(2).先到先服務(wù)的實時調(diào)度策略;(3).時間片輪的實時調(diào)度策略; 28.嵌入式文件系統(tǒng)分類:(1).基于Flash的文件系統(tǒng):

      JFFS2文件系統(tǒng);YAFFS文件系統(tǒng);Cramfs;Romfs;其他文件系統(tǒng);

      (2).基于RAM的文件系統(tǒng): RamDisk;Ramfs/Tmpfs(3).網(wǎng)絡(luò)文件系統(tǒng)NFS 29.Boot Loader 階段一:1.基本的硬件初始化:a.屏蔽所有中斷;b.設(shè)置CPU的速度和時鐘頻率;c.RAM初始化;d.初始化LED;30.ARM-Linux內(nèi)存管理原理:從兩方面入手:一是Linux內(nèi)核對內(nèi)存的管理(包括最重要的地址映射、內(nèi)存空間的分配以及地址訪問的限制,即保護(hù)機(jī)制);二是體系對內(nèi)存管理方面的特殊性;

      31.Linux虛擬內(nèi)存的實現(xiàn)需要6種機(jī)制的支持:地址映射機(jī)制、請求頁機(jī)制、內(nèi)存分配回收機(jī)制、緩存和刷新機(jī)制、交換機(jī)制和內(nèi)存共享機(jī)制; 32.Linux虛擬內(nèi)存實現(xiàn)機(jī)制間的相互關(guān)系:

      地址映射機(jī)制----請求頁機(jī)制----內(nèi)存分配和回收機(jī)制---交換機(jī)制----緩存和刷新機(jī)制

      33.進(jìn)程,又稱作任務(wù),是一個動態(tài)的執(zhí)行過程,是處于執(zhí)行期的程序,進(jìn)程是系統(tǒng)資源分配的最小單位。

      34.在Linux系統(tǒng)中,所有的進(jìn)程都是fork出來的,它們有個共同的祖先:0號進(jìn)程;

      35.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)程;

      36.進(jìn)程的銷毀通過以下三個事件驅(qū)動:正常的進(jìn)程結(jié)束、信號、exit函數(shù)的調(diào)用;

      37.進(jìn)程調(diào)度時機(jī)可分為:主動調(diào)度和被動調(diào)度;按細(xì)分的話:(1)進(jìn)程狀態(tài)轉(zhuǎn)換;(2)當(dāng)前進(jìn)程的時間片用完;(3)設(shè)備驅(qū)動程序;(4)進(jìn)程從中斷、異常以及系統(tǒng)調(diào)用返回到用戶態(tài); 38.選擇進(jìn)程的依據(jù):policy、priority、counter、rt_priority; 39.內(nèi)核模塊全稱為動態(tài)可加載內(nèi)核模塊,是Linux內(nèi)核向外部提供的一個插口,簡稱為模塊; 40.加載模塊有兩種方法:第一種是通過insmod命令手工將module載入內(nèi)核;第二種是根據(jù)需要載入module;kerneld的主要功能是module載入內(nèi)核和將它卸載出內(nèi)核; 41.中斷是一個流程,一般經(jīng)過三個環(huán)節(jié):中斷相應(yīng)、中斷處理、中斷返回;

      42.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)用;

      43.在UNIX系統(tǒng)下有兩種方式實現(xiàn)系統(tǒng)調(diào)用:通過經(jīng)過封裝的C庫或者直接調(diào)用;

      44.系統(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í)行性)文本; 46.存儲文件系統(tǒng)的設(shè)備稱為block設(shè)備(塊設(shè)備);

      47.設(shè)備驅(qū)動的接口API都是從文件管理器API中繼承下來的,所以這些設(shè)備API都有open().close().read().write().lseek()和ioctl()等與文件API類似的接口;

      48.Linux也使用文件管理器,但是它的文件管理器使用了VFS(虛擬文件系統(tǒng)),正是VFS讓Linux能夠支持目前多種文件系統(tǒng)。VFS具備訪問各種各樣的文件系統(tǒng)的能力,也是因為VFS在內(nèi)部去適應(yīng)各種不同文件系統(tǒng)的差異,而提供給用戶進(jìn)程的是統(tǒng)一的文件API。49.JFFS2嵌入式文件系統(tǒng)原理:

      首先JFFS2是一個日志結(jié)構(gòu)文件系統(tǒng),包含數(shù)據(jù)和元數(shù)據(jù)的節(jié)點在閃存上順序存儲。JFFS2定義了三種節(jié)點類型:JFFS2_NODETYPE_INODE, JFFS2_NODETYPE_DIRENT,JFFS2_NODETYPE_CLEANMARKER。JFFS2中I節(jié)點的信息并沒有全部存放在內(nèi)存,mount操作時,會為節(jié)點建立映射表,但是這個映射表并不全部存放在內(nèi)存中,存放在內(nèi)存中的節(jié)點信息是一個縮小尺寸的結(jié)構(gòu)體。JFFS2使用了多個級別的待回收塊隊列。JFFS2寫平衡策略是在垃圾收集中實現(xiàn)的,垃圾收集的時候會讀取系統(tǒng)時間,使用這個系統(tǒng)時間產(chǎn)生一個偽隨機(jī)數(shù)。利用這個偽隨機(jī)數(shù)結(jié)合不同的待回收鏈表選擇要進(jìn)行回收的鏈表。50.JFFS2克服了JFFS中以下缺點:

      (1).使用了基于哈希表的日志節(jié)點結(jié)構(gòu),大大加快了對節(jié)點的操作速度;(2).支持?jǐn)?shù)據(jù)壓縮;

      (3).提供了”寫平衡”支持;

      (4).支持多種節(jié)點類型(數(shù)據(jù)I節(jié)點,目錄I節(jié)點等);(5).提高了對閃存的利用率,降低了內(nèi)存的消耗;

      51.系統(tǒng)調(diào)用是操作系統(tǒng)內(nèi)核和應(yīng)用程序之間的接口,而設(shè)備驅(qū)動程序則是操作系統(tǒng)內(nèi)核和機(jī)器硬件之間的接口;

      52.Linux支持三類硬件設(shè)備:字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備; 53.Linux內(nèi)核設(shè)備模型的目的和功能:

      目的:設(shè)備模型提供獨立的機(jī)制表示設(shè)備,并表示其在系統(tǒng)中的拓?fù)浣Y(jié)構(gòu),這樣使系統(tǒng)具有以下優(yōu)點:代碼重復(fù)最??;提供如引用計數(shù)這樣的統(tǒng)一機(jī)制;列舉系統(tǒng)中所有設(shè)備,觀察其狀態(tài),查看其連接總線;用樹的形式將全部設(shè)備結(jié)構(gòu)完整、有效地展現(xiàn),包括所有總線和內(nèi)部連接;將設(shè)備和對應(yīng)驅(qū)動聯(lián)系起來,將設(shè)備按照類型分類;從樹的葉子向根的方向依次遍歷,確保以正確順序關(guān)閉各個設(shè)備的電源;初衷是為了節(jié)能,有助于電源管理,通過建立表示系統(tǒng)設(shè)備拓?fù)潢P(guān)系的樹結(jié)構(gòu),能夠在內(nèi)核中實現(xiàn)智能的電源管理;

      功能:將系統(tǒng)中的設(shè)備組織成層次結(jié)構(gòu),然后向用戶程序提供內(nèi)核數(shù)據(jù)結(jié)構(gòu)信息; 54.同步機(jī)制的分類及特點:

      (1).同步鎖:適用于保持時間段的情況,可以在任何上下文使用,不可以睡眠,任何時候,只能有一個持有者;

      (2).信號量:不能用在內(nèi)核之外,是一種睡眠鎖,適用于鎖會被長期持有的情況,允許多個持有者;

      (3).原子操作:在執(zhí)行完畢前絕不會被任何其他任何或時間打斷,是最小的執(zhí)行單位,主要用在資源計數(shù)上;

      (4).完成事件:適用于需要睡眠和喚醒的情景,不會引起資源競爭;

      55.表示字符設(shè)備的設(shè)備文件可以通過”ls-l”命令輸出的第一列中的“c”來識別,而塊設(shè)備則用“b”標(biāo)識;

      56.dev t是一個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è)備號; Struct cdev *i_cdev:字符設(shè)備在內(nèi)核中是用cdev結(jié)構(gòu)來表示的,此成員是指想cdev結(jié)構(gòu)的指針;

      57.I/O接口是微控制器必須具備的最基本外設(shè)功能。通常在ARM里,所有I/O都是通用的,稱為GPIO(通用輸入輸出);GPIO接口一般至少會有兩個寄存器,即控制寄存器和數(shù)據(jù)寄存器;

      58.同步外設(shè)接口是由摩托羅拉公司推出的一種高速的、全雙工、同步的串行總線; 59.SPI的工作模式有兩種:主模式和從模式;

      60.字符設(shè)備以字節(jié)為單位進(jìn)行讀寫,而塊設(shè)備則以塊為單位,塊設(shè)備的I/O請求都有對應(yīng)的緩沖區(qū)并使用了請求隊列對請求進(jìn)行管理,塊設(shè)備還支持隨機(jī)訪問,而字符設(shè)備只能順序訪問。Linux中每一個塊設(shè)備里請求都有一個I/O請求隊列,每個請求隊列都有調(diào)度器的插口。

      61.Bio是底層對部分塊設(shè)備的I/O請求描述,其包含了驅(qū)動程序執(zhí)行請求所需的全部信息,通常一個I/O請求對應(yīng)一個bio。I/O調(diào)度器可將聯(lián)系的bio合并成一個請求。

      62.MMC/SD卡驅(qū)動結(jié)構(gòu):a.文件結(jié)構(gòu);b.塊設(shè)備驅(qū)動;c.MMC/SD核心;d.MMC/SD接口;

      第三篇:嵌入式系統(tǒng)設(shè)計的最后知識點總結(jié)

      系統(tǒng)概念

      1、嵌入式系統(tǒng)的定義?

      以應(yīng)用為中心、以計算機(jī)技術(shù)為基礎(chǔ)、軟硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機(jī)系統(tǒng)。“嵌入”、“專用”、“計算機(jī)”

      2、嵌入式系統(tǒng)的軟、硬件組成?以及主要特點?

      軟件:從底層到上層:bootloader等系統(tǒng)初始化引導(dǎo)程序、設(shè)備驅(qū)動層(包括驅(qū)動程序、板級支持包BSP等)、操作系統(tǒng)、用戶應(yīng)用程序。(底層為上層提供服務(wù))開發(fā)軟件:即集成開發(fā)環(huán)境(asemmbler&&compiler&&linker&&debugger&&loader)硬件組成:核心板+外圍板+外設(shè)(核心板:微控制器(CPU和外設(shè)接口、外設(shè)控制器)、電源、時鐘、復(fù)位、SDRAM、flash。外圍板面向外圍設(shè)備,一般是引腳的集合、電平轉(zhuǎn)換電路。外圍設(shè)備。),當(dāng)然也可以將核心板和外圍板放在一起。

      硬件特點:通常由嵌入式處理器和嵌入式外圍設(shè)備組成,高度集成,常采用SOC設(shè)計方法,對功耗、體積等有嚴(yán)格要求,定制性決定了它的可裁剪性,沒有像計算機(jī)領(lǐng)域的壟斷,解決方案不唯一。

      軟件特點:采用交叉開發(fā)方式,系統(tǒng)軟件層次分明,操作系統(tǒng)為用戶程序提供標(biāo)準(zhǔn)API,提供圖形接口和文件系統(tǒng)。用戶調(diào)用系統(tǒng)服務(wù),系統(tǒng)調(diào)用設(shè)備驅(qū)動從而操縱硬件。

      3、嵌入式系統(tǒng)產(chǎn)品設(shè)計的基本流程?

      需求分析

      功能性需求是系統(tǒng)的基本功能,如輸入輸出信號、操作方式等;

      非功能性需求包括系統(tǒng)性能、成本、功耗、體積、重量等因素。規(guī)格說明

      精確地反映客戶的需求并且作為設(shè)計時必須明確遵循的要求。體系結(jié)構(gòu)設(shè)計

      描述系統(tǒng)如何實現(xiàn)所述的功能和非功能需求,包括對硬件、軟件和執(zhí)行裝置的功能劃分以及系統(tǒng)的軟件、硬件選型等。

      軟硬件設(shè)計

      基于體系結(jié)構(gòu),對系統(tǒng)的軟件、硬件進(jìn)行詳細(xì)設(shè)計。系統(tǒng)集成

      把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,進(jìn)行調(diào)試,發(fā)現(xiàn)并改進(jìn)單元設(shè)計過程中的錯誤。系統(tǒng)測試

      對設(shè)計好的系統(tǒng)進(jìn)行測試,看其是否滿足規(guī)格說明書中給定的功能要求。

      4、處理器及操作系統(tǒng)的選型主要考慮哪些方面?

      ① 操作系統(tǒng)本身所提供的開發(fā)工具。② 操作系統(tǒng)向硬件接口移植難度。

      ③ 操作系統(tǒng)的內(nèi)存要求。④ 開發(fā)人員是否熟悉此操作系統(tǒng)及其提供的系統(tǒng)API。⑤ 操作系統(tǒng)是否提供硬件的驅(qū)動程序,如網(wǎng)卡驅(qū)動程序等。⑥ 操作系統(tǒng)的是否具有可剪裁性。⑦ 操作系統(tǒng)是否具有實時性能。

      5、交叉開發(fā)、交叉開發(fā)環(huán)境?為何需要交叉開發(fā)環(huán)境? 在一臺通用計算機(jī)(宿主機(jī))上進(jìn)行軟件的編輯編譯,然后下載到嵌入式設(shè)備(目標(biāo)機(jī))中運行調(diào)試的開發(fā)方式

      交叉開發(fā)環(huán)境一般由運行于宿主機(jī)上的交叉開發(fā)軟件(assembler&&compiler&&linker&&debugger&&loader)、宿主機(jī)到目標(biāo)機(jī)的調(diào)試通道組成 需要交叉開發(fā)環(huán)境是因為目標(biāo)機(jī)一般對體積、功耗等有嚴(yán)格限制,資源也面向應(yīng)用,較為緊張,要求僅僅能流暢運行代碼即可,而將用戶開發(fā)軟件(包括各種庫、工具)放置在主機(jī)上,而且現(xiàn)在的集成開發(fā)環(huán)境提供了各種修改好的功能庫,用起來也方便。

      6、嵌入式集成開發(fā)環(huán)境的主要功能?

      這是由其組成決定的。Assembler將.c源代碼匯編,compiler形成目標(biāo)文件,linker根據(jù)鏈接描述文件將各個目標(biāo)代碼鏈接定位生成可執(zhí)行代碼。Debugger有些交叉開發(fā)工具提供了仿真調(diào)試通道。Loader可以將目標(biāo)文件燒錄進(jìn)設(shè)備中(有時需要內(nèi)部引導(dǎo)代碼的配合)

      7、嵌入式Linux 開發(fā)主要流程?

      搭建開發(fā)環(huán)境--燒寫bootloader--燒寫內(nèi)核--燒寫根文件系統(tǒng)--燒寫應(yīng)用程序。

      開發(fā)環(huán)境:REDHAT-LINUX、下載相應(yīng)的GCC 交叉編譯器進(jìn)行安裝、配置開發(fā)主機(jī)(配置MINICOM和配置網(wǎng)絡(luò),MINICOM 軟件的作用是作為調(diào)試嵌入式開發(fā)板信息輸出的監(jiān)視器和鍵盤輸入的工具,配置網(wǎng)絡(luò)主要是配置IP地址、NFS 網(wǎng)絡(luò)文件系統(tǒng),需要關(guān)閉防火墻)

      燒寫bootloader 下載一些公開源代碼的BOOTLOADER根據(jù)自己具體芯片進(jìn)行移植修改。下載時,有些芯片沒有內(nèi)置引導(dǎo)裝載程序,比如三星的ARM7、ARM9 系列芯片,這樣就需要編寫燒寫開發(fā)板上flash 的燒寫程序。

      或者網(wǎng)絡(luò)上有免費下載的WINDOWS 下通過JTAG 并口簡易仿真器燒寫ARM 外圍flash 芯片的程序。也有LINUX 下公開源代碼的J-FLASH 程序。

      下載內(nèi)核

      如果有專門針對你所使用的CPU 移植好的LINUX 操作系統(tǒng)那是再好不過,下載后再添加自己的特定硬件的驅(qū)動程序,進(jìn)行調(diào)試修改。下載根文件系統(tǒng)

      從004km.cnplete...*/

      OSIntExitY

      = OSUnMapTbl[OSRdyGrp];

      /*...and not locked.*/

      OSPrioHighRdy

      =

      (INT8U)((OSIntExitY

      <<

      3)

      + OSUnMapTbl[OSRdyTbl[OSIntExitY]]);

      if(OSPrioHighRdy!= OSPrioCur){

      /* No Ctx Sw if current task is highest rdy

      */

      OSTCBHighRdy = OSTCBPrioTbl[OSPrioHighRdy];//找就緒態(tài)的最高優(yōu)先級,并找到相應(yīng)TCB。

      OSCtxIntCtr++;

      /* Keep track of the number of context switches */

      OSIntCtxSw();

      //調(diào)用中斷級的任務(wù)調(diào)度函數(shù)

      /* Perform interrupt level context switch

      */

      }

      }

      OS_EXIT_CRITICAL();}

      中斷級任務(wù)切換函數(shù)

      執(zhí)行出棧指令之后還用中斷返回指令?沒有包含關(guān)系?模式(代碼分析)?

      OSIntCtxSw;post FIQ Context switcher.This is called from OSIntExit when a hooked ISR;wants to return in the context of another task.We load the new tasks context;(from OSPrioHighRdy)and do the return from interrupt.;;Get pointer to stack where ISR_FiqHandler saved interrupted context

      ;ISR entry only saves

      找到異常模式堆棧,它只保存了.first seven regs and LR

      #16?

      add

      r7, sp, #16

      ;save pointer to register file(point to r0)LDR

      sp, =IRQStack;FIQ_STACK;test to del it意義?

      ;Change ARM CPU to SVC mode for stack operations.將CPU切換至管理模式,以操作不同模式的堆棧。

      ;This gets the CPU off the interrupt stack and back to the

      ;interrupted task's stack, which is the one we want to alter.;mrs

      r1, SPSR

      ;get suspended PSR orr

      r1, r1, #0xC0

      ;disable IRQ, FIQ.msr

      CPSR_cxsf, r1

      ;switch mode(shold be SVC_MODE)

      ;PSR, SP, LR regs are now restored to the interrupted SVC_MODE.;now set up the task's stack frame as OS_TASK_SW does...將進(jìn)入IRQ異常的時候保存的上下文,從IRQ棧中賦值到SVC棧中

      ldr

      r0, [r7, #52]

      ;get IRQ's LR(tasks PC)from IRQ stack

      sub

      r0, r0, #4

      ;Actual PC address is(saved_LR-4)STMFD

      sp!, {r0}

      ;save task PC放入管理模式棧中 STMFD

      sp!, {lr}

      ;save LR

      mov

      lr, r7

      ;save FIQ stack ptr in LR(going to nuke r7)

      ldmfd

      lr!, {r0-r12}

      ;get saved registers from FIQ stack STMFD

      sp!, {r0-r12}

      ;save registers on task stack

      ;save PSR and PSR for task on task's stack MRS

      r4, CPSR

      ;OSPrioCur = OSPrioHighRdy

      // change the current process LDR

      r4, addr_OSPrioCur LDR

      r5, addr_OSPrioHighRdy bic

      r4, r4, #0xC0;leave interrupt bits in enabled mode STMFD

      sp!, {r4} MRS

      r4, SPSR STMFD

      sp!, {r4}

      ;save task's current PSR;SPSR too

      LDRB

      r6, [r5] STRB

      r6, [r4]

      ;Get preempted tasks's TCB LDR

      r4, addr_OSTCBCur LDR

      r5, [r4]

      ;store sp in preempted tasks's TCB STR

      sp, [r5]

      ;Get new task TCB address LDR LDR LDR

      r6, addr_OSTCBHighRdy

      r6, [r6]

      sp, [r6]

      ;get new task's stack pointer;OSTCBCur = OSTCBHighRdy STR r6, [r4]

      ;set new current task TCB address

      LDMFD sp!, {r4} MSR

      SPSR, r4 LDMFD sp!, {r4} BIC

      r4,r4,#0xC0;we must exit to new task with ints enabled MSR

      CPSR, r4

      LDMFD

      sp!, {r0-r12, lr, pc}

      時鐘節(jié)拍中斷服務(wù)子程序

      Void OSTickISR(void){

      保存處理器寄存器的值;

      調(diào)用OSIntEnter(),或是將OSIntNesting加1

      if(OSIntNesting==1){

      OSTCBCur->OSTCBStkPtr=SP;

      }

      調(diào)用OSTimeTick();

      功能根據(jù)鏈表遍歷每個TCB,將非零的延時值--,有減到零,若非suspend狀態(tài),則置就緒位。

      清發(fā)出中斷設(shè)備的中斷;

      重新允許中斷(可選用)

      調(diào)用OSIntExit();

      恢復(fù)處理器寄存器的值;

      執(zhí)行中斷返回指令;

      } 中斷節(jié)拍函數(shù) void OSTimeTick(void){

      OS_TCB *ptcb;

      OSTimeTickHook();

      /*OS_CFG中#define OS_CPU_HOOKS_EN

      1*/

      ptcb = OSTCBList;

      (2)

      while(ptcb->OSTCBPrio!= OS_IDLE_PRIO){

      (3)

      OS_ENTER_CRITICAL();

      if(ptcb->OSTCBDly!= 0){

      if(--ptcb->OSTCBDly == 0){

      if(!(ptcb->OSTCBStat & OS_STAT_SUSPEND)){

      (4)/ SUSPEND,則不能就緒,OSRdyGrp

      |= ptcb->OSTCBBitY;

      (5)

      否則就緒到

      OSRdyTbl[ptcb->OSTCBY] |= ptcb->OSTCBBitX;

      } else {

      ptcb->OSTCBDly = 1;

      }

      }

      }

      ptcb = ptcb->OSTCBNext;

      OS_EXIT_CRITICAL();

      }

      OS_ENTER_CRITICAL();

      (6)

      OSTime++;

      (7)累加從開機(jī)以來的時間,用的是一個無符號32位變量

      OS_EXIT_CRITICAL();}

      任務(wù)控制塊初始化函數(shù)OS_TCBInit()在創(chuàng)建任務(wù)時調(diào)用,它獲得TCB控制塊并對其進(jìn)行初始化,并讓對應(yīng)任務(wù)就緒,完成任務(wù)創(chuàng)建的大部分任務(wù)。

      Delay()和節(jié)拍中斷的對應(yīng)關(guān)系

      Delay函數(shù)是自行掛起,等待延時時間到的函數(shù),它的功能就設(shè)置TCB中的延時值,清除自己的就緒位。而在每個節(jié)拍中斷處理函數(shù)中,會將延時值--。減到零時重新就緒。并在中斷退出時進(jìn)行任務(wù)切換,有可能再次得到CPU的運行權(quán)。

      第四篇:哈工大ARM嵌入式系統(tǒng)考試知識點總結(jié)

      接VIC部分

      一旦產(chǎn)生IRQ中斷,微控制器切換到IRQ模式,并跳轉(zhuǎn)到向量表0x0018地址執(zhí)行指令。一旦產(chǎn)生FIQ中斷,微控制器切換到FIQ模式,并跳轉(zhuǎn)到向量表0x001C地址執(zhí)行指令,然后跳轉(zhuǎn)到FIQ_Handler代碼段。

      第五篇:嵌入式系統(tǒng)復(fù)習(xí)總結(jié)

      嵌入式系統(tǒng)復(fù)習(xí)總結(jié)

      一、嵌入式系統(tǒng)的概述

      1.嵌入式系統(tǒng)的定義:嵌入到對象中的專業(yè)計算機(jī) 2.三大特點:嵌入型、專業(yè)性、計算機(jī)系統(tǒng) 3.組成:軟件、硬件

      4.結(jié)構(gòu)層次:應(yīng)用程序、嵌入式系統(tǒng)實時操作系統(tǒng),硬件抽象層、嵌入式系統(tǒng)硬件工作平臺

      5.分類:MCU、EMPU、DSP、CPLDFPGA、SoC

      二、51單片機(jī)

      1.單片機(jī)的特點:體積小、控制功能強、可靠性高、易擴(kuò)展易產(chǎn)品化、性能價格比高、需要開發(fā)裝置

      2.51單片機(jī)的組成:CPU、64KB數(shù)據(jù)存儲器、4KB程序存儲器、兩個16位定時計數(shù)器、5個中斷源、P0~P3 4個并行IO口、4個串行

      3存儲其結(jié)構(gòu)特點:內(nèi)、外數(shù)據(jù)存儲器,內(nèi)、外程序存儲器 程序存儲器,內(nèi)外統(tǒng)一編制,地址重合區(qū)由EA決定,EA=1訪問外部,EA=0訪問內(nèi)部,內(nèi)部數(shù)據(jù)存儲器:00H~20H由32個寄存器組成,每八個一組,21H~2FH位尋址區(qū),30H~FFH用戶存儲區(qū),內(nèi)外存儲地址有指令區(qū)分MOVSMOV SFR特殊功能寄存器:ACC、B、SP、DPTR、PSW、IO宿存器 4.CPU時序電路:振蕩周期(1)、狀態(tài)周期(2)、機(jī)器周期(12)、指令周期、CPU訪問指令時兩次讀指令,訪問外部程序存儲器是ALE兩次有效,S1P2S4P2,4.單片機(jī)的引腳功能:PSEN,ALEPROG,EA 5.輸入輸出口結(jié)構(gòu):p0準(zhǔn)雙向口,每位可帶8個LSTTTL負(fù)載,輸出需要上拉電阻(準(zhǔn)雙向原因:作為輸出口,要給鎖存器1,屏蔽兩個二極管)

      p1、p2均為準(zhǔn)雙向口,帶四個負(fù)載,p1也需要上拉電阻,p2自帶電阻,p2控制信號為1時輸出高八位地址 p3每個位有特殊定義 6.單片機(jī)的尋址方式:

      直接尋址:SFR尋址均為直接尋址

      寄存器尋址:乘法指令中B寄存器為寄存器尋 立即數(shù)尋址:

      寄存器間接尋址:R0,R1 變址尋址:注意PC變址不改變PC值,DPTR變址可以隨意到任意位置取數(shù)

      相對變址尋址:調(diào)轉(zhuǎn)指令 位尋址 7.單片機(jī)指令:(1)數(shù)據(jù)傳送類指令:MOVMOVXMOVC,XCHXCHDSWAP,PUSHPOP(2)數(shù)據(jù)傳送類指令:

      ADDADDCINC,SUBBDEC,MUL(低位A,高位B),DIV(商A,余數(shù)B)

      (3)邏輯類指令:

      ANL,ORL,XRL, RL,RR,RLC,RRC, CPL(按位取反),CLR(請位)

      (4)轉(zhuǎn)移類指令

      AJMP,LJMP,SJMP,JMP.JZ.JNZ,CJNE,CJE,DJNZ(5)位轉(zhuǎn)移指令

      JC rel ;若CY=1,則PC ←PC+ 2 + rel ;若CY=0,則PC ←PC+ 2 JNC rel ;若CY=0,則PC ←PC+ 2 + rel ;若CY=1,則PC ←PC+ 2 JB bit,rel ;若(bit)=1,則PC ←PC+ 3 + rel ;若(bit)=0,則PC ←PC+ 3 JNB bit,rel ;若(bit)=0,則PC ←PC+ 3 + rel ;若(bit)=1,則PC ←PC+ 3 JBC bit,rel ;若(bit)=1,則PC ←PC+ 3 + rel,bit←0 ;若(bit)=0,則PC ←PC+ 3 8.程序設(shè)計:

      冒泡法,BCD轉(zhuǎn)2進(jìn)制,2進(jìn)制轉(zhuǎn)BCD,ASCALL轉(zhuǎn)2進(jìn)制 9.偽指令:ORG,EQU 10.中斷系統(tǒng)

      兩個外部中斷INT0、1,兩個定時器中斷TI0、TI1,串口中斷

      中斷系統(tǒng)的組成:TCON,SCON,IE,IP

      中斷響應(yīng)的條件:

      有中斷請求; EA=1;

      IE相應(yīng)的中斷位為1;CPU執(zhí)行指令最后一個周期;

      CPU沒有執(zhí)行同級或者更高級的中斷指令; CPU不執(zhí)行RET,RETI或者讀取IEIP的指令

      中斷響應(yīng)的過程:

      ①置位相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器,清除相應(yīng)的中斷請求標(biāo)志(TI和RI除外);

      ②由硬件自動生成一條長調(diào)用指令LCALL,將斷點地址(當(dāng)前PC值)壓入堆棧加以保護(hù);

      ③將中斷入口地址裝入PC,使程序轉(zhuǎn)向執(zhí)行中斷服務(wù)程序。中斷響應(yīng)時間為3~8個機(jī)器周期

      中斷相應(yīng)返回時: 將優(yōu)先狀態(tài)觸發(fā)器置0; 將返回地址送至PC返回

      定時器中斷自動清除標(biāo)志位 外部中斷:

      (1)電平觸發(fā)外部清除,或者軟件清除(2)邊緣觸發(fā)自動清除 串行口中斷軟件清除

      10.定時器中斷:TCON,80H設(shè)置(T0低位,T1高位)

      工作方式0:13位計數(shù)TH位高八位TL低五位表示低五位,工作方式1:16位計數(shù)

      工作方式2:8位計數(shù),TL方初值,TH計數(shù)

      工作方式3: TL0不變可做定時計數(shù),用T0的一套,TH0只能定時用T1的一套。T1為方式3時不工作 11.利用定時中斷溢出編程

      (1)產(chǎn)生方波信號(方波信號的嵌套)

      ①設(shè)置TMOD控制字,確定工作方式;

      ②計算計數(shù)初值并裝入計數(shù)值寄存器TH0(1)、TL0(1); ③若使用中斷系統(tǒng),則開中斷EA=

      1、ET0或ET1=1; ④啟動定時器/計數(shù)器工作(置TR0或TR1)。(2)外部中斷的擴(kuò)展(查詢方式,將初值設(shè)置為最大)

      禁止中斷;JBC 12.串行口波特率的計算

      方式0:固有頻率的12分之一

      方式1、3:與三相同與T

      1fOSC2SMOD??的益處時間有關(guān) 3212?2n?x?? 方式2:固有頻率的64分之一

      三、ARM單片機(jī)

      (1)兩種工作狀態(tài):ARM狀態(tài)(32位)、THUM狀態(tài)(16位)

      工作狀態(tài)的切換:BX RN 寄存器最后一位是0切換ABM狀態(tài),最后一位是1切換到THUM狀態(tài)

      (2)七種工作模式:用戶模式、系統(tǒng)模式、管理模式、外部中斷模式、快速中斷模式、未定義指令模式、數(shù)據(jù)訪問中止模式

      后五個屬于“異常模式”,后六屬于“特權(quán)模式”

      (3)ARM7的流水式作業(yè):取指——譯碼——執(zhí)行

      采用馮諾依曼存儲結(jié)構(gòu) ARM9流水式作業(yè):取指——譯碼——執(zhí)行——訪存——回寫 采用哈佛結(jié)構(gòu)

      (4)存儲其結(jié)構(gòu)(37個寄存器)

      31個通用寄存器、6個標(biāo)志位寄存器 1.R0~R7八個通用寄存器(7種模式通用)2.R8~R12前六種公用,最后一種自己用一組 3.R13:堆棧指針

      R14:子程序連接寄存器(子程序調(diào)用時自動將下一條地址送給R14),這兩個寄存器用戶模式、系統(tǒng)模式公用一組,異常模式每種各一組 4.R15,:PC計數(shù)器

      5.CPSR:程序狀態(tài)寄存器 N.V.C.Z.Q.I.F.T.M4~M0 6.SPSR:程序狀態(tài)備用寄存器,調(diào)用子程序?qū)?dāng)前CPSR復(fù)制給SPSR,用戶模式與系統(tǒng)模式?jīng)]有,異常模式每種一組。

      (5)存儲類型;

      數(shù)據(jù)類型三種:8位字節(jié)、16位半字、32位字

      指令類型:16位THUM、32位ARM 大端格式:與正常存儲方式相反

      小端格式:高字節(jié)對應(yīng)高地址,低字節(jié)對應(yīng)低地址(6)多級存儲形式:寄存器組、片上RAM、CASHE、主存儲器

      (7)異常:(其中異常模式類似于中斷)1.種類:按優(yōu)先級排列

      復(fù)位、數(shù)據(jù)中止、FIQ、IRQ、指令預(yù)取終止、未定義指令終止、SWI(軟件中止)2.異常的相應(yīng)過程:

      保護(hù)返回地址:將下一條地址復(fù)制到LR子程序連接寄存器中;

      保護(hù)當(dāng)前狀態(tài)寄存器的值:復(fù)制CPSR至將要執(zhí)行模式的SPSR;

      強行設(shè)置異常模式下CPSR的值;

      強制PC從中斷向量地址取出指令執(zhí)行;

      可以設(shè)置中斷禁止位;

      3.中斷的返回

      將返回的值寫入PC中

      恢復(fù)CPSR的值

      清除沖斷禁止位

      4.異常返回地址的確定(LR 在復(fù)制時已自動減4)

      (1)軟件中止:直接返回(2)未定義指令:直接返回

      (3)FIQ、IRQ、指令預(yù)取中止:均減四返回

      (4)數(shù)據(jù)中止:減八返回

      (8)尋址方式

      立即尋址:MOV R0, #0xFF00(8位位圖)寄存器尋址:MOV R2, R3 寄存器移位尋址:MOV R0, R1, LSL#4(6種類型的移位操作)

      寄存器間接尋址:LDR R1,[R2] 變址尋址:LDR R0, [R1,#8](前變址尋址);

      LDR R0, [R1,#8]!(自動變址尋址); LDR R0, [R1], #2(后變址尋址)

      堆棧尋址:STMFD SP!, {R4-R7, LR}(4種類型的堆棧操作)塊復(fù)制尋址:LDMIA R1!,{R2-R4,R5}(4種塊復(fù)制尋址操作)

      相對尋址:BL SUBR(9)指令集: 數(shù)據(jù)傳送:MOV、MVN 算術(shù)運算:ADD、ADC、SUB、SBC、RSB、RSC、MUL、MLA、UMULL、UMLAL、SMULL、SMLAL 邏輯運算:AND、ORR、EOR、BIC 比較和測試:CMP、CMN ARM程序狀態(tài)訪問指令:MSR ARM存儲器訪問指令

      單一數(shù)據(jù):LDR、STR、LDRB、STRB 批量數(shù)據(jù):LDM、STM(IA、IB、DA、DB)數(shù)據(jù)交換:SWP ARM分支指令:B、BL、BX(10)偽指令與程序設(shè)計 1.偽指令

      ADR:小范圍加載指令,將相對偏移量加載到某個寄存器中,只能用一條指令來實現(xiàn),若不能用一條指令來實現(xiàn)則編譯錯誤

      ADRL:中范圍加載指令,將PC的相對偏移量加載到某個寄存器中,必須用兩條指令來實現(xiàn),LDR:將某個32位偏移量加載到寄存器中

      聲明變量:

      全局變量:GBLA,GBLL,GBLS 局部變量:LCLA,LCLL,LCLS 變量賦值:SETA,SETL,SETS 聲明寄存器列表:RLIST 數(shù)據(jù)定義偽指令:DCB DCDU DCWU 分配一塊字節(jié)內(nèi)存單元偽操作SPACE(%)格式:標(biāo)號 SPACE expr 或 標(biāo)號 % expr 聲明數(shù)據(jù)緩沖池(文字池)偽操作LTORG 格式: LTORG 段指示偽操作AREA 格式:AREA 段名 {,屬性1} {,屬性2}… 程序入口偽操作ENTRY 格式:ENTRY(11)基本ATPCS規(guī)則

      1.子程序調(diào)用過程中寄存器的使用規(guī)則

      子程序間通過寄存器R0~R3來傳遞參數(shù)

      在子程序中,使用寄存器R4~R11來保存局部變量 寄存器R12用作子程序內(nèi)部調(diào)用的scratch寄存器 寄存器R13用作數(shù)據(jù)棧指針,記作sp或SP 寄存器R14用作鏈接寄存器,記作lr或LR 寄存器R15是程序計數(shù)器,記作pc或PC。2.數(shù)據(jù)棧的使用規(guī)則;

      數(shù)據(jù)棧為滿遞減FD類型,并對數(shù)據(jù)棧的操作是8字節(jié)對齊的

      3.參數(shù)的傳遞規(guī)則。

      (a)參數(shù)個數(shù)可變的子程序參數(shù)傳遞規(guī)則

      (b)參數(shù)個數(shù)固定的子程序參數(shù)傳遞規(guī)則(c)子程序結(jié)果返回規(guī)則

      四、存儲器與接口技術(shù)

      1.SRAM:靜態(tài)隨機(jī)訪問存儲

      (1)組成:地址線、數(shù)據(jù)線、讀寫控制、片選信號線(2)工作原理:讀寫均先輸送地址,在進(jìn)行數(shù)據(jù)的輸入和輸出

      (3)SRAM與CPU的鏈接: 2.DRAM:

      有行地址和列地址,工作時有地址鎖存器,先輸送行地址在輸送列地址,選中單元后輸送單元,讀數(shù)據(jù)時需要刷新電路

      3.SDRAM:與SRAM相比多了同步時鐘信號,同時增添了BLOCK,地址分行地址、列地址,也需要刷新電路,BLOCK為最大讀寫單元,引腳BA選擇塊兒 4.FLASH:

      (1)NOR FLASH:存儲容量絞小,讀速度較快,采用線性尋址,可直接找到存儲位置

      (2)HAND FLASH:存儲密度大,寫入和擦除速度較快,有BLOCK存儲單元,有塊兒地址,頁地址,頁內(nèi)地址,數(shù)據(jù)地址線復(fù)用,傳送地址需要四個周期

      5.MCS-51單片機(jī)

      P0口作為地址線低八位和數(shù)據(jù)線,所以需要地址鎖存器,p0口分時復(fù)用,由ALE管理,P2輸出地址高八位,PSEN接程序存儲器使能端OE 進(jìn)行存儲其擴(kuò)展時可用與門或者先選來鏈接存儲器片選信號進(jìn)行擴(kuò)展。

      鏈接程序存儲器數(shù)據(jù)存儲器復(fù)用時,將PSEN 與RD相與和選通相連連 6.ARM(S3C2410)存儲機(jī)制:

      (1)與SRAM、DRAM相連(2)高速存儲機(jī)制:CASHE(3)NMUI 接口設(shè)計:

      (1)HAND FLASH啟動:將地址前4KB 的代碼作為啟動代碼

      (2)ROM啟動: 可選擇16位或者32位的存儲器,通過M1、M0進(jìn)行選擇 在與存儲器進(jìn)行連接時,注意地址線,若存儲器為8位直接位位對應(yīng),16位是錯開一位,32位時錯開兩位 7.接口 1.RS-232C 信號電平與邏輯

      RS-232C信號采用負(fù)邏輯,即以+12V電平視為邏輯“0”,-12V電平視為邏輯“1”

      串行接口電路中需要在TTL標(biāo)準(zhǔn)與RS-232C標(biāo)準(zhǔn)之間進(jìn)行電平轉(zhuǎn)換 2.SPI接口

      總線定義及信號線構(gòu)成 傳輸技術(shù):同步、全雙工

      SPI采用同步、全雙工串行傳輸技術(shù),也稱為同步串行總線接口;SPI總線(Serial Peripheral Interface)稱為串行外圍設(shè)備接口 3.USB 總線定義及信號線構(gòu)成,半雙工傳輸 三種設(shè)備Host、Device和HUB USB(Universal Serial Bus)即通用串行總線,主要用于PC與外圍設(shè)備互連。USB的輸出特性是差分驅(qū)動、支持半雙工方式,接收采用差分接收 USB體系結(jié)構(gòu)中包括三種設(shè)備 Host(即主控制器)Device(設(shè)備)

      HUB(集線器,也是設(shè)備)4.I2C總線

      總線定義及信號線構(gòu)成,信號線連接方式 總線仲裁

      I2C總線定義了兩根傳輸線:SDA(串行數(shù)據(jù))和SCL(串行時鐘),都是雙向傳輸線,通過電阻上拉到正電源,總線空閑時都是高電平5.I2S總線

      總線定義及信號線構(gòu)成 數(shù)據(jù)傳輸格式

      I2S總線(Inter-IC Sound Bus集成電路內(nèi)置音頻總線 串行數(shù)據(jù)高位MSB在先,發(fā)送器和接收器可以有不同的字長無論有多少位有效數(shù)據(jù),最高位MSB總是出現(xiàn)在IISLRCK變化后的第二個IISCLK脈沖處。MSB位置固定,LSB位置取決于字長。這就使得接收端與發(fā)送端可以不同的有效位數(shù)。如果接收端能處理的有效位數(shù)少于發(fā)送端的,則可以放棄數(shù)據(jù)幀中多余的低位數(shù)據(jù);如果接收端能處理的有效位數(shù)多于發(fā)送端的,則剩余低位自行補0。這種同步機(jī)制使得數(shù)字音頻設(shè)備的互連更加方便,而且不會造成數(shù)據(jù)錯位

      下載嵌入式系統(tǒng)相關(guān)知識點總結(jié)word格式文檔
      下載嵌入式系統(tǒng)相關(guān)知識點總結(jié).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        嵌入式系統(tǒng)復(fù)習(xí)總結(jié)

        一、嵌入式系統(tǒng)定義:以應(yīng)用中心,以計算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機(jī)系統(tǒng)。二、硬件設(shè)計的步驟:1需求和功能......

        ARM嵌入式基礎(chǔ)教程知識點總結(jié)

        1、舉出書本中未提到的嵌入式在每種異常模式下都有一個對統(tǒng):嵌入式μCLinux、Windows 系統(tǒng)的例子:紅綠燈控制,數(shù)字應(yīng)的物理寄存器——程序狀態(tài)CE、VxWorks、μC/OS-II 空調(diào),......

        嵌入式系統(tǒng)實驗報告

        嵌入式系統(tǒng)實驗報告 學(xué)號: 姓 名: 班 級:13電子信息工程指導(dǎo)老師: 蘇州大學(xué) 電子信息學(xué)院 2016年12月 實驗一:一個燈的閃爍 1、實驗要求 實現(xiàn)PF6-10端口所連接的任意一個LED燈......

        嵌入式系統(tǒng)調(diào)查報告

        “嵌入式系統(tǒng)在企業(yè)中的應(yīng)用”調(diào)查報告 工學(xué)院范裕婷內(nèi)容提要:現(xiàn)今,全過程自動化產(chǎn)品制造、大范圍電子商務(wù)活動、高度協(xié)同科學(xué)實驗以及現(xiàn)代化家庭起居,是嵌入式系統(tǒng)在企業(yè)中應(yīng)......

        嵌入式系統(tǒng)發(fā)展趨勢

        未來嵌入式系統(tǒng)的發(fā)展趨勢 在網(wǎng)絡(luò)、通信、微電子發(fā)展的基礎(chǔ)上,以及勢不可擋的數(shù)字化信息產(chǎn)品的強大需求推動下,嵌入式技術(shù)具有廣闊的發(fā)展創(chuàng)新空間。 (1)低功耗、高性能、高可......

        嵌入式系統(tǒng)實驗

        南京信息工程大學(xué) 實驗(實習(xí))報告 實驗(實習(xí))名稱電機(jī)轉(zhuǎn)動控制及中斷實驗 實驗(實習(xí))日期2016.5 得分 指導(dǎo)教師 謝勝東學(xué)院 計算機(jī)與軟件 專業(yè) 計算機(jī)科學(xué)與技術(shù) 年級2013......

        嵌入式系統(tǒng)實驗報告

        嵌入式系統(tǒng)設(shè)計實驗報告 班 級: 學(xué) 號: 姓 名: 成 績: 指導(dǎo)教師: 1. 實驗一 1.1 實驗名稱 博創(chuàng)UP-3000實驗臺基本結(jié)構(gòu)及使用方法 1.2 實驗?zāi)康?1.學(xué)習(xí)嵌入式系統(tǒng)開發(fā)流程。 2.熟悉U......

        嵌入式系統(tǒng)實驗報告

        廣西工學(xué)院鹿山學(xué)院 實 驗 報 告 課程名稱: 嵌入式系統(tǒng) 指導(dǎo)教師: 劉瑞琪 班 級: 自動化101 姓 名: 楊杰 學(xué) 號: 20102787 成績評定: 指導(dǎo)教師簽字: 2013年5月25日 實驗一簡單的......