【文章內(nèi)容簡介】
GBIGENDnRESETnFIQnIRQCLKENCLKDBGINSTR V ALIDARM7TDMISDMORE同步的E m be de dI C E R T掃描調(diào)試訪問端口存儲器接口存儲器管理接口協(xié)處理器接口時鐘中斷總線控制仲裁調(diào)試處理器周立功單片機 ? ARM7TDMI的模塊和內(nèi)核框圖 CPBCP ACPnICPTBITCPSEQCPnMREQCPnOPCCPnTRANSTRANS[1:0]PROT[1:0]SIZE[1:0]WRITEABORTRDA T A[31:0]WDA T A[31:0]ADDR[31:0]DBGTDODBGnTDOENDBGnTRSTDBGTDIDBGTMSDBGTCKENDBGCOMMTXDBGCOMMRXDBGRNG[0]DBGRNG[1]DBGENDBGEXT[0]DBGEXT[1]DBGnEXECDBGACKDBGBREAKDBGRQLOCKCFGBIGENDnRESETnFIQnIRQCLKENCLKDBGINSTR V ALIDARM7TDMISDMORE同步的E m be de dI C E R T掃描調(diào)試訪問端口存儲器接口存儲器管理接口協(xié)處理器接口時鐘中斷總線控制仲裁調(diào)試處理器E m be dde dI C E R TCP UDBG R N G ( 0 )DBG R N G ( 1 )D B G EXT (0 )D B G EXT (1 )T A P數(shù)據(jù)總線ADDR [ 3 1 : 0 ]LO C KWR IT ESI Z E [1 :0 ]P R O T [1 :0 ]TR A N S [ 1 : 0 ]W D A T A [ 31: 0]R D A T A [ 31: 0]DBG T D IDBG n T R S TDBG T M SDBG T C K E NDBG T D O宏單元控制器協(xié)處理器接口信號掃描鏈1掃描鏈2EmbeddedICERT周立功單片機 ? ARM7TDMI的模塊和內(nèi)核框圖 E m be dde dI C E R TCP UDBG R N G ( 0 )DBG R N G ( 1 )D B G EXT (0 )D B G EXT (1 )T A P數(shù)據(jù)總線ADDR [ 3 1 : 0 ]LO C KWR IT ESI Z E [1 :0 ]P R O T [1 :0 ]TR A N S [ 1 : 0 ]W D A T A [ 31: 0]R D A T A [ 31: 0]DBG T D IDBG n T R S TDBG T M SDBG T C K E NDBG T D O宏單元控制器協(xié)處理器接口信號掃描鏈1掃描鏈2EmbeddedICERTE m be dde dI C E R TCP UDBG R N G (0 )DBG R N G (1 )D B G EXT (0 )D B G EXT (1 )T A P數(shù)據(jù)總線ADDR [3 1 :0 ]LO C KWR IT ESI Z E [1 :0 ]P R O T [1 :0 ]TR A N S [1 :0 ]W D A T A [31: 0]R D A T A [31: 0]DBG T D IDBG n T R S TDBG T M SDBG T C K E NDBG T D O宏單元控制器協(xié)處理器接口信號掃描鏈1掃描鏈2EmbeddedICERT周立功單片機 第 2章 目錄 ? ? ?內(nèi)部框圖 ?數(shù)據(jù)類型 ? ? ? ?8. 程序狀態(tài)寄存器 ? ? ? ?I/O 周立功單片機 處理器狀態(tài) ? 處理器狀態(tài) ARM7TDMI處理器內(nèi)核使用 V4T版本的 ARM結構,該結構包含 32位 ARM指令集和 16位 Thumb指令集。因此 ARM7TDMI處理器有兩種操作狀態(tài): ?ARM狀態(tài) : 32位,這種狀態(tài)下執(zhí)行的是字方式的 ARM指令; ?Thumb狀態(tài) : 16位,這種狀態(tài)下執(zhí)行半字方式的 Thumb指令。 注意 :兩個狀態(tài)之間的切換并不影響處理器模式或寄存器內(nèi)容。 ARM指令集效率高,但是代碼密度低 。而 Thumb指令 集具有較高的代碼密度,卻仍然保持 ARM的大多數(shù)性 能上的優(yōu)勢,它是 ARM指令集的子集。 (詳見第 4章 ) ARM Thumb 周立功單片機 處理器狀態(tài) ? 處理器狀態(tài) 使用 BX指令將 ARM7TDMI內(nèi)核的操作狀態(tài)在ARM狀態(tài)和 Thumb狀態(tài)之間進行切換(詳見第 4章) ,程序如下所示。 。從 ARM狀態(tài)切換到 Thumb狀態(tài) LDR R0,=Lable+1 BX R0 。從 Thumb狀態(tài)切換到 ARM狀態(tài) LDR R0,=Lable BX R0 地址最低位為1,表示切換到 Thumb狀態(tài) 地址最低位為0,表示切換到 ARM狀態(tài) 跳轉地址標號 周立功單片機 第 2章 目錄 ? ? ?內(nèi)部框圖 ?數(shù)據(jù)類型 ? ? ? ?8. 程序狀態(tài)寄存器 ? ? ? ?I/O 周立功單片機 處理器模式 ? 簡介 ARM體系結構支持 7種處理器模式,分別為:用戶模式、快中斷模式、中斷模式、管理模式、中止模式、未定義模式和系統(tǒng)模式 。 使用這些模式的好處是可以更好的支持操作系統(tǒng)并提高工作效率。 ARM7TDMI完全支持這七種模式。 周立功單片機 處理器模式 說明 備注 用戶 (usr) 正常程序工作模式 不能直接切換到其它模式 特權模式 系統(tǒng) (sys) 用于支持操作系統(tǒng)的特權任務等 與用戶模式類似,但具有可以直接切換到其它模式等特權 異常模式 快中斷 (fiq) 支持高速數(shù)據(jù)傳輸及通道處理 FIQ異常響應時進入此模式 中斷 (irq) 用于通用中斷處理 IRQ異常響應時進入此模式 管理 (svc) 操作系統(tǒng)保護代碼 系統(tǒng)復位和軟件中斷響應時進入此模式 中止 (abt) 用于支持虛擬內(nèi)存和 /或存儲器保護 在 ARM7TDMI沒有大用處 未定義 (und) 支持硬件協(xié)處理器的軟件仿真 未定義指令異常響應時進入此模式 處理器模式 ? 處理器模式 周立功單片機 處理器模式 ? 特權模式 處理器模式 說明 備注 用戶 (usr) 正常程序工作模式 不能直接切換到其它模式 特權模式 系統(tǒng) (sys) 用于支持操作系統(tǒng)的特權任務等 與用戶模式類似,但具有可以直接切換到其它模式等特權 異常模式 快中斷 (fiq) 支持高速數(shù)據(jù)傳輸及通道處理 FIQ異常響應時進入此模式 中斷 (irq) 用于通用中斷處理 IRQ異常響應時進入此模式 管理 (svc) 操作系統(tǒng)保護代碼 系統(tǒng)復位和軟件中斷響應時進入此模式 中止 (abt) 用于支持虛擬內(nèi)存和 /或存儲器保護 在 ARM7TDMI沒有大用處 未定義 (und) 支持硬件協(xié)處理器的軟件仿真 未定義指令異常響應時進入此模式 除用戶模式外,其它模式均為 特權模式 。 ARM內(nèi)部寄存器和一些片內(nèi)外設在硬件設計上只允許(或者可選為只允許)特權模式下訪問。此外,特權模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。 未定義 中止 (abt) 管理 (svc) 中斷 (irq) 快中斷 (fiq) 系統(tǒng) (sys) 周立功單片機 處理器模式 ? 異常模式 處理器模式 說明 備注 用戶 (usr) 正常程序工作模式 不能直接切換到其它模式 特權模式 系統(tǒng) (sys) 用于支持操作系統(tǒng)的特權任務等 與用戶模式類似,但具有可以直接切換到其它模式等特權 異常模式 快中斷 (fiq) 支持高速數(shù)據(jù)傳輸及通道處理 FIQ異常響應時進入此模式 中斷 (irq) 用于通用中斷處理 IRQ異常響應時進入此模式 管理 (svc) 操作系統(tǒng)保護代碼 系統(tǒng)復位和軟件中斷響應時進入此模式 中止 (abt) 用于支持虛擬內(nèi)存和 /或存儲器保護 在 ARM7TDMI沒有大用處 未定義 (und) 支持硬件協(xié)處理器的軟件仿真 未定義指令異常響應時進入此模式 這五種模式稱為 異常模式 。它們除了可以通過程序切換進入外,也可以由特定的異常進入。當特定的異常出現(xiàn)時,處理器進入相應的模式。每種異常模式都有一些獨立的寄存器,以避免異常退出時用戶模式的狀態(tài)不可靠。 未定義 中止 (abt) 管理 (svc) 中斷 (irq) 快中斷 (fiq) 周立功單片機 處理器模式 ? 用戶和系統(tǒng)模式 處理器模式 說明 備注 用戶 (usr) 正常程序工作模式 不能直接切換到其它模式 特權模式 系統(tǒng) (sys) 用于支持操作系統(tǒng)的特權任務等 與用戶模式類似,但具有可以直接切換到其它模式等特權 異常模式 快中斷 (fiq) 支持高速數(shù)據(jù)傳輸及通道處理 FIQ異常響應時進入此模式 中斷 (irq) 用于通用中斷處理 IRQ異常響應時進入此模式 管理 (svc) 操作系統(tǒng)保護代碼 系統(tǒng)復位和軟件中斷響應時進入此模式 中止 (abt) 用于支持虛擬內(nèi)存和 /或存儲器保護 在 ARM7TDMI沒有大用處 未定義 (und) 支持硬件協(xié)處理器的軟件仿真 未定義指令異常響應時進入此模式 這兩種模式都不能由異常進入,而且它們使用完全相同的寄存器組。 系統(tǒng)模式是特權模式,不受用戶模式的限制。操作系統(tǒng)在該模式下訪問用戶模式的寄存器就比較方便,而且操作系統(tǒng)的一些特權任務可以使用這個模式訪問一些受控的資源。 系統(tǒng) (sys) 用戶 (usr) 周立功單片機 第 2章 目錄 ? ? ?內(nèi)部框圖 ?數(shù)據(jù)類型 ? ? ? ?8. 程序狀態(tài)寄存器 ? ? ? ?I/O 周立功單片機 內(nèi)部寄存器 ? 簡介 在 ARM7TDMI處理器內(nèi)部有 37個用戶可見的寄存器。 在不同的工作模式和處理器狀態(tài)下,程序員可以訪問的寄存器也不盡相同。 周立功單片機 寄存器類別 寄存器在匯編中的名稱 各模式下實際訪問的寄存器 用戶 系統(tǒng) 管理 中止 未定義 中斷 快中斷 通用寄存器和程序計數(shù)器 R0(a1) R0 R1(a2) R1 R2(a3) R2 R3(a4) R3 R4(v1) R4 R5(v2) R5 R6(v3) R6 R7(v4) R7 R8(v5) R8 R8_fiq R9(SB,v6) R9 R9_fiq R10(SL,v7) R10 R10_fiq R11(FP,v8) R11 R11_fiq R12(IP) R12 R12_fiq R13(SP) R13 R13_svc R13_abt R13_und R13_irq R13_fiq R14(LR) R14 R14_svc R14_abt R14_und R14_irq R14_fiq R15(PC) R15 狀態(tài)寄存器 CPSR CPSR SPSR 無 SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq ARM狀態(tài)各模式下的寄存器 周立功單片機 寄存器類別 寄存器在匯編中的名稱 各模式下實際訪問的寄存器 用戶 系統(tǒng) 管理 中止 未定義 中斷 快中斷 通用寄存器和程序計數(shù)器 R0(a1) R0 R1(a2) R1