ARM11 (S3C6410) CP15寄存器

來源:互聯網
上載者:User
關於MMU編程,有幾個是要經常查閱的資料。這裡我把它整理成一篇文檔,因此篇幅太長,節選發上來,全部內容放在附件的PDF當中。  這個文檔主要有三個內容   一.協議處器CP15 中寄存器的全部說明.   二.ARM 協處理指示   三.CP15命令列表一.協議處器CP15 中寄存器說明---------------------------------------------------------------------------

引自 http://blog.csdn.net/genglei1022/archive/2010/07/05/5712843.aspx

寄存器編號

基本作用

在 MMU 中的作用

在 PU 中的作用

0

ID 編碼(唯讀)

ID 編碼和 cache 類型

 

1

控 制位(可讀寫)

各 種控制位

 

2

存 儲保護和控制

地 址轉換表基地址

Cachability 的控制位

3

存 儲保護和控制

域 存取控制位

Bufferablity 控制位

4

存 儲保護和控制

保 留

保 留

5

存 儲保護和控制

內 存失效狀態

訪 問許可權控制位

6

存 儲保護和控制

內 存失效地址

保 護地區控制

7

高 速緩衝和寫緩衝

高 速緩衝和寫緩衝控制

 

8

存 儲保護和控制

TLB 控制

保 留

9

高 速緩衝和寫緩衝

高 速緩衝鎖定

 

10

存 儲保護和控制

TLB 鎖定

保 留

11

保 留

 

 

12

保 留

 

 

13

進 程標識符

進 程標識符

 

14

保 留

 

 

15

因 不同設計而異

因 不同設計而異

因 不同設計而異



二. ARM副處理器指令

----------------------------------------------------------------------------

引自http://blog.csdn.net/aaaaatiger/archive/2007/09/02/1769470.aspx

 

ARM 微處理器可支援多達 16 個副處理器,用於各種協處理操作,在程式執行的過程中,每個副處理器只執行針對自身的協處理指示,忽略 ARM 處理器和其他副處理器的指令。

ARM 的副處理器指令主要用於 ARM 處理器初始化 ARM 副處理器的資料處理操作,以及在ARM 處理器的寄存器和副處理器的寄存器之間傳送資料,和在 ARM 副處理器的寄存器和儲存空間之間傳送資料。 ARM 副處理器指令包括以下 5 條:

  • — CDP 副處理器數操作指令
  • — LDC 副處理器資料載入指令
  • — STC 副處理器資料存放區指令
  • — MCR ARM 處理器寄存器到副處理器寄存器的資料傳送指令
  • — MRC 副處理器寄存器到ARM 處理器寄存器的資料傳送指令
  •  

1、CDP 指令

CDP 指令的格式為:

CDP{條件} 副處理器編碼,副處理器作業碼1,目的寄存器,源寄存器1,源寄存器2,協處理

器作業碼2。

CDP 指令用於ARM 處理器通知ARM 副處理器執行特定的操作,若副處理器不能成功完成特定的操作,則產生未定義指令異常。其中副處理器作業碼1 和副處理器作業碼2 為副處理器將要執行的操作,目的寄存器和源寄存器均為副處理器的寄存器,指令不涉及ARM 處理器的寄存器和儲存空間。

指令樣本:

CDP P3 , 2 , C12 , C10 , C3 , 4 ;該指令完成副處理器 P3 的初始化

2、LDC 指令

LDC 指令的格式為:

LDC{條件}{L} 副處理器編碼,目的寄存器,[源寄存器]

LDC 指令用於將源寄存器所指向的儲存空間中的字資料傳送到目的寄存器中,若副處理器不能成功完成傳送操作,則產生未定義指令異常。其中,{L}選項表示指令為長讀取操作,如用於雙精確度資料的傳輸。

指令樣本:

LDC P3 , C4 , [R0] ;將 ARM 處理器的寄存器 R0 所指向的儲存空間中的字資料傳送到副處理器P3 的寄存器 C4 中。

3、STC 指令

STC 指令的格式為:

STC{條件}{L} 副處理器編碼,源寄存器,[目的寄存器]

STC 指令用於將源寄存器中的字資料傳送到目的寄存器所指向的儲存空間中,若副處理器不能成功完成傳送操作,則產生未定義指令異常。其中,{L}選項表示指令為長讀取操作,如用於雙精確度資料的傳輸。

指令樣本:

STC P3 , C4 , [R0] ;將副處理器 P3 的寄存器 C4 中的字資料傳送到 ARM 處理器的寄存器R0所指向的儲存空間中。

4、MCR 指令

MCR 指令的格式為:

MCR{條件} 副處理器編碼,副處理器作業碼1,源寄存器,目的寄存器1,目的寄存器2,協處

理器作業碼2。

MCR 指令用於將ARM 處理器寄存器中的資料傳送到副處理器寄存器中,若副處理器不能成功完成操作,則產生未定義指令異常。其中副處理器作業碼1 和副處理器作業碼2 為副處理器將要執行的操作,源寄存器為ARM 處理器的寄存器,目的寄存器1 和目的寄存器2 均為副處理器的寄存器。

指令樣本:

MCR P3 , 3 , R0 , C4 , C5 , 6 ;該指令將 ARM 處理器寄存器 R0 中的資料傳送到副處理器 P3 的寄存器 C4 和 C5 中。

5、MRC 指令

MRC 指令的格式為:

MRC{條件} 副處理器編碼,副處理器作業碼1,目的寄存器,源寄存器1,源寄存器2,協處理

器作業碼2。

MRC 指令用於將副處理器寄存器中的資料傳送到ARM 處理器寄存器中,若副處理器不能成功完成操作,則產生未定義指令異常。其中副處理器作業碼1 和副處理器作業碼2 為副處理器將要執行的操作,目的寄存器為ARM 處理器的寄存器,源寄存器1 和源寄存器2 均為副處理器的寄存器。

指令樣本:

MRC P3 , 3 , R0 , C4 , C5 , 6 ;該指令將副處理器 P3 的寄存器中的資料傳送到 ARM 處理器寄存器中.

二. 副處理器指令命令列表

-------------------------------------------------------------

引自 http://www.iphonedevwiki.net/index.php/Coprocessors

Register allocation for Opcode 0

cN   

cM   

opcode2   

Register   

Readable (mrc)   

Writable (mcr)   

Comments   

c0

c0

0

Main ID

Privileged

No

Contains vendor, architecture, part number, etc.[2]

c0

c0

1

Cache type

Privileged

No

Size and architecture of cache.[3]

c0

c0

2

Tightly coupled memory (TCM) status

Privileged

No

 

c0

c0

3

Translation look-aside buffer (TLB) type

Privileged

No

 

c0

c0

5

Multiprocessor ID

Privileged

No

(Cortex only.)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.