ARM920T協(xié)處理器CP15
ARM920T處理器包含兩個(gè)協(xié)處理器:
CP14。用于調(diào)試
CP15。系統(tǒng)控制協(xié)處理器,提供附加的寄存器用來(lái)配置和控制cache,MMU,保護(hù)系統(tǒng),時(shí)鐘模式,和ARM920T其他的系統(tǒng)選項(xiàng),如大小端操作。你可以使用MCR,MRC訪問(wèn)定義在CP15中的寄存器。
CP15定義了16個(gè)寄存器,寄存器的映射圖如下:
注:寄存器位置0可以訪問(wèn)兩個(gè)寄存器,通過(guò)opcode_2的值來(lái)確定。
ARM920T存在3個(gè)地址。
只能在特權(quán)模式下使用MCR和MRC指令訪問(wèn)CP15。這些指令的格式是:
MCR/MRC{cond} P15,,Rd,CRn,CRm,
指令CDP,LDC,STC和非特權(quán)模式的MRC,MCR指令操作CP15會(huì)導(dǎo)致未定義指令異常。MRC和MCR指令的CRn域指定了要訪問(wèn)的協(xié)處理寄存器。opcode_1,和CRm域應(yīng)該是0,除非值被指定用來(lái)選擇需要的操作。
Register 0,ID code register
可以通過(guò)讀CP15 register 0,opcode_2域設(shè)置成除了1的任何值(在讀的時(shí)候CRm應(yīng)該為0)。
如:
MRC p15,0,Rd,c0,c0,0;return ID register
cache type register 0
包含cache的大小和體系結(jié)構(gòu)的信息。可以通過(guò)設(shè)置域?yàn)?,讀CP15 register 0來(lái)訪問(wèn)cache type register。例如:
MRC p15,0,Rd,c0,c0,1;returns cache details
Dsize和Isize域格式一樣:
Register1,control register
這個(gè)寄存器包含了ARM920T的控制位。
MRC p15,0,Rd,c1,c0,0 ;read control register
MCR p15,0,Rd,c1,c0,0;write control register
評(píng)論