嵌入式系統(tǒng)原理與應(yīng)用-基于Cortex-A53微處理器 課件 第5章 硬件平臺(tái)_第1頁(yè)
嵌入式系統(tǒng)原理與應(yīng)用-基于Cortex-A53微處理器 課件 第5章 硬件平臺(tái)_第2頁(yè)
嵌入式系統(tǒng)原理與應(yīng)用-基于Cortex-A53微處理器 課件 第5章 硬件平臺(tái)_第3頁(yè)
嵌入式系統(tǒng)原理與應(yīng)用-基于Cortex-A53微處理器 課件 第5章 硬件平臺(tái)_第4頁(yè)
嵌入式系統(tǒng)原理與應(yīng)用-基于Cortex-A53微處理器 課件 第5章 硬件平臺(tái)_第5頁(yè)
已閱讀5頁(yè),還剩65頁(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)介

嵌入式系統(tǒng)原理與應(yīng)用電子與電氣工程學(xué)院第五章硬件平臺(tái)教師:程蔚正大氣象厚德載物MinnanUniversityofScienceandTechnology硬件平臺(tái)CONTENTS01.Cortex-A53處理器02.GEC6818開(kāi)發(fā)平臺(tái)簡(jiǎn)介03.通用I/O—點(diǎn)亮LED燈04.

外部中斷05.UART串口通信正大氣象厚德載物MinnanUniversityofScienceandTechnology01PARTONECortex-A53處理器正大氣象厚德載物MinnanUniversityofScienceandTechnology正大氣象厚德載物MinnanUniversityofScienceandTechnology1.Cortex-A53內(nèi)部功能及特點(diǎn)Cortex-A53處理器,屬于A50系列處理器的產(chǎn)品,這一系列產(chǎn)品標(biāo)志著進(jìn)一步擴(kuò)大ARM在高性能與低功耗領(lǐng)域的領(lǐng)先地位,Cortex-A53處理器就是由此誕生的。ARMCortex-A53是實(shí)現(xiàn)ARMHoldings設(shè)計(jì)的ARMv8-A64位指令集的前兩個(gè)微體系結(jié)構(gòu)之一。Cortex-A53是一款功耗效率很高的ARM應(yīng)用處理器。可獨(dú)立運(yùn)作或整合為ARMbig.LITTLE處理器架構(gòu)。該處理器系列的可擴(kuò)展性使ARM的合作伙伴能夠針對(duì)智能手機(jī)、高性能服務(wù)器等各類(lèi)不同市場(chǎng)需求開(kāi)發(fā)系統(tǒng)級(jí)芯片(SoC)。Cortex-A53將持續(xù)推動(dòng)移動(dòng)計(jì)算體驗(yàn)的發(fā)展,提供最多可達(dá)現(xiàn)有超級(jí)手機(jī)(superphone)三倍的性能,還可將現(xiàn)有超級(jí)手機(jī)體驗(yàn)延伸至入門(mén)級(jí)智能手機(jī)。配合ARM及ARM合作伙伴所提供的完整工具套件與仿真模型以加快并簡(jiǎn)化軟件開(kāi)發(fā),全面兼容現(xiàn)有的ARM32位軟件生態(tài)系統(tǒng),并能與ARM快速發(fā)展中的64位軟件生態(tài)系統(tǒng)相整合。IP內(nèi)核硬化加速技術(shù)以及先進(jìn)互補(bǔ)型場(chǎng)效應(yīng)晶體管(ComplementaryMetalOxideSemiconductor,CMOS)與鰭式場(chǎng)效應(yīng)晶體管(FinField-EffectTransistor,F(xiàn)inFET)制程技術(shù)的支持下,Cortex-A53處理器可提供數(shù)GHz級(jí)別的性能。正大氣象厚德載物MinnanUniversityofScienceandTechnologyCortex-A53內(nèi)部構(gòu)造和內(nèi)核特點(diǎn)Cortex-A53內(nèi)核特點(diǎn)概述:具有雙向超標(biāo)量,有序執(zhí)行的8級(jí)流水線處理器。每個(gè)核心都必須使用DSP和NEONSIMD擴(kuò)展。板載VFPv4浮點(diǎn)單元(每個(gè)核心)。硬件虛擬化支持。TrustZone安全擴(kuò)展。10項(xiàng)L1TLB和512項(xiàng)L2TLB。4Kbit件分支預(yù)測(cè)器,256項(xiàng)間接分支預(yù)測(cè)器。正大氣象厚德載物MinnanUniversityofScienceandTechnology2.ARM的基本數(shù)據(jù)類(lèi)型ARMv8架構(gòu)支持的基本數(shù)據(jù)類(lèi)型有以下5種。Byte:字節(jié),8bit。Halfword:半字,16bit(半字必須與2字節(jié)邊界對(duì)齊)。Word:字,32bit(字必須與4字節(jié)邊界對(duì)齊)。DoubleWord:雙字,64bit。QueaWord:四字,128bit。存儲(chǔ)器可以看作是序號(hào)為0~232-1的線性字節(jié)陣列。表3-1所示為ARM存儲(chǔ)器的組織結(jié)構(gòu)。其中每一個(gè)字節(jié)都有唯一的地址。字節(jié)可以占用任意位置。半字占有兩個(gè)字節(jié)的位置,該位置開(kāi)始于偶數(shù)字節(jié)地址(地址最末一位為0)。長(zhǎng)度為1個(gè)字的數(shù)據(jù)項(xiàng)占用一組4字節(jié)的位置,該位置開(kāi)始于4的倍數(shù)的字節(jié)地址(地址最末兩位為00)。正大氣象厚德載物MinnanUniversityofScienceandTechnology存儲(chǔ)器大/小端從軟件角度看,內(nèi)存相對(duì)于一個(gè)大的字節(jié)數(shù)組,其中每個(gè)數(shù)組元素(字節(jié))都是可尋址的。ARM支持大端模式(big-endian)和小端模式(little-endian)兩種內(nèi)存模式。大端模式和小端模式數(shù)據(jù)存放的特點(diǎn)正大氣象厚德載物MinnanUniversityofScienceandTechnology3.內(nèi)核工作模式ARM架構(gòu)中處理器有不同的運(yùn)行模式,因此同一個(gè)功能的寄存器在不同的運(yùn)行模式下可能對(duì)應(yīng)不同的物理寄存器,這些寄存器被稱(chēng)為備份寄存器。如SPSR_svc表示svc模式下使用的SPSR寄存器。

ARM架構(gòu)中常用的運(yùn)行模式。ARMv8-A架構(gòu)還有安全監(jiān)控模式(MonitorMode,mon)工作模式,用于處理器安全狀態(tài)與非安全狀態(tài)的切換。捕獲異常模式(HypervisorMode,hyp)模式則用于對(duì)虛擬化有關(guān)功能的支持。正大氣象厚德載物MinnanUniversityofScienceandTechnology4.存儲(chǔ)系統(tǒng)ARM的存儲(chǔ)器系統(tǒng)是由多級(jí)構(gòu)成的,可以分為內(nèi)核級(jí)、芯片級(jí)、板卡級(jí)和外設(shè)級(jí)。存儲(chǔ)器的層次結(jié)構(gòu)如圖:正大氣象厚德載物MinnanUniversityofScienceandTechnology5.指令流水線處理器按照一系列步驟來(lái)執(zhí)行每一條指令,典型的步驟如下:從存儲(chǔ)器讀取指令(fetch)。譯碼以鑒別它屬于哪一條指令(decode)。從指令中提取指令的操作數(shù)(這些操作數(shù)往往存在于寄存器reg中)。將操作數(shù)進(jìn)行組合以得到結(jié)果或存儲(chǔ)器地址(ArithmeticandLogicUnit,ALU)。如果需要,則訪問(wèn)存儲(chǔ)器以存儲(chǔ)數(shù)據(jù)(mem)。將結(jié)果寫(xiě)回到寄存器堆(res)。正大氣象厚德載物MinnanUniversityofScienceandTechnology3級(jí)流水線到ARM7為止的ARM處理器使用簡(jiǎn)單的3級(jí)流水線,它包括下列流水線級(jí)。取指令(fetch):從寄存器裝載一條指令。譯碼(decode):識(shí)別被執(zhí)行的指令,并為下一個(gè)周期準(zhǔn)備數(shù)據(jù)通路的控制信號(hào)。在這一級(jí),指令占有譯碼邏輯,不占用數(shù)據(jù)通路。執(zhí)行(excute):處理指令并將結(jié)果寫(xiě)回寄存器。3級(jí)流水線指令的執(zhí)行過(guò)程,如下圖:當(dāng)處理器執(zhí)行簡(jiǎn)單的數(shù)據(jù)處理指令時(shí),流水線使得平均每個(gè)時(shí)鐘周期能完成1條指令。但1條指令需要3個(gè)時(shí)鐘周期來(lái)完成,因此,有3個(gè)時(shí)鐘周期的延時(shí)(latency),但吞吐率(throughput)是每個(gè)周期1條指令。正大氣象厚德載物MinnanUniversityofScienceandTechnology5級(jí)流水線所有的處理器都要滿足對(duì)高性能的要求,在ARM核中使用的3級(jí)流水線的性價(jià)比是很高的。但是,為了得到更高的性能,需要重新考慮處理器的組織結(jié)構(gòu)。有兩種方法來(lái)提高性能。提高時(shí)鐘頻率。時(shí)鐘頻率的提高,必然引起指令執(zhí)行周期的縮短,所以要求簡(jiǎn)化流水線每一級(jí)的邏輯,流水線的級(jí)數(shù)就要增加。減少每條指令的平均指令周期數(shù)CPI。這就要求重新考慮3級(jí)流水線ARM中多于1個(gè)流水線周期的實(shí)現(xiàn)方法,以便使其占有較少的周期,或者減少因指令執(zhí)行造成的流水線停頓,也可以將兩者結(jié)合起來(lái)。在ARM9TDMI中使用了典型的5級(jí)流水線,5級(jí)流水線包括下面的流水線級(jí)。取指令(fetch):從存儲(chǔ)器中取出指令,并將其放入指令流水線。譯碼(decode):指令被譯碼,從寄存器堆中讀取寄存器操作數(shù)。在寄存器堆中有3個(gè)操作數(shù)讀端口,因此,大多數(shù)ARM指令能在1個(gè)周期內(nèi)讀取其操作數(shù)。執(zhí)行(execute):將其中1個(gè)操作數(shù)移位,并在ALU中產(chǎn)生結(jié)果。如果指令是Load或Store指令,則在ALU中計(jì)算存儲(chǔ)器的地址。緩沖/數(shù)據(jù)(buffer/data):如果需要?jiǎng)t訪問(wèn)數(shù)據(jù)存儲(chǔ)器,否則ALU只是簡(jiǎn)單地緩沖1個(gè)時(shí)鐘周期。⑤回寫(xiě)(write-back):將指令的結(jié)果回寫(xiě)到寄存器堆,包括任何從寄存器讀出的數(shù)據(jù)。5級(jí)流水線指令的執(zhí)行過(guò)程正大氣象厚德載物MinnanUniversityofScienceandTechnology影響流水線性能的因素1.互鎖在典型的程序處理過(guò)程中,經(jīng)常會(huì)遇到這樣的情形,即一條指令的結(jié)果被用做下一條指令的操作數(shù)。例如,有如下指令序列:

LDRX0,[X0,#0]

ADDX0,X0,X1//在5級(jí)流水線上產(chǎn)生互鎖

從例子可以看出,流水線的操作產(chǎn)生中斷,因?yàn)榈?條指令的結(jié)果在第2條指令取數(shù)時(shí)還沒(méi)有產(chǎn)生。第2條指令必須停止,直到結(jié)果產(chǎn)生為止。2.跳轉(zhuǎn)指令跳轉(zhuǎn)指令也會(huì)破壞流水線的行為,因?yàn)楹罄m(xù)指令的取指步驟受到跳轉(zhuǎn)目標(biāo)計(jì)算的影響,因而必須推遲。但是,當(dāng)跳轉(zhuǎn)指令被譯碼時(shí),在它被確認(rèn)是跳轉(zhuǎn)指令之前,后續(xù)的取指操作已經(jīng)發(fā)生。這樣一來(lái),已經(jīng)被預(yù)取進(jìn)入流水線的指令不得不被丟棄。如果跳轉(zhuǎn)目標(biāo)的計(jì)算是在ALU階段完成的,那么在得到跳轉(zhuǎn)目標(biāo)之前已經(jīng)有兩條指令按原有指令流讀取。正大氣象厚德載物MinnanUniversityofScienceandTechnology6.寄存器組織AArch32重要寄存器簡(jiǎn)介寄存器類(lèi)型Bit描述R0-R1432bit通用寄存器,但是ARM不建議使用有特殊功能的R13、R14、R15作為通用寄存器使用SP_x32bit通常稱(chēng)R13為堆棧指針,除了User和Sys模式外,其他各種模式下都有對(duì)應(yīng)的SP_x寄存器:x={und/svc/abt/irq/fiq/hyp/mon}LR_x32bit稱(chēng)R14為鏈接寄存器,除了User和Sys模式外,其他各種模式下都有對(duì)應(yīng)的SP_x寄存器:x={und/svc/abt/svc/irq/fiq/mon},用于保存程序返回鏈接信息地址,AArch32環(huán)境下,也用于保存異常返回地址,也就說(shuō)LR和ELR是公用一個(gè),AArch64下是獨(dú)立的ELR_hyp32bitHypmode下特有的異常鏈接寄存器,保存異常進(jìn)入Hypmode時(shí)的異常地址PC32bit通常稱(chēng)R15為程序計(jì)算器PC指針,AArch32中PC指向取指地址,是執(zhí)行指令地址+8,AArch64中PC讀取時(shí)指向當(dāng)前指令地址CPSR32bit記錄當(dāng)前PE的運(yùn)行狀態(tài)數(shù)據(jù),CPSR.M[4:0]記錄運(yùn)行模式,AArch64下使用PSTATE代替APSR32bit應(yīng)用程序狀態(tài)寄存器,EL0下可以使用APSR訪問(wèn)部分PSTATE值SPSR_x32bit是CPSR的備份,除了User和Sys模式外,其他各種模式下都有對(duì)應(yīng)的SPSR_x寄存器:x={und/svc/abt/irq/fiq/hpy/mon},注意:這些模式只適用于32bit運(yùn)行環(huán)境HCR32bitEL2特有,HCR.{TEG,AMO,IMO,FMO,RW},控制EL0/EL1的異常路由SCR32bitEL3特有,SCR.{EA,IRQ,FIQ,RW},控制EL0/EL1/EL2的異常路由,注意EL3始終不會(huì)路由VBAR32bit保存任意異常進(jìn)入非Hypmode&非Monitormode的跳轉(zhuǎn)向量基地址HVBAR32bit保存任意異常進(jìn)入Hypmode的跳轉(zhuǎn)向量基地址MVBAR32bit保存任意異常進(jìn)入Monitormode的跳轉(zhuǎn)向量基地址ESR_ELx32bit保存異常進(jìn)入ELx時(shí)的異常綜合信息,包含異常類(lèi)型EC等,可以通過(guò)EC值判斷異常classPSTATE

不是一個(gè)寄存器,是保存當(dāng)前PE狀態(tài)的一組寄存器統(tǒng)稱(chēng),其中可訪問(wèn)寄存器有:PSTATE.{NZCV,DAIF,CurrentEL,SPSel},屬于ARMv8新增內(nèi)容,主要用于64bit環(huán)境下正大氣象厚德載物MinnanUniversityofScienceandTechnologyA32狀態(tài)下寄存器組織正大氣象厚德載物MinnanUniversityofScienceandTechnology程序狀態(tài)寄存器在AArch32狀態(tài)下使用當(dāng)前程序狀態(tài)寄存器(CurrentProgramStatusRegister,CPSR)記錄程序的執(zhí)行狀態(tài),可以在任何處理器模式下被訪問(wèn),它包含下列內(nèi)容:ALU(ArithmeticLogicUnit,算術(shù)邏輯單元)狀態(tài)標(biāo)志的備份。當(dāng)前的處理器模式。中斷使能標(biāo)志。設(shè)置處理器的狀態(tài)。每一種處理器模式下都有一個(gè)專(zhuān)用的物理寄存器做備份程序狀態(tài)寄存器(SavedProgramStatusRegister,SPSR)。當(dāng)特定的異常中斷發(fā)生時(shí),這個(gè)物理寄存器負(fù)責(zé)存放當(dāng)前程序狀態(tài)寄存器的內(nèi)容。當(dāng)異常處理程序返回時(shí),再將其內(nèi)容恢復(fù)到當(dāng)前程序狀態(tài)寄存器。正大氣象厚德載物MinnanUniversityofScienceandTechnology標(biāo)志位N(Negative)、Z(Zero)、C(Carry)和V(Overflow)通稱(chēng)為條件標(biāo)志位。這些條件標(biāo)志位會(huì)根據(jù)程序中的算術(shù)指令或邏輯指令的執(zhí)行結(jié)果進(jìn)行修改,而且這些條件標(biāo)志位可由大多數(shù)指令檢測(cè)以決定指令是否執(zhí)行。在ARMv4T架構(gòu)中,所有的ARM指令都可以條件執(zhí)行,而Thumb指令卻不能。各條件標(biāo)志位的具體含義如下。(1)N本位設(shè)置成當(dāng)前指令運(yùn)行結(jié)果的bit[31]的值。當(dāng)兩個(gè)由補(bǔ)碼表示的有符號(hào)整數(shù)運(yùn)算時(shí),N=1表示運(yùn)算的結(jié)果為負(fù)數(shù),N=0表示結(jié)果為正數(shù)或零。(2)ZZ=1表示運(yùn)算的結(jié)果為零,Z=0表示運(yùn)算的結(jié)果不為零。(3)C下面分4種情況討論C的設(shè)置方法。在加法指令中(包括比較指令CMN),當(dāng)結(jié)果產(chǎn)生了進(jìn)位,則C=1,表示無(wú)符號(hào)數(shù)運(yùn)算發(fā)生上溢出;其他情況下C=0。在減法指令中(包括比較指令CMP),當(dāng)運(yùn)算中發(fā)生錯(cuò)位(即無(wú)符號(hào)數(shù)運(yùn)算發(fā)生下溢出),則C=0;其他情況下C=1。對(duì)于在操作數(shù)中包含移位操作的運(yùn)算指令(非加/減法指令),C被設(shè)置成被移位寄存器最后移出去的位。對(duì)于其他非加/減法運(yùn)算指令,C的值通常不受影響。(4)V下面分兩種情況討論V的設(shè)置方法。對(duì)于加/減運(yùn)算指令,當(dāng)操作數(shù)和運(yùn)算結(jié)果都是以二進(jìn)制的補(bǔ)碼表示的帶符號(hào)的數(shù)時(shí),且運(yùn)算結(jié)果超出了有符號(hào)運(yùn)算的范圍是溢出。V=1表示符號(hào)位溢出。對(duì)于非加/減法指令,通常不改變標(biāo)志位V的值(具體可參照ARM指令手冊(cè))。盡管以上C和V的定義看起來(lái)頗為復(fù)雜,但使用時(shí)在大多數(shù)情況下用一個(gè)簡(jiǎn)單的條件測(cè)試指令即可,不需要程序員計(jì)算出條件碼的精確值即可得到需要的結(jié)果。正大氣象厚德載物MinnanUniversityofScienceandTechnology控制位CPSR的低8位(I、F、T、M[4]及M[3:0])統(tǒng)稱(chēng)為控制位。當(dāng)異常發(fā)生時(shí),這些位的值將發(fā)生相應(yīng)的變化。另外,如果在特權(quán)模式下,也可以通過(guò)軟件編程來(lái)修改這些位的值。(1)中斷禁止位I=1,IRQ被禁止。F=1,F(xiàn)IQ被禁止。(2)狀態(tài)控制位T位是處理器的狀態(tài)控制位。T=0,處理器處于ARM狀態(tài)(即正在執(zhí)行32位的ARM指令)。T=1,處理器處于Thumb狀態(tài)(即正在執(zhí)行16位的Thumb指令)。當(dāng)然,T位只有在T系列的ARM處理器上才有效,在非T系列的ARM版本中,T位將始終為0。正大氣象厚德載物MinnanUniversityofScienceandTechnology模式控制位M[3:0]作為位模式控制位,這些位的組合確定了處理器處于哪種狀態(tài)。如表所示列出了其具體含義。M[3∶0]處理器模式0b0000User0b0001FIQ0b0010IRQ0b0011Supervisor0b0111Abort0b1010Hyp0b1011Undefined0b1111System正大氣象厚德載物MinnanUniversityofScienceandTechnology芯片內(nèi)部構(gòu)成框圖02PARTTWO開(kāi)發(fā)平臺(tái)簡(jiǎn)介正大氣象厚德載物MinnanUniversityofScienceandTechnology正大氣象厚德載物MinnanUniversityofScienceandTechnologyGEC6818開(kāi)發(fā)板是廣州粵嵌通信科技股份有限公司研發(fā)的一款基于三星的S5P6818的硬件平臺(tái),如圖所示。GEC6818開(kāi)發(fā)平臺(tái),核心板采用10層板工藝設(shè)計(jì),確保穩(wěn)定可靠,可以批量用于平板電腦,車(chē)機(jī),學(xué)習(xí)機(jī),POS機(jī),游戲機(jī),行業(yè)監(jiān)控等多種領(lǐng)域。該平臺(tái)搭載三星Cortex-A53系列高性能八核處理器S5P6818,最高主頻高達(dá)1.4GHz,可應(yīng)用于嵌入式Linux和Android等操作系統(tǒng)的驅(qū)動(dòng)、應(yīng)用開(kāi)發(fā)。開(kāi)發(fā)板留有豐富的外設(shè),支持千兆以太網(wǎng)、板載LVDS接口、MIPI接口、USB接口等。03PARTTHERE通用I/O-點(diǎn)亮LED燈正大氣象厚德載物MinnanUniversityofScienceandTechnology正大氣象厚德載物MinnanUniversityofScienceandTechnology一、分析LED的原理圖1、控制引腳2、亮滅原理I/OA/B/C/D/E/F32個(gè)引腳GPIOA0-GPIOA31GPIOC7---function1GPIOC8---function1GPIOC17---function1GPIOE13---function0正大氣象厚德載物MinnanUniversityofScienceandTechnology

二、裸機(jī)編程的思路(1)分析原理圖,理解硬件的控制原理—>(2)找到控制LED的GPIO口—>(3)查找CPU的使用手冊(cè),找到控制GPIO的寄存器—>(4)理解寄存器的控制原理—>(5)編寫(xiě)程序,通過(guò)寄存器的地址來(lái)訪問(wèn)寄存器。正大氣象厚德載物MinnanUniversityofScienceandTechnology

三、寄存器ARMPoweredProductsCPU使用:SEC_S5P6818X_Users_Manual_preliminary_Ver_0.00.pdf(S5P6818說(shuō)明手冊(cè))正大氣象厚德載物MinnanUniversityofScienceandTechnology

1、引腳功能配置寄存器--GPIOxALTFN0/GPIOxALTFN1ARMPoweredProductsI/O口是復(fù)用的,多功能可以將一個(gè)引腳配置成普通的GPIO,引腳的功能對(duì)應(yīng)關(guān)系,需要查看手冊(cè)的第二章。配置功能C7---GPIOCALTFN0[1514]=01C8---GPIOCALTFN0[1716]=01C17--GPIOCALTFN1[32]=01E13--GPIOEALTFN0[2726]=00正大氣象厚德載物MinnanUniversityofScienceandTechnology

ARMPoweredProducts2、設(shè)置GPIO為輸入/輸出模式---GPIOxOUTENBARMPoweredProductsC7---GPIOCALTFN0[1514]=01C8---GPIOCALTFN0[1716]=01C17--GPIOCALTFN1[32]=01E13--GPIOEALTFN0[2726]=002、配置輸出模式:GPIOCOUTENB[7]=1GPIOCOUTENB[8]=1GPIOCOUTENB[17]=1GPIOEOUTENB[13]=1正大氣象厚德載物MinnanUniversityofScienceandTechnology

ARMPoweredProducts3、GPIO輸出電平的設(shè)置寄存器---GPIOxOUTARMPoweredProducts當(dāng)一個(gè)普通GPIO設(shè)置成輸出后,可以通過(guò)這個(gè)寄存器設(shè)置輸出的電平2、配置輸出高/低電平:GPIOCOUT[7]=1—高電平—滅GPIOCOUT[7]=0—低電平—亮GPIOCOUT[8]=1/0GPIOCOUT[17]=1/0GPIOEOUT[13]=1/0正大氣象厚德載物MinnanUniversityofScienceandTechnology

ARMPoweredProductsARMPoweredProducts4、檢測(cè)GPIO輸出的電平寄存器---GPIOxPAD當(dāng)一個(gè)引腳配置成輸入引腳后,通過(guò)這個(gè)寄存器讀取引腳輸入的電平正大氣象厚德載物MinnanUniversityofScienceandTechnology

ARMPoweredProducts四、LED控制程序的流程(以GPIOE13控制D7為例)ARMPoweredProducts正大氣象厚德載物MinnanUniversityofScienceandTechnology

ARMPoweredProducts五、配置寄存器的值A(chǔ)RMPoweredProducts1、將控制引腳配置成普通的GPIO(0xC001E020)GPIOEALTFN0[27:26]=00b2、將GPIO配置成輸出模式(0xC001E004)GPIOEOUTENB[13]=1b3、讓GPIO輸出低電平,LED亮(0xC001E000)GPIOEOUT[13]=0b讓GPIO輸出高電平,LED滅(0xC001E000)GPIOEOUT[13]=1b正大氣象厚德載物MinnanUniversityofScienceandTechnology

ARMPoweredProducts五、配置寄存器的值A(chǔ)RMPoweredProducts3、GPIOxALTFN0是32位的寄存器。假設(shè)要配置GPIOxALTFN0[1514]=011、按位與(&)任何數(shù)和0與等于0

x&0=0

2、按位或(|)任何數(shù)和1或等于1

x|1=1元素1元素2與結(jié)果000010100111元素1元素2或結(jié)果000011101111313029282726252423222120191817161514131211109876543210xxxxxxxxxxxxxxxx11xxxxxxxxxxxxxx11111111111111110011111111111111xxxxxxxxxxxxxxxx00xxxxxxxxxxxxxx00000000000000000100000000000000xxxxxxxxxxxxxxxx01xxxxxxxxxxxxxx正大氣象厚德載物MinnanUniversityofScienceandTechnology

ARMPoweredProducts六、編譯裸機(jī)程序步驟ARMPoweredProducts1、編寫(xiě)程序和Makefile文件//GPIOE13----D7//寄存器的定義#defineGPIOEOUT(*(volatileunsignedint*)0xC001E000)//GPIOEOUT-->寄存器的內(nèi)容#defineGPIOEOUTENB(*(volatileunsignedint*)0xC001E004)#defineGPIOEALTFN0(*(volatileunsignedint*)0xC001E020)#defineGPIOEALTFN1(*(volatileunsignedint*)0xC001E024)//裸機(jī)程序不能使用標(biāo)準(zhǔn)C庫(kù),如果要使用,需要移植標(biāo)準(zhǔn)C庫(kù)voiddelay(unsignedvalue);//裸機(jī)程序的入口是_start(),_start()需要放在源文件的最開(kāi)始位置void_start(void){//1、將控制引腳配置成普通的GPIO,GPIOEALTFN0[27:26]=00bGPIOCALTFN0&=~(3<<14);//2、將GPIO配置成輸出模型,GPIOEOUTENB[13]=1bGPIOEOUTENB|=(1<<13);while(1){//3、讓GPIO輸出電平取反,LED反轉(zhuǎn) GPIOEOUT^=(1<<13); delay(0x2000000); }}voiddelay(unsignedvalue){ while(value--);}正大氣象厚德載物MinnanUniversityofScienceandTechnology

ARMPoweredProductsARMPoweredProductsMakefile文件程序正大氣象厚德載物MinnanUniversityofScienceandTechnology

ARMPoweredProducts2、Ubuntu上編譯程ARMPoweredProducts將寫(xiě)好的C程序和Makefile放在一個(gè)文件里面,放在Ubuntu的共享目錄里,然后用make進(jìn)行編譯生成一些文件。(arm-none-linux-gnueabi-gcc)正大氣象厚德載物MinnanUniversityofScienceandTechnology

ARMPoweredProducts電腦、ARM連接:網(wǎng)線、串口轉(zhuǎn)usb、電源線正大氣象厚德載物MinnanUniversityofScienceandTechnology

ARMPoweredProductsARMPoweredProducts正大氣象厚德載物MinnanUniversityofScienceandTechnology

ARMPoweredProducts04PARTFOUR外部中斷正大氣象厚德載物MinnanUniversityofScienceandTechnology正大氣象厚德載物MinnanUniversityofScienceandTechnology在ARM體系結(jié)構(gòu)中,存在7種異常處理。ARM處理器中有7種類(lèi)型的異常,按優(yōu)先級(jí)從高到底的排列如下:復(fù)位異常(Reset)、數(shù)據(jù)異常(DataAbort)、快速中斷異常(FIQ)、外部中斷異常(IRQ)、預(yù)取異常(PrefetchAbort)、軟中斷異常(SWI)和未定義指令異常(Undefinedinterrupt)。當(dāng)異常發(fā)生時(shí),處理器會(huì)把PC設(shè)置為一個(gè)特定的存儲(chǔ)器地址。這一地址存放在被稱(chēng)為向量表(vectortable)的特定地址范圍內(nèi)。向量表的入口是一些跳轉(zhuǎn)指令,跳轉(zhuǎn)到專(zhuān)門(mén)處理某個(gè)異常或中斷的子程序。ARM異常中斷簡(jiǎn)介正大氣象厚德載物MinnanUniversityofScienceandTechnologyS5P6818通用中斷控制器S5P6818芯片內(nèi)部集成了通用中斷控制器(GIC),采用的是ARM公司提供的GIC-400版本。GIC通用中斷控制器主要包括AMBA總線從接口(AMBAsalveinterface),分配器(Distributor),CPU接口(CPUinterface),虛擬接口控制器(Virtualinterfacecontrol),虛擬CPU接口(VirtualCPUinterface),時(shí)鐘和復(fù)位(ClockandReset)。虛擬CPU接口只在支持虛擬化擴(kuò)展的系統(tǒng)存在,不在我們討論的范圍。正大氣象厚德載物MinnanUniversityofScienceandTechnology分配器在系統(tǒng)中所有的中斷源都被分配器控制。分配器有相應(yīng)的寄存器控制每個(gè)中斷優(yōu)先級(jí)、狀態(tài)、安全,路由信息的屬性并啟用狀態(tài)。分配器確定哪些中斷通過(guò)所連接的CPU接口轉(zhuǎn)發(fā)到核心。分配器提供如下功能:①使能掛起中斷是否傳遞到CPU接口。②使能和禁用任意中斷。③設(shè)定任意中斷優(yōu)先級(jí)。④設(shè)置任意目標(biāo)處理器。⑤設(shè)置中斷為電平觸發(fā)或者邊沿觸發(fā)。⑥設(shè)置中斷為組別。⑦傳遞任意SGI到一個(gè)或者多個(gè)目標(biāo)處理器。⑧查看任意中斷的狀態(tài)。⑨提供軟件方式設(shè)置或清除任意中斷的掛起狀態(tài)。 ⑩中斷使用中斷號(hào)來(lái)標(biāo)識(shí),每個(gè)CPU接口可以處理多達(dá)1020個(gè)中斷。正大氣象厚德載物MinnanUniversityofScienceandTechnologyCPU接口通過(guò)這些核心收到中斷。該CPU接口主機(jī)寄存器屏蔽,識(shí)別和控制中斷轉(zhuǎn)發(fā)到內(nèi)核。每個(gè)核心都有一個(gè)單獨(dú)的CPU系統(tǒng)接口。每個(gè)CPU接口提供如下編程接口:①使能通知ARM核中斷請(qǐng)求。②應(yīng)答中斷。③指示中斷處理完成。④設(shè)置處理器的中斷優(yōu)先級(jí)屏蔽。⑤定義處理器中斷搶占策略。⑥為處理器決定最高優(yōu)先級(jí)的掛起中斷。正大氣象厚德載物MinnanUniversityofScienceandTechnologyGIC中斷控制器中斷類(lèi)型GIC中斷控制器中斷類(lèi)型分為三種:1.軟件產(chǎn)生中斷(SoftwareGeneratedInterrupt,SGI)軟件生成的中斷,軟中斷的產(chǎn)生是通過(guò)軟件寫(xiě)入到一個(gè)專(zhuān)門(mén)的寄存器,軟中斷產(chǎn)生中斷寄存器(ICDSGIR),它常用在內(nèi)核間通信。軟中斷能以所有核為目標(biāo)或選定的一組系統(tǒng)中的核心為目標(biāo),中斷號(hào)0-15為此保留。2.專(zhuān)用外設(shè)中斷(PrivatePeripheralInterrupt,PPI)這是由外設(shè)產(chǎn)生的是專(zhuān)用特定核心處理的中斷。中斷號(hào)碼16-31為PPI保留。這些中斷源對(duì)核心是私有的,并且獨(dú)立于其他核上相同的中斷源,例如每個(gè)核上的定時(shí)器中斷源。3.共享外設(shè)中斷(SharedPeripheralInterrupt,SPI)這些是由外設(shè)的產(chǎn)生的可以發(fā)送給一個(gè)或多個(gè)核心處理的中斷源。中斷號(hào)32-1020用于共享外設(shè)中斷。正大氣象厚德載物MinnanUniversityofScienceandTechnologyGIC中斷信號(hào)由許多不同的狀態(tài):1.無(wú)效態(tài)(Inactive)無(wú)效狀態(tài)表示中斷沒(méi)有發(fā)生。2.掛起態(tài)(Pending)掛起狀態(tài)表示中斷已經(jīng)發(fā)生,但等待核心來(lái)處理。待處理中斷都作為通過(guò)CPU接口發(fā)送到核心處理的候選者。3.激活態(tài)(Active)激活態(tài)表示中斷信號(hào)發(fā)送給了核心,目前正在進(jìn)行中斷處理。4.激活掛起態(tài)(Activeandpending)一個(gè)中斷源正進(jìn)行中斷處理而GIC又接收到來(lái)自同一來(lái)中斷源的中斷觸發(fā)信號(hào)。中斷狀態(tài)轉(zhuǎn)移圖正大氣象厚德載物MinnanUniversityofScienceandTechnologyGIC中斷處理流程當(dāng)ARM核心接收到中斷時(shí),它會(huì)跳轉(zhuǎn)到異常向量表中,PC寄存器獲得對(duì)應(yīng)異常向量并開(kāi)始執(zhí)行中斷處理函數(shù)。在中斷處理函數(shù)中,先讀取GIC控制器CPU接口模塊內(nèi)的中斷響應(yīng)寄存器(GICC_IAR),一方面獲取需要處理的中斷ID號(hào),進(jìn)行具體的中斷處理,另一方面也作為ARM核心對(duì)GIC發(fā)來(lái)的中斷信號(hào)的應(yīng)答,GIC接收到應(yīng)答信號(hào),GIC分配器會(huì)把對(duì)應(yīng)中斷源的狀態(tài)設(shè)置為激活態(tài)。當(dāng)中斷處理程序執(zhí)行結(jié)束后,中斷處理函數(shù)需要寫(xiě)入相同的中斷ID號(hào)到GIC控制器cpu接口模塊內(nèi)的中斷結(jié)束寄存器(GICC_EOIR),作為給GIC控制器的中斷處理結(jié)束信號(hào)。GIC分配器會(huì)把對(duì)應(yīng)中斷源的狀態(tài)由激活態(tài)設(shè)置為無(wú)效態(tài)(如果在中斷處理過(guò)程中,又有相同中斷觸發(fā),狀態(tài)設(shè)置為無(wú)效掛起態(tài))。同時(shí)GIC控制器CPU接口模塊就可以繼續(xù)提交一個(gè)優(yōu)先級(jí)最高的狀態(tài)為掛起態(tài)的中斷到ARM核心進(jìn)行中斷處理,一次完整的中斷處理就此完成。正大氣象厚德載物MinnanUniversityofScienceandTechnology按鍵中斷電路與程序設(shè)計(jì)

K6對(duì)應(yīng)的GPIOB9管腳,在沒(méi)有按下的時(shí)候K6引腳處于高電平,我們可以把K6設(shè)為中斷模式并為雙邊沿觸發(fā),因此,產(chǎn)生GPIO中斷進(jìn)入相應(yīng)的中斷函數(shù),處理中斷事件。1.按鍵中斷的原理圖正大氣象厚德載物MinnanUniversityofScienceandTechnology2.中斷寄存器設(shè)置設(shè)置管腳為中斷功能引腳設(shè)置管腳為輸入模式正大氣象厚德載物MinnanUniversityofScienceandTechnology配置GPIO的中斷是否清零找到GPIOB對(duì)應(yīng)的中斷源找到相關(guān)的中斷使能設(shè)置異常向量表中斷函數(shù)處理:主函數(shù):見(jiàn)程序正大氣象厚德載物MinnanUniversityofScienceandTechnology更改交叉編譯工具鏈的路徑。vimMakefile編譯步驟:

1、把工程源碼拷貝到Ubuntu中。

2、進(jìn)入目錄中,修改Makefile文件。正大氣象厚德載物MinnanUniversityofScienceandTechnology下載執(zhí)行程序現(xiàn)象當(dāng)K6按下時(shí),終端會(huì)打印GPIO9Interupt,LED燈D8亮,松開(kāi)的時(shí)候,燈滅。05PARTFIVEUART串口通信正大氣象厚德載物MinnanUniversityofScienceandTechnology正大氣象厚德載物MinnanUniversityofScienceandTechnology1.串行通信的基本概念同步通信和異步通信通信,最少要有兩個(gè)對(duì)象,一個(gè)收,一個(gè)發(fā)同步通信:一般情況下同步通信指的是通信雙方根據(jù)同步信號(hào)進(jìn)行通信的方式。比如通信雙方有一個(gè)共同的時(shí)鐘信號(hào),大家根據(jù)時(shí)鐘信號(hào)的變化進(jìn)行通信SPISPI發(fā)/收收/發(fā)CLK正大氣象厚德載物MinnanUniversityofScienceandTechnology異步通信:是指數(shù)據(jù)傳輸速度匹配依賴于通信雙方有自己獨(dú)立的系統(tǒng)時(shí)鐘,大家約定好通信的速度。異步通信不需要同步信號(hào),但是并不是說(shuō)通信的過(guò)程不同步UARTUART發(fā)/收收/發(fā)正大氣象厚德載物MinnanUniversityofScienceandTechnology串行通信和并行通信的區(qū)別串行通信:指的是同一時(shí)刻只能收或發(fā)一個(gè)bit位信息。因此只用1根信號(hào)線即可。并行通信:指的是同一時(shí)刻可以收或發(fā)多個(gè)bit位的信息,因此需要多根信號(hào)線才行-并行傳輸:數(shù)據(jù)各個(gè)位同時(shí)傳輸,如內(nèi)存。-優(yōu)點(diǎn):速度快-缺點(diǎn):占用引腳資源多-串行傳輸:數(shù)據(jù)按位順序傳輸,比如串口。-優(yōu)點(diǎn):占用引腳資源少-缺點(diǎn):速度相對(duì)較慢設(shè)備設(shè)備設(shè)備設(shè)備串行并行正大氣象厚德載物MinnanUniversityofScienceandTechnology單工、半雙工、全雙工單工:要么收,要么發(fā),只能做接收設(shè)備或者發(fā)送設(shè)備。比如收音機(jī)半雙工:可以收,可以發(fā),但是不能同時(shí)收發(fā),比如對(duì)講機(jī)全雙工:可以在同一時(shí)刻既接收,又發(fā)送。手機(jī)單工半雙工全雙工正大氣象厚德載物MinnanUniversityofScienceandTechnology常見(jiàn)通信總結(jié)通信標(biāo)準(zhǔn)引腳說(shuō)明通信方式通信方向UART(通用異步收發(fā)器)TXD:發(fā)送端RXD:接受端GND:公共地異步通信全雙工單總線(1-wire)DQ:發(fā)送/接受端異步通信半雙工SPISCK:同步時(shí)鐘MISO:主機(jī)輸入,從機(jī)輸出MOSI:主機(jī)輸出,從機(jī)輸入同步通信全雙工I2CSCL:同步時(shí)鐘SDA:數(shù)據(jù)輸入/輸出端同步通信半雙工正大氣象厚德載物MinnanUniversityofScienceandTechnology串口電路連接正大氣象厚德載物MinnanUniversityofScienceandTechnology串口電路連接正大氣象厚德載物MinnanUniversityofScienceandTechnology串口通信協(xié)議介紹0101000000TXD串口輸出0x05波形圖、低位先發(fā)送:

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論