ARM920T協處理器CP15

2021-08-25 18:17:50 字數 2253 閱讀 1109

文件整理自arm system developer's guide

arm920t處理器包含了arm9tdmi核心,arm9tdmi實現了arm architecture v4t。

arm920t處理器包含兩個協處理器:

cp14。用於除錯

cp15。系統控制協處理器,提供附加的暫存器用來配置和控制cache,mmu,保護系統,時鐘模式,和arm920t其他的系統選項,如大小端操作。你可以使用mcr,mrc訪問定義在cp15中的暫存器。

cp15定義了16個暫存器,暫存器的對映圖如下:

注:暫存器位置0可以訪問兩個暫存器,通過opcode_2的值來確定。

arm920t存在3個位址。

只能在特權模式下使用mcr和mrc指令訪問cp15。這些指令的格式是:

mcr/mrc p15,

,rd,crn,crm,

指令cdp,ldc,stc和非特權模式的mrc,mcr指令操作cp15會導致未定義指令異常。mrc和mcr指令的crn域指定了要訪問的協處理暫存器。opcode_1,

和crm域應該是0,除非值被指定用來選擇需要的操作。

register 0,id code register

可以通過讀cp15 register 0,opcode_2域設定成除了1的任何值(在讀的時候crm應該為0)。如:

mrc p15,0,rd,c0,c0,0;return id register

cache type register 0

包含cache的大小和體系結構的資訊。可以通過設定

域為1,讀cp15 register 0來訪問cache type register。例如:

mrc p15,0,rd,c0,c0,1;returns cache details

dsize和isize域格式一樣:

register1,control register

這個暫存器包含了arm920t的控制位。

mrc p15,0,rd,c1,c0,0 ;read control register

mcr p15,0,rd,c1,c0,0;write control register

register 2,translation table base(ttb)register

這個是頁表基址暫存器。

使用下面的指令訪問ttb:

mrc p15,0,rd,c2,c0,0;read ttb register

mcr p15,0,rd,c2,c0,0;write ttb register

register 3,domain access control register

這個是讀寫域訪問控制暫存器。

mrc p15,0,rd,c3,c0,0;read domain 15:0 access permissions

mcr p15,0,rd,c3,c0,0;write domain 15:0 access permissions

register 4,reserved

register 5,fault status registers

register 6,fault address registers

register 7,cache operations register

register 8,tlb operations register

用來管理translation lookaside buffers(tlbs),指令tlb和資料tlb。

register 9,cache lockdown register

opcode_2=0x0 訪問的是dcache

opcode_2=0x1 訪問的是icache

regiter 10,tlb lockdown register

opcode_2=0x0 訪問的是d tlb

opcode_2=0x1 訪問的是i tlb

register 11,12,and 14,reserved

register 13,fcse pid register

是快速上下文切換擴充套件暫存器。

mrc p15,0,rd,c13,c0,0;read fcse_pid

mcr p15,0,rd,c13,c0,0; write fcse_pid

arm9tdmi發出的位址在0~32mb範圍內的被cp15的register 13轉換。位址a變成a+(fcse_pid×32mb)。fcse_pid是乙個7位的域,能夠使128×32mb的程序被對映。

register 15,test configuration register

ARM920T協處理器CP15

文件整理自arm system developer s guide arm920t處理器包含了arm9tdmi核心,arm9tdmi實現了arm architecture v4t。arm920t處理器包含兩個協處理器 cp14。用於除錯 cp15。系統控制協處理器,提供附加的暫存器用來配置和控制ca...

協處理器CP15

在基於arm的嵌入式應用系統中,儲存系統通常是通過系統控制協處理器cp15完成的。arm處理器使用協處理器15 cp15 的暫存器來控制cache tcm和儲存器管理。cp15包含16個32位的暫存器,其編號為0 15。mcr arm暫存器到協處理器暫存器的資料傳送 mrc 協處理器暫存器到arm暫...

協處理器CP15操作指令

mcr mrc mrc用於讀取cp15中的暫存器 mcr用於寫入cp15中的暫存器 協處理器 被主cpu呼叫,協助主cpu實現某種功能 arm設計支援多達16個協處理器,但是一般soc只實現其中的cp15 協處理器和mmu cache tlb等處理有關,功能上和作業系統的虛擬位址對映 cache管理...