嵌入式電子系統(tǒng)電子課件教案-第4講-ARM處理器綜述、開發(fā)與仿真_第1頁
嵌入式電子系統(tǒng)電子課件教案-第4講-ARM處理器綜述、開發(fā)與仿真_第2頁
嵌入式電子系統(tǒng)電子課件教案-第4講-ARM處理器綜述、開發(fā)與仿真_第3頁
嵌入式電子系統(tǒng)電子課件教案-第4講-ARM處理器綜述、開發(fā)與仿真_第4頁
嵌入式電子系統(tǒng)電子課件教案-第4講-ARM處理器綜述、開發(fā)與仿真_第5頁
已閱讀5頁,還剩125頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1ARM處理器綜述、開發(fā)及仿真(二)嵌入式電子系統(tǒng)學術沙龍內容提要1.本次課目標內核分類程序設計基礎4.RealViewMDK簡介系列ARM芯片GPIO簡介6.RealViewMDK開發(fā)流程7.其他常見ARM開發(fā)環(huán)境及工具8.小結21.本次課目標了解ARM內核分類、ARM開發(fā)流程及開發(fā)環(huán)境基礎知識。3學術沙龍內容提要1.本次課目標內核分類程序設計基礎4.RealViewMDK簡介系列ARM芯片GPIO簡介6.RealViewMDK開發(fā)流程7.其他常見ARM開發(fā)環(huán)境及工具8.小結42.

ARM內核分類2.1ARM內核的發(fā)展2.2ARM72.3ARM92.4ARM102.5ARM1152.1ARM內核的發(fā)展6性能ARM處理器的性能及工作速度發(fā)展概況72.2ARM7

ARM7處理器核采用了3級流水線結構,指令執(zhí)行分為取指、譯碼和執(zhí)行等3個階段。8ARM7TDMI

ARM7TDMI-S

ARM7EJARM720TARM7核ARMv4TThumb指令集嵌入式ICE-RTETM7接口ARM7核ARMv4TThumb指令集嵌入式ICE-RTETM7接口ARM7核ARMv5TEJThumb指令集嵌入式ICE-RTETM9接口Jazelle擴充DSP擴充ARM7核ARMv4TThumb指令集嵌入式ICE-RTETM7接口MMU8KBCacheAHB接口T具有16位壓縮指令集Thumb。在ARMv4中采用Thumbv1版,在ARMv5中采用Thumbv2版;D支持在片上調試(OnChipDebug);M增強型乘法器,可以執(zhí)行32bit×32bit得到64bit乘積的乘法運算和32bit×32bit+64bit得到64bit結果的累加乘運算;S可綜合的(Synthesizable)核;10

I嵌入式ICE(InCircuitEmulating)硬件邏輯,支持嵌入式軟件調試時的軟硬件斷點的設置;E增強型DSP指令。在這類處理器的指令集中,擴展了典型的數(shù)字信號處理所需的DSP指令;JJazeller功能,增強了執(zhí)行Java代碼的功能。11片上調試片上調試,又稱為OCD,是CPU芯片提供的程序調試功能,該方式的主要優(yōu)點是不占用目標機的資源,調試環(huán)境和最終程序運行環(huán)境基本一致,支持軟硬件斷點和跟蹤。目前常用的OCD有BDM(BackgroundDebuggingMode)方式,JTAG(JointTeseActionGroup)方式和OnCE(OnChipEmuiation,其實質是BDM和JTAG的一種融合方式),其中JTAG是主流的OCD方式,ARM、MIPS和PowerPC等嵌入式處理器都采用不同種類的增強JTAG方式。12 ARM720T是將ARM7TDMI與8KB混合數(shù)據(jù)指令Cache、寫緩沖器和存儲器管理單元MMU(MemoryManagementUnit)集成在一個單片上的32位通用處理器。13

ARM7T和ARM7EFamilyUnifiedCache內存管理流水線級別ThumbDSPJazelleARM7TDMI無無3有無無ARM7TDMI-S無無3有無無ARM710T/720T8kMMU3有無無ARM740T8k或4kProtectionUnit3有無無ARM7EJ-S無無3有有有2.3ARM9

ARM9內核采用了五級流水線、提供的哈佛結構、全性能的MMU單元、可配置的數(shù)據(jù)Cache和可分立和指令和數(shù)據(jù)高速AHB接口。1617五級流水線 ARM920T處理器使用流水線來增加處理器指令流的速度。這樣可以使幾個操作同時進行,并使處理和存儲器系統(tǒng)連續(xù)操作,能提供的指令執(zhí)行速度。流水線使用5個階段,因此指令分5個階段執(zhí)行:取址→譯碼→執(zhí)行→存儲→寫。1819下一個pc指令Cache+4指令譯碼寄存器堆乘+1ALUMUX字節(jié)復制數(shù)據(jù)Cache移位/符號擴展寄存器寫移位pc+4pc+8后變址前變址Load/Store取指譯碼寄存器移位執(zhí)行緩沖數(shù)據(jù)回寫ARM9FamilyCache內存管理流水線級別ThumbDSPJazelleARM9TDMI無無5有無無ARM920T16K/16kMMU5有無無ARM922T8k/8kMMU5有無無ARM940T4k/4kProtectionUnit5有無無 ARM10處理器核采用哈佛結構和六級流水線,處理器核內部數(shù)據(jù)總線為64位,以及雙64位的AHB總線接口、并行的Load/Store單元,極大地提高了ARM10數(shù)據(jù)處理能力和工作速度。ARM10的指令執(zhí)行速度為。21ARM10Family22Cache內存管理流水線級別ThumbDSPJazelleARM10E無無6有有無ARM1020E32k/32kMMU6有有無ARM1022E16k/16kMMU6有有無ARM10EJ-S無無6有有有ARM1026EJ-S0,4-128k/0,4-128kMMU6有有有ARM10TDMI無無6有無無ARM1020T32k/32kMMU6有無無

ARM11系列采用8級流水線操作,個別處理器采用9級流水線(例如ARM1156T2(F)-S),Load-Store單元和算術運算單元分別具有獨立的流水線,并具有轉移預測和前向數(shù)據(jù)通道,可以有效地提高流水線操作的效率。23ARM11支持多處理器系統(tǒng),個別產(chǎn)品還集成了浮點處理器(以后綴F表示)。ARM11系列包括ARM1136J(F)-S、ARM1156T2(F)-S和ARM1176JZ(F)-S。后綴T2表示Thumb-2指令集。24ARM11Family25Cache內存管理流水線級別ThumbDSPJazelle浮點運算ARM1136J-S4-64kMMU8有有有無ARM1136JF-S4-64kMMU8有有有有ARM1156T2-S可配置9Thumb-2有無無ARM1156T2F-S可配置9Thumb-2有無有學術沙龍內容提要1.本次課目標2.

ARM內核分類3.ARM程序設計基礎4.RealViewMDK簡介系列ARM芯片GPIO簡介6.RealViewMDK開發(fā)流程7.其他常見ARM開發(fā)環(huán)境及工具8.小結263.ARM程序設計基礎ARM體系結構支持C/C++及其與匯編語言的混合編程。初始化部分用匯編語言完成;主要編程任務一般用C/C++完成。程序執(zhí)行時首先完成初始化過程再跳轉到C/C++程序代碼中兩者一般沒有參數(shù)的傳遞,也沒有頻繁的相互調用27系統(tǒng)的初始化過程定義程序入口點設置異常向量初始化存儲器系統(tǒng)初始化堆棧指針寄存器28初始化臨界IO設備初始化C代碼的運行環(huán)境改變處理器的運行模式和狀態(tài)使能中斷進入C代碼運行29系統(tǒng)的初始化過程基于ARM微處理器的系統(tǒng)一般比較復雜,多數(shù)硬件模塊是可以配置的(Configurable),需要明確設置為特定的工作狀態(tài)。在用戶主程序運行之前,需要一段專門的代碼來完成對系統(tǒng)的初始化工作,這段代碼一般稱為Bootloader。30初始化代碼直接對ARM微處理器內核及硬件控制器編程,多采用匯編語言,初始化代碼一般包含如下典型任務:定義程序入口點設置異常向量31初始化存儲器系統(tǒng)初始化堆棧指針寄存器初始化臨界IO設備初始化C代碼的運行環(huán)境改變處理器的運行模式和狀態(tài)使能中斷進入C代碼運行32定義程序入口點初始化代碼必須定義整個程序的入口點(EntryPoint)采用匯編偽指令Entry指定33設置異常向量ARM微處理器架構要求異常向量表必須位于從0X0地址開始的連續(xù)32(8×4)個字節(jié)的空間內。34異常向量表35地址異常類型進入時的模式進入時I的狀態(tài)進入時F的狀態(tài)0x00000000復位管理禁止禁止0x00000004未定義指令未定義IF0x00000008軟件中斷管理禁止F0x0000000C中止(預取)中止IF0x00000010中止(數(shù)據(jù))中止IF0x00000014保留保留——0x00000018IRQ中斷禁止F0x0000001CFIQ快中斷禁止禁止注:表中的I和F表示不對該位有影響,保留原來的值

當一個異常發(fā)生時,ARM微處理器強制把PC指針置為異常向量表中相應的位置。異常向量表中每個異常只占用一個字的存儲空間,剛好放一條ARM指令,這條指令通常是跳轉指令,使程序從異常向量表中跳轉到真正的異常處理程序。36AREAInit,CODE,READONLYENTRYBReset_HandlerBUndef_HandlerBSWI_HandlerBPreAbort_HandlerBDataAbort_HandlerB.BIRQ_HandlerBFIQ_HandlerReset_Handler …37初始化存儲器系統(tǒng)初始化存儲器系統(tǒng)主要包括對系統(tǒng)存儲控制器的初始化MMU初始化ARM微處理器的理論尋址能力位4GB,一般需要外接大容量存儲器,需要采用專門的存儲控制器來控制其讀寫操作。38存儲器控制器不是ARM微處理器架構的一部分,不同的ARM芯片其設計各不相同,初始化代碼也存在差異。但一般都包含兩個方面:存儲器類型時序的配置基于ARM的微處理器系統(tǒng)常采用的存儲器FlashSRAMDRAM39Flash、SRAM均為靜態(tài)存儲器,可以共用存儲器控制器端口;DRAM需要動態(tài)刷新、地址復用等,需要專門的存儲器控制器端口。(某些ARM芯片內部沒有DRAM控制邏輯,不能直接與DRAM接口,如AT9140800系列);一般采用片內特殊功能寄存器控制。40存儲器的地址分配地址分配:將物理存儲器定位在4GB尋址空間的哪個具體位置;ARM微處理器系統(tǒng)采用兩種方式來完成地址分配:固定方式,如S3C2410,相對簡單;重映射(Remap),物理存儲器的地址不固定,如S3C4510B,較復雜。41重映射(Remap)

系統(tǒng)復位后,PC指針初始化為0x0,因此要求Flash(或其他類型ROM)起始地址為0x0,但由于Flash的訪問速度大大低于RAM,每次產(chǎn)生異常后,都要從Flash的異常向量表跳轉到響應的處理程序,會影響異常的響應速度,因此,系統(tǒng)采用重映射方法,在系統(tǒng)完成初始化后,將RAM地址置為0x0,而將ROM置為其他地址。42初始化堆棧指針寄存器由于ARM微處理器支持7種處理器模式,每種模式下的堆棧指針寄存器都是獨立的(System和User模式使用同一個SP),根據(jù)系統(tǒng)使用的中斷和異常的情況,需要初始化需要的堆棧指針寄存器SP。由于上電復位后,系統(tǒng)進入管理模式,因此管理模式下的SP必須初始化。4344寄存器類別寄存器在匯編中的名稱各模式下實際訪問的寄存器用戶系統(tǒng)管理中止未定義中斷快中斷通用寄存器和程序計數(shù)器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15狀態(tài)寄存器CPSRCPSRSPSR無SPSR_abtSPSR_abtSPSR_undSPSR_irqSPSR_fiq無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用戶無CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系統(tǒng)SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定義SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中斷SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中斷ARM狀態(tài)各模式下可以訪問的寄存器sp_IRQ,sp_FIQ,sp_ABT,sp_UND,根據(jù)系統(tǒng)需要進行初始化;sp_USR可以在進入用戶模式后,準備開始執(zhí)行應用程序時對其初始化。45初始化即給SP寄存器定義一個堆棧地址方法:改變CPSR的狀態(tài)位,使處理器進入不同的運行模式,然后給SP賦值;sp_USR最后初始化,因為進入用戶模式后,不能通過改變CPSR的狀態(tài)位進入其他模式。4647NZCV——IM0M1M2M3M4TF—...313029282726876543210條件代碼標志保留控制位溢出標志進位或借位擴展零負或小于IRQ禁止FIQ禁止狀態(tài)位模式位NZCVIM0M1M2M3M4TF48M[4:0]模式可見的Thumb狀態(tài)寄存器可見的ARM狀態(tài)寄存器10000用戶R0~R7,SP,LR,PC,CPSRR0~R14,PC,CPSR10001快中斷R0~R7,SP_fiq,LR_fiq,PC,CPSR,SPSR_fiqR0~R7,R8_fiq~R14_fiq,PC,CPSR,SPSR_fiq10010中斷R0~R7,SP_irq,LR_irq,PC,CPSR,SPSR_fiqR0~R12,R13_irq,R14_irq,PC,CPSR,SPSR_irq10011管理R0~R7,SP_svc,LR_svc,PC,CPSR,SPSR_svcR0~R12,R13_svc,R14_svc,PC,CPSR,SPSR_svc10111中止R0~R7,SP_abt,LR_abt,PC,CPSR,SPSR_abtR0~R12,R13_abt,R14_abt,PC,CPSR,SPSR_abt11011未定義R0~R7,SP_und,LR_und,PC,CPSR,SPSR_undR0~R12,R13_und,R14_und,PC,CPSR,SPSR_und11111系統(tǒng)R0~R7,SP,LR,PC,CPSRR0~R14,PC,CPSRCPSR模式位設置表MODEMASKEQU0x1FSVCMODEEQU0x13IRQMODEEQU0x12…MRS

R0,CPSR ;將CPSR讀到R0中BICR0,R0,#MODEMASK;將CPSR中的模式位清零ORRR1,R0,#SVCMODE;設置R0到管理模式MSRCPSR_cxsf,R1;切換到管理模式LDRSP,=SVCStack;設置該模式下的堆棧49初始化臨界IO設備臨界(Critical)IO設備是指那些在使能中斷前必須進行初始化的設備。如果不對其進行初始化,它們可能在中斷使能后產(chǎn)生一些沒有意義的中斷請求。50初始化C代碼的運行環(huán)境程序代碼通過編譯、鏈接后生成可執(zhí)行映像文件映像文件通常包括三部分:RO、RW、ZIRO:包含程序代碼和只讀數(shù)據(jù)RW:包含定義并初始化的全局變量ZI:包含定義但未初始化的全局變量51可執(zhí)行映像文件最初總是放在Flash或其他類型的ROM中RO部分既可以在Flash中運行,也可以在高速RAM中運行;RW和ZI部分必須復制到RAM中。初始化C代碼的運行環(huán)境,就是將以上部分從Flash中復制到RAM的過程。52改變處理器的運行模式和狀態(tài)ARM微處理器上電復位后,默認模式為管理模式(SupervisorMode),而在初始化代碼中需要切換到其他模式進行諸如堆棧設置之類的操作。53系統(tǒng)初始化過程中處理器模式的變化如下:54管理模式多種特權模式切換應用程序運行模式由于ARM微處理器復位后總是處于ARM狀態(tài),如果應用程序為Thumb指令,必須將微處理器切換到Thumb狀態(tài)。55使能中斷如果系統(tǒng)需要使用中斷,初始化代碼應該使能中斷??赏ㄟ^清除CPSR中的中斷禁止位來完成。56進入C代碼運行系統(tǒng)初始化后,就可以進入C代碼運行。方法一:IMPORTC_Entry;定義一個外部標號,一般不用mainBC_Entry;跳轉到C代碼另一種方法IMPORT_mainB_main57_main是編譯器提供的一個函數(shù),完成庫函數(shù)的初始化和對C代碼運行環(huán)境的初始化,最后自動跳轉到main()函數(shù)執(zhí)行,此時,應用程序的主函數(shù)名必須是main()??梢愿鶕?jù)需要選擇兩種之一,如果想讓系統(tǒng)自動完成初始化過程,可以使用main()函數(shù),如果所有初始化都由自己編寫程序完成,可以自定義主函數(shù)名。58學術沙龍內容提要1.本次課目標2.

ARM內核分類3.ARM程序設計基礎4.RealViewMDK簡介系列ARM芯片GPIO簡介6.RealViewMDK開發(fā)流程7.其他常見ARM開發(fā)環(huán)境及工具8.小結594RealViewMDK簡介4.1RealViewMDK概述4.2RealViewMDK特性產(chǎn)品模塊介紹仿真器60注意:進行ARM開發(fā)的Keil(RealViewMDK)與進行單片機開發(fā)的Keil(KeilC)有不同的安裝程序。614.1RealViewMDK概述

RealViewMDK開發(fā)套件源自德國Keil公司,是ARM公司目前最新推出的針對各種嵌入式處理器的軟件開發(fā)工具。RealViewMDK集成了業(yè)內最領先的技術,包括μVision3集成開發(fā)環(huán)境與RealView編譯器。支持ARM7、ARM9和最新的Cortex-M3處理器,自動配置啟動代碼,集成Flash燒寫模塊,強大的Simulation設備模擬,性能分析等功能。624.2RealViewMDK特性啟動代碼生成向導,自動引導啟動代碼和系統(tǒng)硬件結合緊密,必須用匯編語言編寫,因而成為許多工程師難以跨越的門檻。RealViewMDK的μVision3工具可以自動生成完善的啟動代碼,并提供圖形化的窗口,可以輕松修改。能大大節(jié)省時間,提高開發(fā)效率。63軟件模擬器,完全脫離硬件的軟件開發(fā)過程RealViewMDK的設備模擬器可以仿真整個目標硬件,包括快速指令集仿真、外部信號和I/O仿真、中斷過程仿真、片內所有外圍設備仿真等。開發(fā)工程師在無硬件的情況下即可開始軟件開發(fā)和調試,使軟硬件開發(fā)同步進行,大大縮短開發(fā)周期。而一般的ARM開發(fā)工具僅提供指令集模擬器,只能支持ARM內核模擬調試。64

性能分析器看得更遠、看得更細、看得更清RealViewMDK的性能分析器用于輔助查看代碼覆蓋情況,程序運行時間,函數(shù)調用次數(shù)等高端控制功能,指導進行代碼優(yōu)化。通常這些功能只有價值數(shù)千美元的昂貴的Trace工具才能提供。65

Cortex-M3支持RealViewMDK支持的Cortex-M3核是ARM公司最新推出的針對微控制器應用的內核,它提供業(yè)界領先的高性能和低成本的解決方案,未來幾年將成為嵌入式系統(tǒng)應用的熱點和主流。66業(yè)界優(yōu)秀的ARM編譯器RealView編譯器,代碼更小,性能更高RealViewMDK的RealView編譯器與比較:代碼密度:比編譯的代碼尺寸小10%;代碼性能:比編譯的代碼性能高20%。67配備ULINK2仿真器+Flash編程模塊,輕松實現(xiàn)Flash燒寫RealViewMDK無需尋求第三方編程軟件與硬件支持,通過配套的ULINK2仿真器與Flash編程工具,輕松實現(xiàn)CPU片內Flash、外擴Flash燒寫,并支持用戶自行添加Flash編程算法;而且能支持Flash整片刪除、扇區(qū)刪除、編程前自動刪除以及編程后自動校驗等功能,輕松方便。68高性價比RealViewMDK保留了RealViewMDK國際版的所有卓越性能,而產(chǎn)品價格和國內普通開發(fā)工具的價格相差無幾。更貼身的服務RealViewMDK用戶將享受到專業(yè)的本地化的技術支持和服務,包括、Email、論壇、中文技術文檔等,這將為國內工程師們開發(fā)出更有競爭力的產(chǎn)品提供更多的助力。69產(chǎn)品模塊介紹μVision3IDEμVisionIDE在全球擁有龐大的用戶群,超過10萬開發(fā)工程師在使用Keil開發(fā)工具。不管以前是用8位、16位MCU,還是現(xiàn)在改用ARM32位處理器,μVisionIDE簡單易用,容易立馬上手。7071μVision3IDE主要特性:功能強大的源代碼編輯器;可根據(jù)開發(fā)工具配置的設備數(shù)據(jù)庫;用于創(chuàng)建和維護工程的工程管理器;集匯編、編譯和鏈接過程于一體的編譯工具;用于設置開發(fā)工具配置的對話框;72真正集成高速CPU及片上外設模擬器的源碼級調試器;高級GDI接口,可用于目標硬件的軟件調試和ULINK2仿真器的連接;用于下載應用程序到FlashROM中的Flash編程器;完善的開發(fā)工具手冊、設備數(shù)據(jù)手冊和用戶向導。73啟動代碼配置向導μVision3IDE的啟動代碼配置向導將各個所需配置的功能模塊以對話框方式展示,附加的提示說明,可以快速輕松地做出選擇,生成完善的啟動代碼,免除手工寫幾百行匯編程序的痛苦。7475μVision3設備模擬器μVision3設備模擬器的功能強大,能模擬整個MCU的行為。在沒有硬件或對目標MCU沒有更深的了解的情況下,仍然可以立即開始開發(fā)軟件。高效指令集仿真中斷仿真片內外圍設備仿真

ADC,DAC,TimersUART,CAN,I2C…

外部信號和I/O仿真76性能分析器性能分析器可給所有的MCU實現(xiàn)如程序運行時間統(tǒng)計、被調用次數(shù)統(tǒng)計、代碼覆蓋率統(tǒng)計等高端功能,而這些功能對于快速定位死區(qū)代碼,幫助優(yōu)化分析等起了關鍵的作用。7778RealView編譯器(RVCT)

RealViewMDK集成的RealView編譯器(跟RVDS使用一樣的編譯器),是業(yè)界最優(yōu)秀的編譯器,它能使代碼容量更小、執(zhí)行效率更高;使應用程序運行更快、系統(tǒng)成本更低。7980MicroLib為進一步改進基于ARM處理器的應用代碼密度,RealViewMDK采用了新型microlibC庫(用于C的ISO標準運行時庫的一個子集),并將其代碼映像降低最小以滿足嵌入式系統(tǒng)應用的需求。MicrolibC庫可將運行時庫代碼大大降低。8182仿真器ULINK2是ARM公司最新推出的配套RealViewMDK使用的仿真器,是ULink仿真器的升級版本。ULINK2不僅具有ULINK仿真器的所有功能,還增加了串行調試(SWD)支持,返回時鐘支持和實時代理等功能。開發(fā)工程師通過結合使用RealViewMDK的調試器和ULINK2,可以方便的在目標硬件上進行片上調試(使用on-chipJTAG,SWD和OCDS)、Flash編程…8384ULINK2新特點標準WindowsUSB驅動支持ULINK2即插即用;支持基于ARMCortex-M3的串行調試;支持程序運行期間的存儲器讀寫、終端仿真和串行調試輸出;支持10-pin連接線(也支持20-pin連接線)。85ULINK2主要功能:

USB通訊接口高速下載用戶代碼存儲區(qū)域/寄存器查看快速單步程序運行多種程序斷點片內Flash編程86ULINK2技術參數(shù)87特性

RAM斷點

UnlimitedROM斷點(ARM7/9)2maxROM斷點(Cortex-M3)6maxExecution斷點(SetWhileExecuting)√Access斷點(ARM7/9)2max(R/WOnly,WithValue)Access斷點(Cortex-M3)4max(WithValue)TraceHistory×Real-TimeAgent√JTAG時鐘

<=10MHzJTAGRTCK支持(ReturnClock)√MemoryR/W(Bytes/sec)≈28KFlashR/W(Bytes/sec)≈25KSingle-Step(Fast)(Instructions/sec)≈50ULINK2支持的處理器88ARM7/ARM9/Cortex-M3學術沙龍內容提要1.本次課目標2.

ARM內核分類3.ARM程序設計基礎4.RealViewMDK簡介系列ARM芯片GPIO簡介6.RealViewMDK開發(fā)流程7.其他常見ARM開發(fā)環(huán)境及工具8.小結89系列ARM芯片GPIO簡介5.1GPIO(通用I/O口)簡介5.2IO口連接模塊簡介5.3GPIO基本控制寄存器原理圖如何控制LED?如何編程?905.1GPIO(通用I/O口)簡介LPC2000有多個通用I/O口,分別為P0[31:0]和P1[31:16]。由于IO口和其他功能復用,需要進行相關的管腳連接模塊(PINSEL0、PINSEL1、PINSEL2)選擇連接GPIO,然后通過IODIR進行輸入/輸出屬性設置后才能操作。當管腳選擇GPIO功能時,有三個寄存器用于控制GPIO的使用,IOSET、IOCLR和IOPIN。915.2IO口連接模塊簡介有些管口除了作為普通IO口以外,還具有復用功能。比如串行口功能、PWM功能等等。要使用這些功能必須正確的設置IO連接模塊PINSEL0、PINSEL1、PINSEL2。92PINSEL0、PINSEL1、PINSEL2選擇引腳功能PINSEL0寄存器(位0—位31),分別對應于引腳引腳PINSEL1寄存器(位0—位31),分別對應于引腳引腳每兩位對應一個引腳,因為一個引腳有4種功能,所以要兩位對應一個引腳。9394PINSEL0中所有的位與PINSEL1其它位的復位值均為00,它們均默認為首選功能,即就是通常的GPIO。所有I/O口在復位后均默認為輸入狀態(tài),IODIR寄存器中的方向控制位只有在引腳選擇為GPIO功能時才有效。對于其它功能,方向是自動控制的。955.3GPIO基本控制寄存器LPC2100系列的ARM用四個寄存器控制IO口。引腳值寄存器IO0PIN和IO1PIN方向寄存器IO0DIR和IO1DIR輸出置位寄存器IO0SET和IO1SET輸出清零寄存器IO0CLR和IO1CLR96引腳值寄存器(輸入寄存器)IO0PIN(32位)對應~(32個IO口)的引腳狀態(tài)。無論IO口處于輸入、輸出或特殊功能狀態(tài),IO0PIN都能讀回IO口引腳上的電平。IO1PIN[31:0]:存儲的當前值(forread)97方向寄存器IO0DIR(IO1DIR)32位設置IO口方向的寄存器對應~(32個IO口)0:輸入1:輸出98輸出置位寄存器(輸出1)IO0SET(IO1SET)32位輸出狀態(tài)時,置1可輸出高電平。置0無效。對應~(32個IO口)99輸出清零寄存器(輸出0)IO0CLR(IO1CLR)

32位輸出狀態(tài)時,置1可輸出低電平。置0無效。對應~(32個IO口)

100原理圖101如何控制LED?102PINSEL0=0; /*設置引腳為GPIO*/IO0DIR=0x00000001; /*將設置為輸出*/IO0SET=0x00000001; /*將置1,也就是讓led滅*/IO0CLR=0x00000001;/*將清0,也就是讓led亮*/103如何編程intmain(void){PINSEL0=0; /*設置引腳為GPIO*/IO0DIR=0x00000001; /*將設置為輸出*/IO0SET=0x00000001; /*將置1,也就是讓led滅*/while(1){ IO0CLR=0x00000001; delay(); IO0SET=0x00000001; delay();}}104voiddelay(void){unsignedvolatilelongi,j;for(i=0;i<60000;i++)for(j=0;j<5;j++);}105學術沙龍內容提要1.本次課目標2.

ARM內核分類3.ARM程序設計基礎4.RealViewMDK簡介系列ARM芯片GPIO簡介6.RealViewMDK開發(fā)流程7.其他常見ARM開發(fā)環(huán)境及工具8.小結1066RealViewMDK開發(fā)流程Step1.新建工程Step2.選擇ARM芯片型號Step3.為工程添加文件Step4.新建main函數(shù)文件Step5.添加C文件到工程Step6.設置工程選項Step7.編譯生成Hex文件Step8.修改生成的Hex文件Step9.驗證Proteus的仿真效果107Step1.新建工程108Step2.選擇ARM芯片型號109Step3.為工程添加文件110Step4.新建main函數(shù)文件111Step5.添加C文件到工程112Step6.設置工程選項113Step7.編譯生成Hex文件114Step8.修改生成的Hex文件115Step9.驗證Proteus的仿真效果116學術沙龍內容提要1.本次課目標2.

ARM內核分類3.ARM程序設計基礎4.RealViewMDK簡介系列ARM芯片GPIO簡介6.RealViewMDK開發(fā)流程7.其他常見ARM開發(fā)環(huán)境及工具8.小結1177.其他常見ARM開發(fā)環(huán)境及工具7.2ARMREALVIEWDEVELOPERSUITE7.3IAREWARM7.4WINARM

7.5H-JTAG調試代理7.6J-LINK7.7U-LINK

溫馨提示

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

評論

0/150

提交評論