1. 程式人生 > >關於ARM9協處理器CP15及MCR和MRC指令

關於ARM9協處理器CP15及MCR和MRC指令

http://6xudonghai.blog.163.com/blog/static/336406292008724103317304/

在基於ARM的嵌入式應用系統中,儲存系統通常是通過系統控制協處理器CP15完成的。CP15包含1632位的暫存器,其編號為0~15

訪問CP15暫存器的指令

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

MRC協處理器暫存器到ARM暫存器的資料傳送

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

MCR指令

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

指令語法格式

MCR{<cond>}

< opcode_1><Rd>,<CRn>,<CRm>{,<opcode_2>}

MCR{<cond>} p150<Rd>,<CRn>,<CRm>{,<opcode_2>}

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

< opcode_1>為協處理器將執行的操作的操作碼。對於CP15協處理器來說,< opcode_1>

永遠為0b000,當< opcode_1>不為0b000時,該指令操作結果不可預知。

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

<CRn>作為目標暫存器的協處理器暫存器,其編號可能是C0C1C15

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

The CRm field and opcode_2 field are used to specify a particular action when addressing registers.The opcode_1, opcode_2 and CRm fields should be zero, except when the values specified are used to select the desired operations, in all instructions which access CP15. Using other values will result in unpredictable behavior. Attempting to read from a non-readable register, or writing to a non-writable register will cause unpredictable results.

使用示例

下面的指令從ARM暫存器R4中中將資料傳送到協處理器CP15的暫存器C1中。其中R4ARM暫存器,存放源運算元,C1C0為協處理器暫存器,為目標暫存器,opcode_10opcode_20

MCRp15,0,R4, C1,C0,0

MRC指令

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

指令語法格式

MRC{<cond>}

< opcode_1><Rd>,<CRn>,<CRm>{,<opcode_2>}

MRC{<cond>} p150<Rd>,<CRn>,<CRm>{,<opcode_2>}

引數用法同MCR指令

CP15中的暫存器介紹

Register(暫存器)

Read

Write

C0

ID Code (1)

Unpredictable

C0

Catch type(1)

Unpredictable

C1

Control

Control

C2

Translation table base

Translation table base

C3

Domain access control

Domain access control

C4

Unpredictable

Unpredictable

C5

Fault status(2)

Fault status (2)

C6

Fault address

Fault address

C7

Unpredictable

Cache operations

C8

Unpredictable

TLB operations

C9

Cache lockdown(2)

Cache lockdown (2)

C10

TLB lock down(2)

TLB lock down(2)

C11

Unpredictable

Unpredictable

C12

Unpredictable

Unpredictable

C13

Process ID

Process ID

C14

Unpredictable

Unpredictable

C15

Test configuration

相關推薦

關於ARM9處理器CP15MCRMRC指令

http://6xudonghai.blog.163.com/blog/static/336406292008724103317304/ 在基於ARM的嵌入式應用系統中,儲存系統通常是通過系統控制協處理器CP15完成的。CP15包含16個32位的暫存器,其編

ARM處理器CP15(設定MMU,cache等)學習

                    一直對協處理器CP15很恐懼,因為在網上基本上找不到中文的詳細說明,現在找了一些ARM官方文件(ARM920T Technical Reference Manual)來看,準備對它做個了結。    協處理器CP15包含了如下暫存器。===================

淺談ARM處理器命令MCR-MRC

ARM協處理器cp15,有16個暫存器,詳細看《ARM體系結構與程式設計》 這裡我大概說一下MRC與MCR這兩個協處理器操作,參考《s3c2440》元件手冊P140頁 格式: <MCR|MRC>{cond} p#,<expression1>,

HBase學習之三: hbase filter(過濾器)coprocessor(處理器)統計行數的簡單應用

2.通過coprocessor統計行數   關於協處理器的介紹和用法網上很多資料,可以自行查詢腦補,值得注意的是協處理器在hbase伺服器端執行,開發者可自定義處理器放置於伺服器端然後再客戶端呼叫,

HBase建表高階屬性,hbase應用案例看行鍵設計,HBasemapreduce結合,從Hbase中讀取資料、分析,寫入hdfs,從hdfs中讀取資料寫入Hbase,處理器二級索引

1. Hbase高階應用 1.1建表高階屬性 下面幾個shell 命令在hbase操作中可以起到很到的作用,且主要體現在建表的過程中,看下面幾個create 屬性 1、 BLOOMFILTER 預設是NONE 是否使用布隆過慮及使用何種方式 布隆

期望、方差、方差相關係數的原理理解計算

一、期望 定義: 設P(x)是一個離散概率分佈函式自變數的取值範圍是。那麼其期望被定義為:                                                      

HBase優化策略處理器

服務端優化 什麼導致HBase效能下降 Jvm記憶體分配與GC回收策略 HBase執行機制相關的配置分配不合理 表結構設計及使用者使用方式不合理 HBase資料儲存過程 HBase寫入時當memstore達到一定大小會flush到磁碟儲存成HFile,

uboot中的mmucache開啟(基本處理器操作)

參考的書籍主要是<深度探索嵌入式作業系統> 彭東 著 第三章的內容 結合uboot 編譯rpi遇到的問題 mmu主要是實體地址和虛擬地址的轉換 cache主要有icache指令快取和dcache資料快取。比如在cpu執行for迴圈的時候需要重複訪問一句指令或者

公司網絡重新規劃拓撲圖VPN

是的 一個 拓撲圖 自己的 任務 log vlan 技術分享 完成 因為公司沒有網絡工程師,所以這個任務就交由我來完成,但是我之前對網絡也不懂,然後查找資料,最後完成了網絡的重新規劃; 是的,其實我也不知道為什麽會接下這個任務,但是通過這個任務自己的確的學到不少東西; 先上

while與do while 區別 for循環的簡介breakcontinue的區別

停止 alt 執行c light div type 結構 輸入 n) do while 循環和while循環的區別 1、do while循環是先執行循環體,然後判斷循環條件,如果為真,則執行下一步循環,否則終止循環; while循環是先判斷循環條件,如果條件為真則

Spring3 MVC 註解(一)---註解基本配置@controller @RequestMapping 常用解釋(轉)

nal context pac 配置 註解 com inf 如何 文件中 一:配置web.xml 1)問題:spring項目中有多個配置文件mvc.xml dao.xml 2)解決:在web.xml中 <init-par

如何求數字n的因數個數因數

ont 可能 簡單 ack 為我 pan -s span ... 我們有可能在某些數學題中會求到某個數的因數和,那我們怎麽求呢? 因為我們知道任意一個合數都可以由兩個或多個質數相乘得到,那麽我們就先分解質因數吧 例:我們隨便去一個數吧,嗯,就108了,好算。。。 我們

Linux的歸檔壓縮Linux的cron時間計劃任務

linux linux的歸檔及壓縮: 1.節約空間 2.方便對零散文檔的管理 tar集成備份工具: -c: 創建歸檔 -x: 釋放歸檔 -f: 指定歸檔文件名稱 -

java基礎程序代碼ScannerRandom

rdo del 顯示 自定義 dell 價格 pub 使用 string 1.商城庫存總數及金額 public class shangpin{ public static void main(String[] args){ System.out.p

pfSense關於處理器Meltdown(熔毀)Spectre(幽靈)漏洞更新修復的說明

microsoft 本地 以及 cache hit tga 系統 weight 運行 事件描述2018年1月4日,Jann Horn等安全研究者披露了"Meltdown"(CVE-2017-5754)和"Spectre"(CVE-20

php中的public、protected、private三種訪問控制模式selfparent的區別(轉)

protected 屬性和方法 ted tor pre ons spa imp 數據 php的public、protected、private三種訪問控制模式的區別 public: 公有類型 在子類中可以通過self::var調用public方法或屬性,parent::m

CentOS-7 ,yum倉庫搭建ftphttp配置

yum ftp http 掛載光盤,光盤放入光驅# mkdir /media/cdrom //創建掛載目錄,個人習慣# mount /dev/cdrom /media/cdrom/ //掛載ls /media/cdrom/ //查看是否掛載成功 安裝 vsftprpm -ivh /med

win10安裝mongodb配置 mongodb的基本使用(node環境)

function ase mov bsp .config 配置 bin 位置 保存數據 mongodb安裝  下載地址: https://www.mongodb.com/download-center 下載後,我們點擊mongodb-win32-x86_64-2008plu

第六課 相對絕對路徑、創建刪除目錄cdrm命令的使用

20180326一、相對路徑和絕對路徑 pwd命令: 打印查看當前路徑 絕對目錄就是以/(根)開頭的,相對路徑就是相對當前目錄,不是以/(根)開頭的。 二、cd命令cd 進入到一個目錄cd - 進入上次的目錄(相當於遙控器上的相互交替的按鍵)cd ~ 回到用戶家目錄cd .. 進入到上一級目錄 三、創

msyql數據庫簡單操作事務索引

linux mysqlmsyql數據庫簡單操作及事務和索引 Msyql數據庫操作:[root@MYSQL ~]# mysql -u root -p //進入數據庫中 mysql> show databases; //查看所有數據庫 mysql> use mysql; //進入mysql