嵌入式復習提綱(已整理)_第1頁
嵌入式復習提綱(已整理)_第2頁
嵌入式復習提綱(已整理)_第3頁
嵌入式復習提綱(已整理)_第4頁
嵌入式復習提綱(已整理)_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

題型選擇題1*10填空題1*10名詞解釋6*3簡答題7*6分析題2*10復習提綱:目錄1. 嵌入式系統的概念及特點 12. 嵌入式系統與桌面通用系統的區別〔課本P4-5〕 33. 典型的嵌入式操作系統有哪些,各有什么特點 44. 傳統的單片機與嵌入式系統之間的關系 45. 嵌入式系統從底層硬件到上層應用程序的分層及組成局部 46. 硬件處理器的種類〔書本P19~P23〕 47. 外圍硬件的組成局部 58. 嵌入式操作系統的作用及種類,典型的嵌入式實時操作系統 59. 嵌入式開發模式〔交叉開發〕 610. 嵌入式系統與通用計算機系統硬件組成上的異同 611. 嵌入式最小系統的概念,組成和作用 712. ARM7TDMI的含義 813. 存儲器的存儲方式,字和半字 814. ARM7的三級流水線模式 915. ARM處理器的狀態,和對應的指令集 916. ARM處理器的工作模式 917. ARM有多少個通用存放器和狀態存放器,各狀態存放器的作用 1018. ARM異常進入與退出的過程〔重點〕 1019. ARM的兩種中止異常〔重點〕 1120. Thumb和ARM指令集的關系〔第4講PPT中P131〕 1121. ARM處理器尋址方式,分別舉例說明〔第4講PPT中P9〕 1122. ARM指令的特點〔第4講PPT中P25〕 1223. ARM數據處理指令有哪幾類?〔第4講PPT中P60〕 1224. 嵌入式開發的方法,幾種調試方式。 1325. 嵌入式Linux操作系統主要組成局部有哪些。 1326. 嵌入式linux的引導方式。 1427. 內存管理單元的作用 1428. Linux操作系統的驅動類型 1429. ARM程序狀態存放器各位的功能 1530. bootloader的作用 1531. 實時操作系統的概念,硬實時與軟實時概念。 1532. 操作系統中任務、調度、互斥、優先級、代碼臨界區、上下文切換等概念。〔重點〕 1533. 實時操作系統與通用操作系統的區別。 1634. μC/OS的優先級數。 1635. 大端存儲模式與小端存儲模式。 1736. 設計一個嵌入式系統的步驟 17嵌入式系統的概念及特點概念:IEEE〔國際電氣和電子工程師協會〕給出的定義:嵌入式系統是用于控制、監視或者輔助裝置、機器或者設備運行的裝置。通常執行特定功能以微電腦和外圍構成核心嚴格的時序和穩定性要求全自動操作循環從技術的角度定義:以應用為中心、以計算機技術為根底、軟件硬件可裁剪、適應應用系統對功能、可靠性、本錢、體積、功耗嚴格要求的專用計算機系統。從系統的角度定義:嵌入式系統是設計完成復雜功能的硬件和軟件,并使其緊密耦合在一起的計算機系統。術語嵌入式反映了這些系統通常是更大系統中的一個完整的局部,稱為嵌入的系統。嵌入的系統中可以共存多個嵌入式系統。特點:1.系統內核小;2.專用性強;3.系統精簡;4.高實時性的系統軟件(OS)是嵌入式軟件的根本要求;5.嵌入式軟件開發要想走向標準化,就必須使用多任務的操作系統;6.嵌入式系統開發需要開發工具和環境。書本:概念:嵌入式系統是一種電氣/電子-機械系統,設計用于執行特定的功能,是硬件與固件〔即軟件〕結合的產物。特點:1.面向特定應用和特定領域;2.反應與實時性;3.能夠在惡劣環境中工作;4.分布式;5.尺寸小、重量輕;6.低功耗、節能。〔精簡:微型化;可裁剪性;實時性;高可靠性;易移植性〕嵌入式系統與桌面通用系統的區別〔課本P4-5〕嵌入式系統中運行的任務是專用而確定的(專用性)桌面通用系統需要支持大量的、需求多樣的應用程序嵌入式系統往往對實時性提出較高的要求嵌入式系統中使用的操作系統一般是實時操作系統〔實時性〕嵌入式實時操作系統數量眾多〔多操作系統性〕嵌入式系統運行需要高可靠性保障,比桌面系統的故障容忍能力弱很多嵌入式系統需要忍受長時間、無人值守條件下的運行嵌入式系統運行的環境惡劣嵌入式系統大都有功耗約束嵌入式系統比桌面通用系統可用資源少得多嵌入式系統的開發需要專用工具和特殊方法嵌入式系統開發是一項綜合的計算機應用技術桌面通用系統需要支持大量的、需求多樣的應用程序:對系統中運行的程序不作假設;程序升級、更新等方便書上:通用計算系統嵌入式系統由普通硬件與通用操作系統構成的系統,可以執行各種應用程序由專用硬件與嵌入式操作系統構成的系統,專門執行特定的應用程序包含通用操作系統〔GeneralPurposeOperatingSystem,GPOS〕根據功能的不容,可能包含操作系統,也可能不包含操作系統系統應用程序是用戶可以重裝操作系統,也可以添加或刪除用戶應用程序嵌入式系統的固件是預編程的,終端用戶不可以更改。不過,對于,某些支持OS內核的系統,可以通過特殊的硬件設置完成更新在系統選型的時候,性能是關鍵的決定性因素,一般說來,速度越快越好特定應用需求〔比方性能、功率需求、內存使用等〕是關鍵的決定性因素很少或無需通過降低配置來減少系統運行功耗需求,具有不同級別的電腦管理方案系統往往經過了大量的裁剪,可以在硬件與操作系統的支持下在省電模式工作響應時間需求不是至關重要的對于特定類型的嵌入式系統而言〔比方任務關鍵系統〕,響應時間需求是至關重要的系統執行的功能不需要是確定性的對于特定類型的嵌入式系統而言〔比方硬實時系統〕,執行的功能是確定性的典型的嵌入式操作系統有哪些,各有什么特點μCLinux是一個完全符合GNU/GPL公約的操作系統,完全開放代碼。μClinux從Linux

2.0/2.4內核派生而來,沿襲了主流Linux的絕大局部特性。它是專門針對沒有MMU的CPU,并且為嵌入式系統做了許多小型化的工作。適用于沒有虛擬內存或內存管理單元(MMU)的處理器,例如ARM7TDMI。它通常用于具有很少內存或Flash的嵌入式系統。它保存了Linux的大局部優點:穩定、良好的移植性、優秀的網絡功能、完備的對各種文件系統的支持、以及標準豐富的API等。WindowsCE是微軟開發的一個開放的、可升級的32位嵌入式操作系統,是基于掌上型電腦類的電子設備操作,它是精簡的Windows95。WindowsCE的圖形用戶界面相當出色。WinCE具有模塊化、結構化和基于Win32應用程序接口以及與處理器無關等特點。WinCE不僅繼承了傳統的Windows圖形界面,并且在WinCE平臺上可以使用Windows95/98上的編程工具〔如VisualBasic、VisualC++等〕、使絕大多數的應用軟件只需簡單的修改和移植就可以在WindowsCE平臺上繼續使用。VxWorks是常用的硬實時多任務操作系統,有著良好的持續開展能力、高性能的內核以及友好的用戶開發環境。良好的可靠性和卓越的實時性被廣泛地應用在各種領域。μC/OS-II是一個源碼公開、可移植、可固化、可裁剪、占先式的實時多任務操作系統。其絕大局部源碼是用ANSIC寫的,使其可以方便的移植并支持大多數類型的處理器。μC/OS-II占用很少的系統資源,并且在高校教學使用是不需要申請許可證。傳統的單片機與嵌入式系統之間的關系廣義上來說單片機是典型的嵌入式系統。單片機構成的系統是開展最快、品種最多、數量最大、應用最廣的嵌入式系統。由于單片機有嵌入式應用的專用體系結構與指令系統,而且具有體積小、可靠性高等特點,又具有各種各樣的型號,可以滿足不同的需求,實際應用時,開發者可根據具體要求選用最正確型號的單片機嵌入到應用系統中。嵌入式系統從底層硬件到上層應用程序的分層及組成局部嵌入式系統一般由外圍硬件設備〔硬件層〕、嵌入式處理器〔驅動層〕、嵌入式操作系統〔操作系統層〕,以及用戶的應用軟件系統〔應用層〕等四個局部組成。硬件處理器的種類〔書本P19~P23〕嵌入式處理器是嵌入式系統的核心。嵌入式處理器一般都具有較高的集成度。現有1000多種硬件處理器,分為MPU[MicroProcessorUnit]〔嵌入式微處理器的根底是通用計算機中的CPU。〕、MCU[MicroControllerUnit]〔嵌入式微控制器又稱單片機,它是將整個計算機系統集成到一塊芯片中,微控制器的片上外設資源一般比擬豐富,適合于控制,因此稱微控制器。〕、DSP[EmbeddedDigitalSignalProcessor]〔嵌入式DSP處理器,專門用于信號處理方面〕、SOC[SystemOnChip]〔嵌入式片上系統,可以分為通用和專用兩類〕外圍硬件的組成局部片外總線:連接系統各個部件,進行互連和傳輸信息的信號線。電子盤:采用flash芯片存儲數據,體積小、功耗低、抗震I/O設備〔A/D、D/A、中斷控制器、UART、LCD〕通訊設備〔有線通訊:IEEE1394、USB、無線通訊:IrDA、Bluetooth、802.11b/g〕外圍硬件是嵌入式系統處理器以外的硬件,它為系統提供了運行條件和局部功能。嵌入式操作系統的作用及種類,典型的嵌入式實時操作系統作用:嵌入式操作系統的作用一般只是為了應用程序提供必要運行環境〔任務調度〕,附加任務通訊、內存管理等功能。〔百度百科〕嵌入式操作系統負責嵌入式系統的全部軟、硬件資源的分配、任務調度,控制、協調并發活動。它必須表達其所在系統的特征,能夠通過裝卸某些模塊來到達系統所要求的功能。嵌入式系統和系統的硬件根底關系緊密,一般都需要移植和配置才可以使用。嵌入式操作系統讓嵌入式系統的開發利用通用的功能模塊,這可以讓開發更加高效。分類:按硬件分可以參照第6題,主要以處理器種類分類。按軟件分:嵌入式系統的軟件主要有兩大類:實時系統和分時系統。其中實時系統又分為兩類:硬實時系統和軟實時系統。分時操作系統〔Time-sharingOperatingsystem,TSOS〕:〔百度百科〕分時是指多個用戶分享使用同一臺計算機。多個程序分時共享硬件和軟件資源。分時操作系統是指在一臺主機上連接多個帶有顯示器和鍵盤的終端,同時允許多個用戶通過主機的終端,以交互方式使用計算機,共享主機中的資源。分時操作系統是一個多用戶交互式操作系統。分時操作系統,主要分為三類:單道分時操作系統,多道分時操作系統,具有前臺和后臺的分時操作系統。分時操作系統將CPU的時間劃分成假設干個片段,稱為時間片。操作系統以時間片為單位,輪流為每個終端用戶效勞。實時操作系統〔RealTimeOperatingSystem,RTOS〕:〔百度百科〕實時嵌入系統是為執行特定功能而設計的,可以嚴格的按時序執行功能。其最大的特征就是程序的執行具有確定性。在實時系統中,如果系統在指定的時間內未能實現某個確定的任務,會導致系統的全面失敗,那么系統被稱為硬實時系統。而在軟實時系統中,雖然響應時間同樣重要,但是超時卻不會導致致命錯誤。一個硬實時系統往往在硬件上需要添加專門用于時間和優先級管理的控制芯片,而軟實時系統那么主要在軟件方面通過編程實現時限的管理。典型的嵌入式實時操作系統〔RTOS〕:①近200種操作系統,VxWorks、QNX、WinCE、PalmOS②面向SOC的操作系統:Symbian的Epoc、ExpressLogic的ThreadX、ATI的Nucleus③開放源碼的操作系統:Linux系列、μC/OS嵌入式開發模式〔交叉開發〕嵌入式系統開發分為軟件開發局部和硬件開發局部。嵌入式系統在開發過程一般都采用如圖5-3所示的“宿主機/目標板〞開發模式,即利用宿主機(PC機)上豐富的軟硬件資源及良好的開發環境和調試工具來開發目標板上的軟件,然后通過交叉編譯環境生成目標代碼和可執行文件,通過串口/USB/以太網等方式下載到目標板上,利用交叉調試器在監控程序運行,實時分析,最后,將程序下載固化到目標機上,完成整個開發過程。宿主機開發機器〔編輯器、編譯器、調試器、…〕目標機程序運行的機器宿主機和目標機一樣時為本地編譯交叉編譯是指宿主機和目標機是不同的系統〔必須做目標文件下載〕嵌入式系統與通用計算機系統硬件組成上的異同計算機系統由處理器、內存、總線等主要部件組成。嵌入式系統的組成結構:處理器〔內核+片內外設〕+內存+外圍硬件+輔助設備。嵌入式系統和一般的計算機系統類似,也是由CPU、內存、IO端口、總線等幾個局部組成。嵌入式系統硬件結構的特點:以嵌入式處理器為核心,集成度高。嵌入式系統本質上是計算機系統,但是具有以下的特點:集成度高、非標準化、接口非常復雜。桌面計算機系統中,CPU具有總線功能,但不包括其他的設備,一些構建系統根本的部件由主板的芯片組提供。一些外部的設備〔如串口、定時器、中斷控制器〕可能做在南橋中,而內存控制器、顯示接口〔AGP〕常由北橋完成。嵌入式系統中處理器的集成度大都很高。一些根本的設備如通用可編程輸入輸出端口〔GPIO〕、定時器、中斷控制器,通常都集成在處理器當中。一些嵌入式處理器甚至包含內存,只需要在外部擴展簡單的電路,就可以組成系統。書本:RISC與CISC的對照表RISC精簡指令集CISC復雜指令集〔51單片機〕指令的數量較少指令的數量較多具有指令流水功能通常不具備指令流水功能不相關指令集〔每條指令都可以操作任意存放器,并使用任意的地址模式〕相關指令集〔不是所有的指令都允許操作任意存放器,或者使用任意的地址模式;某些指令是專用的〕操作只在存放器上執行,存儲器只進行載入和存儲根據指令來決定操作是在存放器上執行,還是在存儲器上執行具有大量可用的存放器通用存放器的數量受限編程人員需要編寫更多的代碼來執行制定的任務,因為RISC提供的指令比擬簡單CISC指令類似于C語言中的宏。編程人員可以使用單條指令來實現制定的功能,這在RISC中往往需要使用多條簡單指令才能實現指令的長度固定指令的長度可變使用的硅芯片面積較小,管腳數量較少使用的硅芯片面積較大,這是因為為了實現復雜指令的姨媽,需要使用更多額外的譯碼器邏輯具有哈佛結構具有哈佛結構和馮?諾依曼結構哈佛結構與馮?諾依曼結構對照表哈佛結構馮?諾依曼結構通過兩條獨立總線,同時獲取指令和數據通過單條共享總線,分階段獲取指令易于實現指令流水,從而可以實現高性能與哈佛結構相比,其性能較低本錢相對較高本錢相對較低不存在存儲器對齊的問題允許存在自修改代碼由于在物理存儲上,數據和程序存儲在不同的存儲器內,因此程序存儲器不會發生意外損壞由于數據和程序存儲在新片中相同的存儲器內,因此程序存儲器有可能發生意外損壞嵌入式最小系統的概念,組成和作用概念:嵌入式系統的最小系統指基于某處理器為核心,可以運轉起來的最簡單的硬件設計〔即處理器能夠運行的最根本系統〕組成:在嵌入式系統中,最簡單的系統包括以下單元:處理器、內存、時鐘、電源和復位,為了能夠支持程序的下載和調試,一般還需要在最小系統中添加對JTAG接口的支持。處理器:對于任何一個操作系統,處理器都是整個系統的核心,整個系統是靠處理器的指令工作起來的。內存:一個嵌入式處理器的運行,其指令必須放入一定的存儲空間內,運行的時候也需要空間來存儲臨時的數據,因此內存也是必不可少的。時鐘:處理器的運行時鐘周期的,一般來說處理器在一個或者幾個周期執行一條指令。時鐘單元的核心是晶振,它可以提供一定頻率,處理器使用該頻率的時候可能還需要進行倍頻處理。電源:微處理器提供能源的部件,在嵌入式系統中一般使用直流電源。復位電路:連接處理器的引腳,實現通過外部點評讓處理器復位的目的。作用:在嵌入式系統的開發中,最小系統起著至關重要的作用。最小系統是構建嵌入式系統的的第一步,保證嵌入式處理器可以運作。然后才可以逐步增加系統的功能,如:外圍硬件擴展、軟件及程序設計、操作系統移植、增加各種接口等,最終形成符合需求的完整系統。最小系統〔要說全〕pptP29〔底層〕如果要更改程序,需將上述整個過程重復一遍。尤其連接存儲器和處理器的過程非常復雜,可能需要重做整個系統!使用JTAG〔JointTestActionGroup〕的時候可以將程序直接載入到目標機的RAM中,然后直接運行。因此ROM/FLASH在最小系統中已不是必須的了。ARM7TDMI的含義ARM7TDMI-S是基于ARM體系結構V4版本的低端ARM核。其彌補了ARM6很難在低于5V電壓下穩定工作的缺乏,還增加了后綴所對應的功能。在ARM核的命名規那么中,TDMI的根本含義為:〔注意:“ARM核〞并非芯片,ARM核與其它部件如RAM、ROM、片內外設組合在一起才能構成現實的芯片。〕T:支持高密度16位的Thumb指令集;D:支持片上Debug;M:內嵌硬件乘法器〔Multiplier〕,支持64位乘法;I:嵌入式ICE,支持片上斷點和調試點。S:ARM7TDMI的可綜合〔synthesizable〕版本〔軟核〕,對應用工程師來說其編程模型與ARM7TDMI一致;存儲器的存儲方式,字和半字從偶數地址開始的連續2個字節構成一個半字;以能被4整除的地址開始的連續4個字節構成一個字;ARM指令的長度剛好是一個字,Thumb指令的長度剛好是一個半字。如果一個數據是從偶數地址開始的連續存儲,那么它就是半字對齊,否那么就是非半字對齊;如果一個數據是以能被4整除的地址開始的連續存儲,那么它就是字對齊,否那么就是非字對齊。方式半字對齊字對齊地址……0x40020x40040x40060x4008…………0x40040x40080x400C0x4010……特征Bit0=0其他位為任意值Bit1=0,Bit0=0其他位為任意值ARM7的三級流水線模式ARM7TDMI的流水線分3級,分別為:取址〔從存放器裝載一條指令〕→譯碼〔識別將要被執行的指令〕→執行〔處理指令并將結果寫回存放器〕如果程序發生跳轉,流水線將被清空,這將需要幾個時鐘才能是流水線再次填滿。因此,為提高程序執行效率,應盡可能少用跳轉指令,盡量使用指令的“條件執行〞功能。ARM處理器的狀態,和對應的指令集ARM7TDMI處理器內核包含2套指令系統,分別為ARM指令集和Thumb指令,各自對應1種處理器的狀態,并以“當前程序狀態存放器CPSR〞中的控制位T反映所處的狀態〔T=0,ARM;T=1,Thumb〕:ARM狀態:32位,處理器執行字方式的ARM指令,處理器默認為此狀態;Thumb狀態:16位,處理器執行半字方式的Thumb指令。注意:兩個狀態之間的切換并不影響處理器模式或存放器內容。ARM處理器的工作模式ARM體系結構支持7種處理器模式,分別為:用戶模式、快中斷模式、中斷模式、管理模式、中止模式、未定義模式和系統模式。除用戶模式外,其它模式均為特權模式。快中斷模式、中斷模式、管理模式、中止模式、未定義模式這五種模式稱為異常模式。它們除了可以通過程序切換進入外,也可以由特定的異常進入。用戶模式和系統模式這兩種模式都不能由異常進入,想要進入必須修改CPSR,而且它們使用完全相同的存放器組。系統模式是特權模式,不受用戶模式的限制。處理器模式說明備注用戶(user)正常程序運行的工作模式隔離操作系統與用戶應用程序,不能直接從用戶模式切換到其它模式特權模式系統(sys)用于支持操作系統的特權任務等與用戶模式類似,但具有可以直接切換到其它模式等特權異常模式快中斷(fiq)快速中斷請求處理只有在FIQ異常響應時,才進入此模式中斷(irq)中斷請求處理只有在IRQ異常響應時,才進入此模式管理(svc)供操作系統使用的一種保護模式只有在系統復位和軟件中斷響應時,才進入此模式中止(abt)用于虛擬內存和/或存儲器保護在ARM7內核中沒有多大用處未定義(und)支持軟件仿真的硬件協處理器只有在未定義指令異常響應時,才進入此模式ARM有多少個通用存放器和狀態存放器,各狀態存放器的作用在ARM處理器內部共有37個用戶可訪問的存放器,分別為31個通用32位存放器和6個狀態存放器。ARM處理器共有7種不同的處理器模式,每種模式都有一組相應的存放器組,最多可以18個活動的存放器。ARM內核包含1個CPSR和5個僅供異常處理程序使用的SPSR。存放器CPSR為當前程序狀態存放器,在異常模式中,另外一個存放器“程序狀態保存存放器〔SPSR〕〞可以被訪問。每種異常都有自己的SPSR,在進入異常時它保存CPSR的當前值,異常退出時可通過它恢復CPSR。順便去看看第29題。ARM異常進入與退出的過程〔重點〕只要正常的程序流被暫時中止,處理器就進入異常模式。異常的進入,當一個異常導致模式切換時,內核自動的做如下處理:①將異常處理程序的返回地址〔加固定的偏移量〕保存到相應異常模式下的LR;②將CPSR的當前值保存到相應異常模式下的SPSR;③設置CPSR為相應的異常模式;④設置PC為相應異常處理程序的中斷入口向量地址,跳轉到相應的異常中斷處理程序執行;異常的退出,當異常處理程序結束時,異常處理程序必須:①返回到發生異常中斷的指令的下一條指令處執行,即就是說將LR中的值減去偏移量后移入PC;②將SPSR的值復制回CPSR;③清零在入口處置位的中斷禁止標志。優先級異常優先級由高到低1優先級由高到低復位2數據中止3FIQ4IRQ5預取指中止6未定義指令中止6軟件中斷異常ARM的兩種中止異常〔重點〕中止表示當前對存儲器的訪問不能被完成,這是由外部ABORT輸入信號引起的異常中斷。中止類型有2種類型:預取指中止:由程序存儲器引起的中止異常;當發生預取指中止時,ARM內核將預取的指令標記為無效,但在指令到達流水線的執行階段時才進入異常。如果指令在流水線中因為發生分支而沒有被執行,中止將不會發生。在處理中止的原因之后,不管處于哪種處理器操作狀態,處理程序都會執行下面的指令恢復PC和CPSR并重試被中止的指令:SUBSPC,R14_abt,#4數據中止:由數據存儲器引起的中止異常。當發生數據中止異常時,異常會在“導致異常的指令〞執行后的下一條指令發生。在這種情況下,理想的狀況是進入數據中止異常的ISR,然后在內存中挑選出問題,再重新執行導致異常的指令。在修復產生中止的原因后,不管處于哪種處理器操作狀態,處理程序都必須執行下面的返回指令:SUBSPC,R14_abt,#8Thumb和ARM指令集的關系〔第4講PPT中P131〕Thumb指令集具有靈活、小巧的特點,ARM指令集支持ARM核所有的特性,具有高效、快速的特點。ARM指令集長度為4字節〔32位,低密度指令集〕,Thumb為2字節〔16位,高密度指令集〕。Thumb是ARM的子集,在任何一種工作狀態可以通過指令切換到另一種工作狀態。ARM和Thumb之間的狀態切換不影響處理器工作模式和存放器中的內容。加電起動時處理器工作在ARM狀態。Thumb指令集與ARM指令集的相似處:Thumb指令的格式與使用方式與ARM指令集類似,它也具有以下種類的指令:存儲器訪問指令數據處理指令分支指令雜項指令偽指令Thumb指令集與ARM指令集的區別:Thumb指令集較ARM指令集有如下限制:只有B指令可以條件執行,其它指令都不能條件執行;分支指令的跳轉范圍有更多限制;數據處理指令的操作結果必須放入其中一個操作數存放器;單存放器訪問指令,只能操作R0~R7;LDM和STM指令可以對R0~R7的任何子集進行操作;ARM處理器尋址方式,分別舉例說明〔第4講PPT中P9〕ARM處理器具有8種根本尋址方式:1.存放器尋址:操作數的值在存放器中,指令中的地址碼字段指出的是存放器編號,指令執行時直接取出存放器值來操作。存放器尋址指令舉例如下:MOVR1,R2 ;將R2的值存入R1SUBR0,R1,R2;將R1的值減去R2的值,結果保存到R02.立即尋址:立即尋址指令中的操作碼字段后面的地址碼局部即是操作數本身,也就是說,數據就包含在指令當中,取出指令也就取出了可以立即使用的操作數(這樣的數稱為立即數)。立即尋址指令舉例如下:SUBS R0,R0,#1;R0減1,結果放入R0,并且影響標志位MOV R0,#0xFF00;將立即數0xFF00裝入R0存放器3.存放器移位尋址:存放器移位尋址是ARM指令集特有的尋址方式。當第2個操作數是存放器移位方式時,第2個存放器操作數在與第1個操作數結合之前,選擇進行移位操作。存放器移位尋址指令舉例如下:MOVR0,R2,LSL#3 ;R2的值左移3位,結果放入R0,即是R0=R2×8ANDSR1,R1,R2,LSLR3;R2的值左移R3位,然后和R1相“與〞操作,結果放入R14.存放器間接尋址:存放器間接尋址指令中的地址碼給出的是一個通用存放器的編號,所需的操作數保存在存放器指定地址的存儲單元中,即存放器為操作數的地址指針。存放器間接尋址指令舉例如下:LDRR1,[R2] ;將R2指向的存儲單元的數據讀出,保存在R1中SWPR1,[R2] ;將存放器R1的值和R2指定的存儲,單元的內容交換5.基址尋址:基址尋址就是將基址存放器的內容與指令中給出的偏移量相加,形成操作數的有效地址。基址尋址用于訪問基址附近的存儲單元,常用于查表、數組操作、功能部件存放器訪問等。基址尋址指令舉例如下:LDRR2,[R3,#0x0C] ;讀取R3+0x0C地址上的存儲單元的內容,放入R2STRR1,[R0,#-4]! ;先R0=R0-4,然后把R1的值存放到保存到R0指定的存儲單元6.多存放器尋址:多存放器尋址一次可傳送幾個存放器值,允許一條指令傳送16個存放器的任何子集或所有存放器。多存放器尋址指令舉例如下:LDMIA R1,{R2-R7,R12};將R1指向的單元中的數據讀出到R2~R7、R12中(R1自動加4)STMIA R0,{R2-R7,R12};將存放器R2~R7、R12的值保存到R0指向的存儲;單元中(R0自動加4)7.堆棧尋址:堆棧是一個按特定順序進行存取的存儲區,操作順序為“后進先出〞。堆棧尋址是隱含的,它使用一個專門的存放器(堆棧指針SP)指向一塊存儲區域(堆棧),指針所指向的存儲單元即是堆棧的棧頂。存儲器堆棧可分為兩種:向上生長:向高地址方向生長,稱為遞增堆棧向下生長:向低地址方向生長,稱為遞減堆棧8.相對尋址:相對尋址是基址尋址的一種變通。由程序計數器PC提供基準地址,指令中的地址碼字段作為偏移量,兩者相加后得到的地址即為操作數的有效地址。ARM指令的特點〔第4講PPT中P25〕可條件執行、可選擇影響標志位、具有非常靈活的第二操作數靈活的使用第2個操作數“operand2〞能夠提高代碼效率。它有如下的形式:1.#immed_8r——常數表達式;該常數必須對應8位位圖,即必須是一個8位的常數通過循環右移偶數位可以得到的數。例如,0xC000、0x12800000是對的,而0x103C000〔超過8位〕是錯的將立即數0xFFB賦值給R2:錯:MOV R2,#0xFFB對:MOV R2,#0xFF,LSR28;LSR是邏輯右移n位ORR R2,R2,#0xB2.Rm——存放器方式;3.Rm,shift——存放器移位方式ARM數據處理指令有哪幾類?〔第4講PPT中P60〕數據處理指令只能對存放器的內容進行操作,而不能對內存中的數據進行操作。所有ARM數據處理指令均可選擇使用S后綴,并影響狀態標志。數據處理指令大致可分為3類:數據傳送指令:MOV指令將8位圖立即數或存放器傳送到目標存放器〔Rd〕,可用于移位運算等操作。同類型的指令還有MVN,它可以實現數據的非傳遞,即把操作數取反后送至目標存放器。算術邏輯運算指令:算術邏輯運算指令包括“加/減〞以及“與/或/異或〞等指令;局部算術運算符:ADD:加法運算;ADC:帶進位加法運算;SUB:減法運算;RSB:逆向減法運算;SBC:帶進位減法運算;RSC:帶進位逆向減法運算局部邏輯運算符:AND:邏輯“與〞運算;ORR:邏輯“或〞運算;EOR:邏輯“異或〞運算;BIC:位去除運算比擬指令:比擬指令將兩個數值進行的特定運算,根據運算結果影響CPSR的相關標志位,用于后面程序的條件執行,但是運算結果不予保存。比擬運算符:CMP:數值比擬;CMN:負數比擬;TST:位測試;TEQ:相等測試嵌入式開發的方法,幾種調試方式。〔1〕目標機-主機,打印調試信息:打印調試信息是最根本的調試方式,實現了類似printf()的標準輸出,在嵌入式系統中,這種輸出的通訊通道可能是串口或者網絡協議。在某些系統中,沒有實現標準輸出,這就需要開發者自己開發調試手段。〔2〕JTAG調試:JTAG是JointTestActionGroup的簡稱。JTAG使用邊界掃描〔Boundary-Scan〕的方式調試:在靠近芯片的輸入輸出管腳上增加一個移位存放器單元,通過這些存放器單元實現對芯片輸入輸出信號的觀察和控制。〔3〕遠程gdb調試:在遠程GDB調試中,調試器是運行在主機〔host,桌面電腦〕的應用程序,被調試的程序是運行在目標〔target〕上。在遠程GDB調試中,目標機運行GDB效勞器〔Server〕,GDB效勞器通過通信協議將被調試程序的運行信息發送至主機,在主機方面對調試信息進行分析并控制程序的運行。嵌入式Linux操作系統主要組成局部有哪些。嵌入式Linux一般來說由以下三個局部組成:Bootloader〔引導加載器〕:系統的引導程序,最根本功能是加載linux內核并運行。內核:經過編譯生成的一段可執行程序。內核運行時可能需要從外部獲取啟動參數〔由Bootloader提供〕。根文件系統:Linux內核啟動后首先加載的文件系統,但不是Linux系統運行所必需的。書本P400:用戶應用程序用戶應用程序內核效勞存儲器管理進程管理時間管理文件系統管理I/O系統管理底層硬件應用程序編程接口設備驅動程序接口嵌入式linux的引導方式。啟動加載〔Bootloader〕模式:也稱為“自主〞〔Autonomous〕模式。在這種情況下,Bootloader從目標機上的某個固態存儲設備上將操作系統加載到RAM中運行,整個過程并沒有用戶的介入。下載〔Downloading〕模式:目標機上的Bootloader通過串口連接或網絡連接等通信手段從主機〔Host〕下載文件。該模式通常用于嵌入式產品的設計、調試階段。根據所使用的存儲介質和開發階段的不同,可以采用不同的系統引導方式:使用可固化存儲設備〔如FLASH〕;使用磁盤設備;通過網絡引導。內存管理單元的作用它是中央處理器〔CPU〕用來管理虛擬存儲器、物理存儲器的控制線路。同時也負責虛擬地址映射為實際物理地址,以及提供硬件機制的內存訪問授權。Linux操作系統的驅動類型在Linux操作系統的驅動程序分成三種類型:字符設備〔chardevice〕塊設備〔blockdevice〕網絡設備〔netdevice〕ARM程序狀態存放器各位的功能ARM內核包含1個CPSR和5個僅供異常處理程序使用的SPSR。CPSR反映當前處理器的狀態,其包含:4個條件代碼標志(負標志N、零標志Z、進位標志C和溢出標志V);2個中斷禁止位(IRQ禁止與FIQ禁止);5個對當前處理器模式進行編碼的位(M[4:0]);1個用于指示當前執行指令的位(ARM指令還是Thumb指令)。各標志位的含義如下:負標志N:運算結果的第31位值,記錄標志設置操作的結果;零標志Z:如果標志設置的操作為0,那么置位;進位標志C:記錄無符號加法溢出,減法無借位,循環移位;溢出標志V:記錄標志設置操作的有符號溢出。bootloader的作用Bootloader是系統啟動后首先運行的程序,對于嵌入式linux操作系統的Bootloader,其最根本的功能是加載linux的內核到Ram中并運行。必須具有:初始化RAM處理、初始化串口、檢測處理器類型、設置Linux啟動參數。Bootloader一般還具有以下的功能:通訊功能〔串口、網絡、USB……〕、FLASH相關功能〔燒寫FLASH,程序固化〕、用戶接口功能實時操作系統的概念,硬實時與軟實時概念。實時操作系統RTOS〔realtimeoperationsystem):是指能支持實時控制系統工作的操作系統。〔百度百科〕是指當外界事件或數據產生時,能夠接受并以足夠快的速度予以處理,其處理的結果又能在規定的時間之內來控制生產過程或對處理系統做出快速響應,并控制所有實時任務協調一致運行的操作系統。順便看看第8題。硬實時:任務嚴格遵循時間約束,原那么:遲到就是錯誤。通過系統特定的時序得不到滿足,將會引起災難性的后果。軟實時:盡最大努力滿足截止時間需求。通過系統特定的時序得不到滿足,系統的性能會嚴重下降。書本P404:通用操作系統:通用操作系統的內核是非常通用的,其中包含了執行通用應用程序所需的所有類型的效勞。就其行為而言,通用操作

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論