新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于ARM9中的協(xié)處理器CP15及MCR/MRC指令

關(guān)于ARM9中的協(xié)處理器CP15及MCR/MRC指令

作者: 時(shí)間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
在基于ARM的嵌入式應(yīng)用系統(tǒng)中,存儲系統(tǒng)通常是通過系統(tǒng)控制協(xié)處理器CP15完成的。CP15包含16個(gè)32位的寄存器,其編號為0~15。

訪問CP15寄存器的指令

本文引用地址:http://butianyuan.cn/article/201611/317532.htm

MCRARM寄存器到協(xié)處理器寄存器的數(shù)據(jù)傳送

MRC協(xié)處理器寄存器到ARM寄存器的數(shù)據(jù)傳送

MCR指令和MRC指令只能在處理器模式為系統(tǒng)模式時(shí)執(zhí)行,在用戶模式下執(zhí)行MCR指令和MRC指令將會觸發(fā)未定義指令的異常中斷。

MCR指令

MCR指令將ARM處理器的寄存器中的數(shù)據(jù)傳送到協(xié)處理器寄存器中。如果協(xié)處理器不能成功地執(zhí)行該操作,將產(chǎn)生未定義的指令異常中斷。

指令語法格式

MCR{}

,< opcode_1>,,,{,}

MCR{} p15,0,,,{,}

其中,為指令執(zhí)行的條件碼。當(dāng)忽略時(shí)指令為無條件執(zhí)行。

< opcode_1>為協(xié)處理器將執(zhí)行的操作的操作碼。對于CP15協(xié)處理器來說,< opcode_1>永遠(yuǎn)為0b000,當(dāng)< opcode_1>不為0b000時(shí),該指令操作結(jié)果不可預(yù)知。

作為源寄存器的ARM寄存器,其值將被傳送到協(xié)處理器寄存器中。

作為目標(biāo)寄存器的協(xié)處理器寄存器,其編號可能是C0,C1,…,C15。

兩者組合決定對協(xié)處理器寄存器進(jìn)行所需要的操作,如果沒有指定,則將為為C0,opcode_2為0,否則可能導(dǎo)致不可預(yù)知的結(jié)果。

Function Data instruction Invalidate TLB(s) SBZ MCR p15,0,Rd,c8,c7,0 Invalidate I TLB SBZ MCR p15,0,Rd,c8,c5,0 Invalidate I TLB single entry (using MVA) MVA format MCR p15,0,Rd,c8,c5,1 Invalidate D TLB SBZ MCR p15,0,Rd,c8,c6,0 Invalidate D TLB single entry (using MVA) MVA format MCR p15,0,Rd,c8,c6,1



評論


技術(shù)專區(qū)

關(guān)閉