嵌入式系統(tǒng)第一講研嵌入式系統(tǒng)介紹課件_第1頁
嵌入式系統(tǒng)第一講研嵌入式系統(tǒng)介紹課件_第2頁
嵌入式系統(tǒng)第一講研嵌入式系統(tǒng)介紹課件_第3頁
嵌入式系統(tǒng)第一講研嵌入式系統(tǒng)介紹課件_第4頁
嵌入式系統(tǒng)第一講研嵌入式系統(tǒng)介紹課件_第5頁
已閱讀5頁,還剩113頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一講嵌入式系統(tǒng)介紹Email:本講主要內(nèi)容嵌入式系統(tǒng)概述實驗室介紹與課程說明嵌入式系統(tǒng)概要介紹EELiod270開發(fā)系統(tǒng)介紹Module板、EDR板Banyan-UE仿真器ARM處理器簡介體系結(jié)構(gòu)、編程模型、ARM指令系統(tǒng)嵌入式系統(tǒng)概述應(yīng)用于消費電子產(chǎn)品嵌入式Internet應(yīng)用嵌入式系統(tǒng)的定義(一)IEEE對嵌入式系統(tǒng)的定義:

Embeddedsystemisakindofdeviceusedtocontrol,monitororassisttheoperationofequipment,machineryorplant.

“控制、監(jiān)視或者輔助設(shè)備、機(jī)器和車間運行的裝置”嵌入式系統(tǒng)的特點系統(tǒng)內(nèi)核?。阂话銘?yīng)用于小型電子裝置。專用性強:軟硬件結(jié)合緊密,針對硬件進(jìn)行系統(tǒng)的移植。系統(tǒng)精簡:系統(tǒng)軟件和應(yīng)用軟件緊密融合,部分無明顯區(qū)別。實時多任務(wù)的操作系統(tǒng):合理調(diào)度多任務(wù),RTOS開發(fā)平臺。專門的開發(fā)工具和環(huán)境。實驗室條件深圳億道公司EELiod270教學(xué)開發(fā)平臺IntelXscale270微處理器,520MHz完善的硬件平臺支持WinCE和Linux操作系統(tǒng)課程主要內(nèi)容ARM與EEliod270開發(fā)系統(tǒng)介紹嵌入式Linux系統(tǒng)的構(gòu)建與啟動分析嵌入式Linux下程序開發(fā)課程安排(一)3-18周3-5周理論課6-18周嵌入式Linux實驗系統(tǒng)構(gòu)建驅(qū)動程序?qū)嶒炞赃x綜合實驗評分標(biāo)準(zhǔn)理論課:10%實驗:90%內(nèi)部網(wǎng)絡(luò)資源ftp服務(wù)器:,port:21,user:emb,pwd:embeddedEELiod硬件平臺資料ADS開發(fā)系統(tǒng)資料嵌入式Linux

BSP軟件包實驗指導(dǎo)書其他安裝軟件(虛擬機(jī),Redhat9等)參考書及資料(二)AlessandroRubini,魏永明等譯,linux設(shè)備驅(qū)動程序,第二版,中國電力出版社,2002中國Linux論壇嵌入式開發(fā)網(wǎng)嵌入式系統(tǒng)的基本構(gòu)成存儲器及外圍電路嵌入式處理器嵌入式操作系統(tǒng)應(yīng)用軟件嵌入式硬件系統(tǒng)嵌入式處理器各種類型存儲器模擬電路及電源接口控制器及接插件嵌入式軟件系統(tǒng)板級支持包(BSP)操作系統(tǒng)(OS/RTOS)設(shè)備驅(qū)動(DeviceDriver)協(xié)議棧(ProtocolStack)應(yīng)用程序(Application)嵌入式處理器的分類嵌入式微處理器(MPU)ARMDragonballMc9328Mx1Xscale270嵌入式微控制器(MCU)8051、P51XA、MC68HC05/11/12/16、68300等嵌入式DSP處理器嵌入式片上系統(tǒng)(SOC-SystemOnChip)嵌入式可編程片上系統(tǒng)(EPSOC)ARMARM的產(chǎn)品ARM處理器內(nèi)核,以知識產(chǎn)權(quán)(IP)形式提供給IC生產(chǎn)廠家硬核:有和特定工藝相連系的物理版圖。軟核:用硬件描述語言或C語言寫成,用于功能仿真ARM開發(fā)工具、SOC開發(fā)工具、評估板等ARM公司不生產(chǎn)芯片ARM贏利模式:專利授權(quán)費+版費目前在通信領(lǐng)域處于統(tǒng)治地位,100%的CDMA手機(jī)和85%以上的WCDMA手機(jī)IntelInside&InsideIntelARM芯片年出貨量超過幾十億片ARM營收中,手機(jī)芯片占2/3ARM嵌入式微處理器嵌入式操作系統(tǒng)特點除具有普通操作系統(tǒng)的功能如任務(wù)調(diào)度、中斷處理等外,嵌入式操作系統(tǒng)還有以下特點:編碼體積小,適合有限的存儲空間面向應(yīng)用,可裁減和移植部分要求實時性強,又稱實時多任務(wù)操作系統(tǒng)(RTOS)可靠性高以及較強的網(wǎng)絡(luò)功能嵌入式操作系統(tǒng)通常按體系的分類Windows兼容系列WindowsCE/NT/XPLinux類嵌入式Linux,uCLinux,RTLinuxAndroid及其派生的iPhone、oPhone、LePhone等通信領(lǐng)域嵌入式操作系統(tǒng)VxWorks,Nucleus,VRTX,QNS,pSOS其他如Symbian、BlackBerry等嵌入式操作系統(tǒng)結(jié)構(gòu)嵌入式系統(tǒng)的應(yīng)用開發(fā)本實驗室條件支持:無OSADS集成開發(fā)環(huán)境有OS嵌入式LinuxWindowsCE嵌入式產(chǎn)品開發(fā)過程集成開發(fā)環(huán)境ARMADS(ARMDeveloperSuits)它是ARM公司的集成開發(fā)環(huán)境,包括命令行開發(fā)工具、圖形開發(fā)工具、實用工具和支持軟件4部分,可以進(jìn)行編輯、編譯及調(diào)試C、C++及匯編程序。MetrowerksCodeWarriorforARMADSv1.2ARM匯編及C程序的編輯、編譯AXD調(diào)試嵌入式應(yīng)用開發(fā)的調(diào)試由于嵌入式系統(tǒng)的可用資源有限,嵌入式開發(fā)和調(diào)試工作通常要通過高性能的宿主機(jī)完成。 嵌入式應(yīng)用軟件通過宿主機(jī)上的交叉編譯器,完成交叉編譯和連接后下載到目標(biāo)機(jī)。宿主機(jī):進(jìn)行嵌入式軟件開發(fā)的主機(jī)目標(biāo)機(jī):將要開發(fā)的目標(biāo)板嵌入式開發(fā)的調(diào)試方法大致有以下幾種調(diào)試方法:模擬調(diào)試方式ROMMonitor方式(或Angel方式)ICE仿真JTAG調(diào)試與仿真模擬開發(fā)調(diào)試方式模擬開發(fā)調(diào)試不需開發(fā)板硬件,一臺PC即可純軟件模擬嵌入式處理器的功能和指令。如ARM公司的ARMulator模擬器。它雖然簡單可行,但是缺乏在線調(diào)試和實時仿真功能。ROMMonitor調(diào)試方式(一)ROMMonitor方式(或Angel方式)ROMMonitor(或Angel)是運行在目標(biāo)機(jī)的Flash或ROM的一段程序,它主要負(fù)責(zé)監(jiān)控目標(biāo)機(jī)上被調(diào)試程序的運行情況。通過和宿主機(jī)的配合,完成嵌入式系統(tǒng)的調(diào)試。它是目前低廉有效的一種調(diào)試方式。之前課程使用Metrowerks公司的CodeWarrior進(jìn)行開發(fā)調(diào)試時要用到的Metro-TRK就屬于這類軟件。ROMMonitor調(diào)試方式(二)ICE在線仿真模式在線仿真(InCircuitEmulator)傳統(tǒng)硬件級仿真調(diào)試模式取下目標(biāo)板MPU;在線仿真器可以完全仿真MPU的行為;通過卡座等連接到目標(biāo)板。它支持單步執(zhí)行、斷點、反匯編、源程序級調(diào)試。優(yōu)點:功能非常強大,軟硬件均可做到完全實時在線調(diào)試缺點:適合于簡單的MPU一般滯后MPU幾個月價格昂貴宿主機(jī)目標(biāo)板仿真器硬件連接示意圖JTAG仿真調(diào)試方式(一)JTAG(JointTestActionGroup)聯(lián)合測試行動小組,是IEEE的一個標(biāo)準(zhǔn)JTAG初始主要用于芯片內(nèi)部測試,可對具有JTAG接口的芯片的硬件電路進(jìn)行邊界掃描和故障檢測后用于調(diào)試:在芯片內(nèi)部定義TAP(TestAccessPort),可以訪問寄存器和掛在總線上的設(shè)備JTAG仿真調(diào)試方式(二)JTAG調(diào)試器硬件簡單,只進(jìn)行并口/usb和JTAG接口的電平轉(zhuǎn)換主要工作由主機(jī)軟件完成,如JTAG/usb協(xié)議轉(zhuǎn)換等速度慢,一般10K/s級別JTAG仿真器硬件復(fù)雜,除完成JTAG/usb協(xié)議轉(zhuǎn)換,可能有MPU進(jìn)行控制提供并口/USB接口等,速度快價格貴JTAG仿真調(diào)試方式(三)JTAG仿真器

ARM處理器為了方便調(diào)試,內(nèi)含EmbededICE宏單元,并留有JTAG調(diào)試接口,支持在線仿真。它無需目標(biāo)存儲器,不占用目標(biāo)系統(tǒng)的端口。使用集成開發(fā)環(huán)境配合JTAG仿真器是目前最常用的一種調(diào)試方式。宿主機(jī)目標(biāo)板仿真器硬件連接示意圖JTAG仿真調(diào)試方式(四)嵌入式Linux開發(fā)調(diào)試嵌入式Linux工具鏈交叉編譯器GCCarm-linux-gcc項目管理工具M(jìn)AKE調(diào)試工具GDBbreak 設(shè)置斷點Run 執(zhí)行程序Step 單步跟蹤進(jìn)入Next 單步不進(jìn)入函數(shù)Print,Display 顯示變量值QuitEELiod270開發(fā)系統(tǒng)介紹XScale架構(gòu)PXA270時鐘頻率分312MHz、416MHz、520MHz及624MHz四種內(nèi)部集成IntelWirelessMMX技術(shù),該技術(shù)可提供額外的性能以支持3D游戲和高級視頻采用了SpeedStep低功耗技術(shù),通過智能管理電壓和頻率變化實現(xiàn)節(jié)省高達(dá)55%的功耗集成了快速捕捉(IntelQuickCapture)技術(shù),使鏡頭支持400萬以上像素XScale特點采用ARMV5TE指令集無線MMX指令單元IMMU和DMMUI-Cache和D-Cache寫緩沖器(8入口的高速FIFO)協(xié)處理器電源管理與性能監(jiān)控調(diào)試單元XScale協(xié)處理器CP0:用于DSP處理,更好的處理多媒體信息,包含一個40位累加器,并增加了8條新的指令。CP1:用于無線MMX指令數(shù)據(jù)傳輸和狀態(tài)控制等CP6:為PXA27X新增的協(xié)處理器,主要用于減少訪問中斷控制寄存器的時間。CP14:用于系統(tǒng)的性能監(jiān)視、時鐘管理、電源管理和軟件調(diào)試CP15:用于MMU控制PXA270XSBase270開發(fā)平臺觸摸屏8”TFTLCD640*480JTAG接口120pin擴(kuò)展接口PXA270520MHz32PinLCD接口數(shù)碼管*4CF卡喇叭SD/MMC卡SIMCardCamera全功能串口RTCBattery紅外收發(fā)器RS485紅外串口CanBus以太網(wǎng)口USBHost音頻輸入輸出USBSlave4*4矩陣鍵盤高亮度LED*8GPS模塊接口步進(jìn)電機(jī)BT串口功能轉(zhuǎn)換開關(guān)直流電機(jī)Flash*32MSdram*64M平臺硬件分層分EDR板(底板)和Module板(模塊板或核心板)Module板 ——最小系統(tǒng)EDR板 ——功能接口板Module板包含以下部分MPU ——IntelXscalePXA270520MHzSDRAM ——雙片,64M,缺省地址空間是0xa0000000–0xafffffff

FLASH ——雙片,32M,其缺省地址空間是0x00000000–0x03ffffff

CPLD ——采用Xilinx公司的XC2C128可編程器件,豐富片選及加密串口 ——全功能調(diào)試串口網(wǎng)絡(luò)接口JTAG電源控制——LP3971芯片,IntelSpeedStep動態(tài)電源管理技術(shù)Module板另外還含有以下接口電路音頻控制接口電路——PhilipsUCB1400芯片,內(nèi)含10bits的ADCLCD控制電路觸摸屏控制電路通過兩個120pin的連接器連接到EDR板Module板EDR板PCMCIA/CF卡接口MMC/SD卡接口RTC——實時時鐘數(shù)碼管和LED按鍵Sw1-sw4直入鍵盤Sw5-sw16矩陣掃描QuickCapture攝像頭模塊——支持400萬像素數(shù)碼鏡頭,并能提供最大416Mbps的數(shù)據(jù)傳輸速率EDR板RS232BT_UART(藍(lán)牙串口)——只有收發(fā)信號線IR_UART(紅外串口)——RS485GPS模塊接口——需另外的GPS模塊板CAN總線接口——汽車應(yīng)用,使用270的SPI(串行外設(shè)接口)直流電機(jī)——接口信號電壓為+3.3v和-3.3v時,分別正向轉(zhuǎn)動和反向轉(zhuǎn)動EDR板步進(jìn)電機(jī)——有方向端,四相步進(jìn)ABCDUSB接口兩個HOST接口,支持spec1.1規(guī)范一個SLAVE接口擴(kuò)展插槽——CON10,CON11可外接AD/DA模塊板電源外接+5V/3A,+12V/2A輸出的開關(guān)電源5v及經(jīng)由變換的3.3v給各邏輯電路供電12v給顯示屏、步進(jìn)電機(jī)、風(fēng)扇供電EDR板網(wǎng)絡(luò)接口——直接從Module板引下來撥碼開關(guān)——控制功能復(fù)用選擇,例如QuickCapture是和馬達(dá),按鍵,485共用信號線EDR板Banyan-U仿真器20pins的JTAG接口和USB接口支持ARM7/ARM9/XScale系列CPU支持USB2.0/USB1.1,自動識別核心部分使用CPLD設(shè)計使用USB接口供電JTAG接口電平由目標(biāo)板決定,可以支持多種電壓的CPUBanyan-U仿真器基礎(chǔ)實驗在線調(diào)試FLASH燒寫B(tài)anyan-UE仿真器安裝使用仿真器的安裝Banyan-UE-1.8.9.exe解壓FlashWrite-v0.4.7到安裝目錄仿真器使用執(zhí)行DaemonU.exe,識別處理器(見下圖)Daemon圖Banyan仿真器燒寫FLASH執(zhí)行flashwrite-v0.4.7.exe,識別flash器件型號,DeviceID選擇要燒寫的鏡像文件,設(shè)置好燒錄地址(flash地址是0x00~0x003ffffff是PAX270處理器上電起始執(zhí)行地址燒寫過程:選擇AUTO,選中其中的erase,program,verify三項,start!Flashwrite參見Banyan-U軟件手冊.pdfBanyan-U硬件手冊.pdfFlashWrite使用手冊.pdf目前已購買的獨立功能模塊藍(lán)牙模塊GPRS模塊GPS模塊EELiod270軟件目前提供WindowsCE和Linux兩種嵌入式OS的支持平臺配套手冊和軟件實驗平臺使用手冊(WindowsCE和Linux)上機(jī)指導(dǎo)書基礎(chǔ)實驗上機(jī)指導(dǎo)書WindowsCE上機(jī)指導(dǎo)書Linux上機(jī)指導(dǎo)書BSP光盤(WindowsCE和Linux)EELIODWinCE軟件EELIODLinuxBSP軟件WindowsCE實驗代碼WindowsCE平臺搭建線程同步調(diào)試驅(qū)動程序結(jié)構(gòu)進(jìn)程通信數(shù)據(jù)庫IO接口-LEDIO接口-電機(jī)動態(tài)鏈接庫WindowsCE實驗代碼無線網(wǎng)絡(luò)通信Ping和UDP實驗設(shè)備驅(qū)動實驗串口實驗CAN總線實驗CF和SD實驗USB攝像頭Linux實驗代碼常用命令及工具M(jìn)akefile實驗Bootloader內(nèi)核編譯文件系統(tǒng)制作GUI應(yīng)用驅(qū)動程序結(jié)構(gòu)IO驅(qū)動Linux實驗代碼SD卡驅(qū)動USB驅(qū)動QT移植串口通信GPRS和GSM通信WebServer移植USB攝像頭嵌入式數(shù)據(jù)庫ARM處理器簡介ARM體系結(jié)構(gòu)的發(fā)展ARM簡介ARM處理器命名規(guī)則ARM7TDMI核命名規(guī)則

7 -體系結(jié)構(gòu)T -Thumb代碼支持(16bit指令)D -Debug硬件調(diào)試模塊支持M -加強的乘法支持I -EmbeddedICELogicS-可綜合的軟核E-DSPJ-Jazeller,允許直接執(zhí)行Java字節(jié)碼ARM處理器支持的運行模式ARM處理器共支持7種運行模式,分別為:用戶(usr):ARM處理器正常的程序執(zhí)行狀態(tài);系統(tǒng)模式(sys):運行具有特權(quán)的操作系統(tǒng)任務(wù);

快速中斷(fiq):用于高速數(shù)據(jù)傳輸或通道處理;外部中斷(irq):用于通用的中斷處理;管理模式(svc):操作系統(tǒng)使用的保護(hù)模式;中止(abt):當(dāng)數(shù)據(jù)或指令訪問中止時進(jìn)入該模式,可用于虛擬存儲及存儲保護(hù);未定義(und):當(dāng)未定義指令執(zhí)行時進(jìn)入該模式,可用于硬件協(xié)處理器的軟件仿真。ARM處理器運行模式除用戶模式之外的其余6種稱為非用戶模式,或特權(quán)模式(PrivilegedModes);而特權(quán)模式中,除系統(tǒng)模式之外的其余5種又稱為異常模式(ExceptionModes)。用戶程序運行在用戶模式下,不能訪問一些受操作系統(tǒng)保護(hù)的系統(tǒng)資源。應(yīng)用程序也不能直接進(jìn)行處理器模式的切換。當(dāng)需要進(jìn)行處理器模式切換時,應(yīng)用程序可以產(chǎn)生異常處理,在異常處理過程中進(jìn)行處理器處理器模式的切換。這種體系結(jié)構(gòu)可以使系統(tǒng)控制整個系統(tǒng)的資源。

ARM處理器運行模式當(dāng)應(yīng)用程序發(fā)生異常中斷時,處理器進(jìn)入相應(yīng)的異常模式。在每一種異常模式中都有一組寄存器,供相應(yīng)的異常處理程序使用,這樣就可以保證在進(jìn)入異常模式時,用戶模式下的寄存器(保存了程序運行狀態(tài))不被破壞。系統(tǒng)模式系統(tǒng)模式并不是通過異常過程進(jìn)入的,它和用戶模式具有完全一樣的寄存器。但是系統(tǒng)模式屬于特權(quán)模式,可以訪問所有的系統(tǒng)資源,也可以直接進(jìn)行處理器模式切換。它主要供操作系統(tǒng)任務(wù)使用。通常操作系統(tǒng)的任務(wù)需要訪問所有的系統(tǒng)資源,同時該任務(wù)仍然使用用戶模式的寄存組,而不是使用異常模式下相應(yīng)的寄存器組,這樣可以保證當(dāng)異常中斷發(fā)生時可以正常保存當(dāng)前工作狀態(tài),進(jìn)行模式切換。ARM的寄存器組織ARM處理器共有37個32位寄存器,其中31個為通用寄存器,6個狀態(tài)寄存器。ARM狀態(tài)下的寄存器組織未分組寄存器R0~R7分組寄存器R8~R14程序計數(shù)器R15(PC)當(dāng)前程序狀態(tài)寄存器(CPSR)備份的程序狀態(tài)寄存器(SPSR)Thumb狀態(tài)下的寄存器組織Thumb狀態(tài)下的寄存器組織通用寄存器R0~R7程序計數(shù)器PC堆棧指針SP(R13)連接寄存器LRCPSR和SPSRR13(SP-堆棧指針)每種異常模式都有備份寄存器R13_usr,R13_svc,R13_abt,R13_und,R13_irq,R13_fiq用作堆棧指針每種異常模式有自己專用的棧地址R13用于被中斷程序的現(xiàn)場保護(hù),即保存需要保護(hù)的寄存器值R14(LR-連接寄存器)每種異常模式都有備份寄存器R14_usr,R14_svc,R14_abt,R14_und,R14_irq,R14_fiq兩種作用存放當(dāng)前子程序的返回地址異常中斷發(fā)生時,該異常模式R14_xxx被設(shè)置為將要返回的地址R15(PC-程序計數(shù)器)指令地址PC=當(dāng)前執(zhí)行指令地址+8地址值字對齊及半字對齊例MOVPC,PC ;跳轉(zhuǎn)到下面第二條指令狀態(tài)寄存器狀態(tài)寄存器:當(dāng)前程序狀態(tài)寄存器CPSR,可以在任何工作模式下被訪問;程序狀態(tài)備份寄存器SPSR,只有在異常模式下,才能被訪問;CPSR-當(dāng)前程序狀態(tài)寄存器(一)當(dāng)前程序狀態(tài)寄存器CPSR

N:補碼形式的有符號數(shù)運算時,1為負(fù),0為正;Z:1表示結(jié)果為零;C:加減法的進(jìn)位或借位,以及非加減法的最后移位;V:1表示補碼形式的有符號數(shù)加減運算時符號位溢出;CPSR-當(dāng)前程序狀態(tài)寄存器(二)Q:v5以上版本才有,描述增強DSP運算指令是否發(fā)生溢出;I、F:中斷禁止位,1表示中斷禁止;T:指示處理器處于ARM或Thumb工作狀態(tài);CPSR-當(dāng)前程序狀態(tài)寄存器(三)M[4:0]:表示處理器的運行模式0b10000——User0b10001——FIQ0b10010——IRQ0b10011——Supervisor0b10111——Abort0b11011——Undefined0b11111——SystemARM控制程序執(zhí)行的方式正常執(zhí)行,每執(zhí)行一條指令A(yù)RM指令PC+4Thumb指令PC+2跳轉(zhuǎn):B、BL、BX、BLX異常中斷執(zhí)行完當(dāng)前指令,跳轉(zhuǎn)到異常中斷處理程序執(zhí)行完返回到發(fā)生中斷指令的下一條處要保護(hù)和恢復(fù)被中斷程序的執(zhí)行現(xiàn)場ARM處理器的異常中斷(一)異常是指正常的程序執(zhí)行流程發(fā)生暫時的停止或改變,例如在復(fù)位、有中斷請求及指令預(yù)取中止時;

ARM處理器支持7種類型的異常。復(fù)位(RESET):當(dāng)處理器的復(fù)位電平有效時,產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到復(fù)位異常處理程序處執(zhí)行。未定義指令(UDEF):當(dāng)ARM處理器或協(xié)處理器遇到不能處理的指令時,產(chǎn)生未定義指令異常。可使用該異常機(jī)制進(jìn)行軟件仿真。軟件中斷(SWI):該異常由執(zhí)行SWI指令產(chǎn)生,可用于用戶模式下的程序調(diào)用特權(quán)操作指令。使用該異常機(jī)制可以實現(xiàn)系統(tǒng)功能調(diào)用。ARM處理器的異常中斷(二)指令預(yù)取中止(PABT):若處理器預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問,存儲器會向處理器發(fā)出中止信號,但當(dāng)預(yù)取的指令被執(zhí)行時,才會產(chǎn)生指令預(yù)取中止異常。數(shù)據(jù)中止(DABT):若處理器數(shù)據(jù)訪問指令的地址不存在,或該地址不允許當(dāng)前指令訪問時,產(chǎn)生數(shù)據(jù)中止異常。IRQ(外部中斷請求):當(dāng)處理器的外部中斷請求引腳有效,且CPSR中的I位為0時,產(chǎn)生IRQ異常。系統(tǒng)的外設(shè)可通過該異常請求中斷服務(wù)。FIQ(快速中斷請求):當(dāng)處理器的快速中斷請求引腳有效,且CPSR中的F位為0時,產(chǎn)生FIQ異常。ARM處理器的異常中斷(三)異常類型模式正常向量地址高向量地址復(fù)位管理0x000000000xFFFF0000未定義指令未定義0x000000040xFFFF0004軟件中斷管理0x000000080xFFFF0008指令預(yù)取中止中止0x0000000C0xFFFF000C數(shù)據(jù)中止中止0x000000100xFFFF0010IRQIRQ0x000000180xFFFF0018FIQFIQ0x0000001C0xFFFF001CARM處理器的異常中斷(四)異常優(yōu)先級異常類型1(最高)復(fù)位2數(shù)據(jù)中止3FIQ4IRQ5預(yù)取中止6未定義指令,SWIARM處理器對異常的處理(一)對異常的響應(yīng):將下一條指令的地址存入相應(yīng)異常類型的連接寄存器LR_mode;保存用戶寄存器值到堆棧中將CPSR復(fù)制到相應(yīng)異常類型的SPSR_mode中;設(shè)置CPSR的M[4:0],強制改變到相應(yīng)的運行模式;禁止正常中斷,如果異常類型為快速中斷或復(fù)位,同時禁止快中斷;強制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。ARM處理器對異常的處理(二)異常返回從堆棧中恢復(fù)用戶寄存器將SPSR_mode復(fù)制回CPSR中復(fù)制LR_mode->PC未定義異常的操作過程進(jìn)入異常:R14_und=產(chǎn)生異常的下一條指令地址SPSR_und=CPSRCPSR[4:0]=0b11011/*進(jìn)入未定義運行模式*/CPSR[5]=0/*進(jìn)入ARM工作狀態(tài)*/CPSR[7]=1/*禁止正常中斷*/如果設(shè)置了高向量模式,則PC=0xFFFF0004 否則 PC=0x00000004退出異常:MOVSPCR14恢復(fù)PC(從R14_und)和CPSR(從SPSR_und),并返回到該未定義指令的下一條指令處ARM推薦的異常退出指令異常類型R14(ARM)R14(Thumb)返回指令BLPC+4PC+2MOVPC,R14SWIPC+4PC+2MOVSPC,R14UDEFPC+4PC+2MOVSPC,R14FIQPC+4PC+4SUBSPC,R14,#4IRQPC+4PC+4SUBSPC,R14,#4PABTPC+4PC+4SUBSPC,R14,#4DABTPC+8PC+8SUBSPC,R14,#8RESET---例:SWI中斷的R14例如: 0x8000

mov...... 0x8004

add...... 0x8008

SWI...... 0x800C

mov...... 0x8010

add......當(dāng)程序執(zhí)行SWI異常時,PC指向0x8010,在跳轉(zhuǎn)到異常向量的之前,ARM會把R14調(diào)整到0x800CARM數(shù)據(jù)類型字(Word):在ARM體系結(jié)構(gòu)中,字的長度為32位,而在8位/16位處理器體系結(jié)構(gòu)中,字的長度一般為16位,請注意區(qū)分。半字(Half-Word):在ARM體系結(jié)構(gòu)中,半字的長度為16位,與8位/16位處理器體系結(jié)構(gòu)中字的長度一致。字節(jié)(Byte):在ARM體系結(jié)構(gòu)和8位/16位處理器體系結(jié)構(gòu)中,字節(jié)的長度均為8位。存儲器組織以0x87654321為例小端方式對應(yīng)于地址[A+3]=0x87,[A+2]=0x65,[A+1]=0x43,[A]=0x21大端方式對應(yīng)于地址[A]=0x87,[A+1]=0x65,[A+2]=0x43,[A+3]=0x21Byte[A+3]Byte[A+2]Byte[A+1]Byte[A]Bit31bit0字對齊與半字對齊ARM狀態(tài),字地址的低兩位bits[1:0]必須為0b00,半字地址的最低位bit[0]為0b0Thumb狀態(tài),字地址最地位bit[0]必須為0b0如果寫入PC的指令地址非對齊ARMV3及以下,忽略R15的bits[1:0]ARMV4及以上,執(zhí)行結(jié)果不可預(yù)知Thumb,忽略R15的bit[0]ARM處理器工作狀態(tài)從編程的角度看,ARM處理器有2種工作狀態(tài)并可自由切換:ARM狀態(tài):處理器執(zhí)行32位的、字對準(zhǔn)ARM指令;Thumb狀態(tài):處理器執(zhí)行16位、半字對準(zhǔn)的Thumb指令。ARM/Thumb狀態(tài)的切換ARM處理器總是從ARM狀態(tài)開始執(zhí)行可用指令實現(xiàn)狀態(tài)切換BLXLDR、LDM及POP當(dāng)處理器進(jìn)入異常中斷處理程序時,自動切換到ARM狀態(tài)如果從Thumb狀態(tài)進(jìn)入異常,處理完成退出后仍自動進(jìn)入Thumb狀態(tài)立即數(shù)一條ARM指令32位,可能含12位立即數(shù)immediate=immed_8循環(huán)右移(2*rotate_imm)合法:0xff,x0104,0xff0,0x3f0非法:0x101,0xff1,0x102(非偶數(shù)位)Qu:0x1fcARM指令系統(tǒng)ARM指令集包括:跳轉(zhuǎn)指令數(shù)據(jù)處理指令程序狀態(tài)寄存器處理指令加載/存儲指令協(xié)處理器指令異常產(chǎn)生指令A(yù)RM指令系統(tǒng)跳轉(zhuǎn)B,BL,BLX移位ASR,LSL,LSR,ROR,ROX存儲加載LDR,STR軟中斷SWI指令名指令含義操作ADD相加Rd=Rn+op2SUB相減Rd=Rn-op2RSB反向相減Rd=op2-RnADC帶進(jìn)位加Rd=Rn+op2+CSBC帶借位減Rd=Rn-op2+C-1RSC反向帶借位減Rd=op2-Rn+C-1AND位與Rd=RnANDop2ORR位或Rd=RnORop2EOR位異或Rd=RnEORop2BIC位清零Rd=RnANDNOTop2MOV傳送Rd=op2MVN傳送非Rd=NOTop2CMP比較Rn-op2CMN負(fù)向比較Rd=op2-RnTST測試RnANDop2TEQ測試相等RnEORop2指令名指令含義操作MUL乘法Rd=Rm*RsMLA乘加Rd=Rm*Rs+RnUMULL無符號數(shù)乘法RdH:RdL=Rm*RsUMLAL無符號數(shù)乘加RdH:RdL+=Rm*RsSMULL有符號數(shù)乘RdH:RdL=Rm*RsSMLAL有符號數(shù)乘加RdH:RdL+=Rm*Rs多寄存器加載/存儲指令(一)該指令完成多個通用寄存器與存儲單元之間的數(shù)據(jù)傳送。LDM|STM{cond}尋址方式Rn{!},通用寄存器組{^}符號的含義:尋址方式為:IA、IB、DA、DB、FD、ED、FA、EA;Rn:基址寄存器,不允許為R15(PC);?。褐噶顖?zhí)行后,刷新基址寄存器Rn“^”:當(dāng)寄存器列表包含PC且為LDM指令時,同時將SPSR拷貝到CPSR,用于異常返回;當(dāng)寄存器列表不包含PC,指示指令中所有的寄存器為用戶模式下的寄存器LDM/STM操作語法:<LDM|STM>{<cond>}<addressing

溫馨提示

  • 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

提交評論