協處理器CP15

2022-03-08 01:13:26 字數 1373 閱讀 6355

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

mcr arm暫存器到協處理器暫存器的資料傳送

mrc 協處理器暫存器到arm暫存器的資料傳送

mcr指令和mrc指令只能在處理器模式為系統模式時執行,在使用者模式下執行mcr指令和mrc指令將會觸發未定義指令的異常中斷。

mcr指令將arm處理器的暫存器中的資料傳送到協處理器暫存器中。如果協處理器不能成功地執行該操作,將產生未定義的指令異常中斷。

mcr{} ,,,,

mcr p15,0,,,

其中,為指令執行的條件碼。當忽略時指令為無條件執行。

為協處理器將執行的操作的操作碼。對於cp15協處理器來說,< opcode_1>永遠為0b000,當< opcode_1>不為0b000時,該指令操作結果不可預知。

作為源暫存器的arm暫存器,其值將被傳送到協處理器暫存器中。

作為目標暫存器的協處理器暫存器,其編號可能是c0,c1,…,c15。

和兩者組合決定對協處理器暫存器進行所需要的操作,如果沒有指定,則將為為c0,opcode_2為0,否則可能導致不可預知的結果。

下面的指令從arm暫存器r4中中將資料傳送到協處理器cp15的暫存器c1中。其中r4為arm暫存器,存放源運算元,c1、c0為協處理器暫存器,為目標暫存器,opcode_1為0,opcode_2為0。

mcr p15, 0, r4, c1, c0, 0
mrc指令將協處理器的暫存器中的數值傳送到arm處理器的暫存器中、如果協處理器不能成功地執行該操作,將產生未定義的指令異常中斷。

mrc{} ,,,,

mrc p15,0,,,

引數用法同mcr指令

附圖1:

附圖2:

協處理器CP15操作指令

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

協處理器CP15操作指令

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

系統控制協處理器CP15

在基於arm的嵌入式應用系統中,儲存系統通常是通過系統控制協處理器cp15完成的。cp15包含16個32位的暫存器,其編號為0 15。mcrarm暫存器到協處理器暫存器的資料傳送 mrc協處理器暫存器到arm暫存器的資料傳送 注意 mcr指令和mrc指令只能在處理器模式為系統模式時執行,在使用者模式...