ARM920T協處理器CP15

ARM920T處理器包含兩個協處理器:
CP14。用于調試
CP15。系統控制協處理器,提供附加的寄存器用來配置和控制cache,MMU,保護系統,時鐘模式,和ARM920T其他的系統選項,如大小端操作。你可以使用MCR,MRC訪問定義在CP15中的寄存器。
CP15定義了16個寄存器,寄存器的映射圖如下:

注:寄存器位置0可以訪問兩個寄存器,通過opcode_2的值來確定。
ARM920T存在3個地址。


只能在特權模式下使用MCR和MRC指令訪問CP15。這些指令的格式是:
MCR/MRC{cond} 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


評論