日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]關(guān)于MMU編程,有幾個是要經(jīng)常查閱的資料。這里我把它整理成一篇文檔,因此篇幅太長,節(jié)選發(fā)上來,全部內(nèi)容放在附件的PDF當中。??這個文檔主要有三個內(nèi)容 ?? 一.協(xié)議處器CP15 中寄存器的全部說明.

關(guān)于MMU編程,有幾個是要經(jīng)常查閱的資料。這里我把它整理成一篇文檔,因此篇幅太長,節(jié)選發(fā)上來,全部內(nèi)容放在附件的PDF當中。
??這個文檔主要有三個內(nèi)容 ?? 一.協(xié)議處器CP15 中寄存器的全部說明. ?? 二.ARM 協(xié)處理指令 ?? 三.CP15命令列表
一.協(xié)議處器CP15 中寄存器說明 ---------------------------------------------------------------------------


寄存器編號

基本作用

在?MMU?中的作用

在?PU?中的作用

0

ID?編碼(只讀)

ID?編碼和?cache?類型

?

1

控 制位(可讀寫)

各 種控制位

?

2

存 儲保護和控制

地 址轉(zhuǎn)換表基地址

Cachability?的控制位

3

存 儲保護和控制

域 訪問控制位

Bufferablity?控制位

4

存 儲保護和控制

保 留

保 留

5

存 儲保護和控制

內(nèi) 存失效狀態(tài)

訪 問權(quán)限控制位

6

存 儲保護和控制

內(nèi) 存失效地址

保 護區(qū)域控制

7

高 速緩存和寫緩存

高 速緩存和寫緩存控制

?

8

存 儲保護和控制

TLB?控制

保 留

9

高 速緩存和寫緩存

高 速緩存鎖定

?

10

存 儲保護和控制

TLB?鎖定

保 留

11

保 留

?

?

12

保 留

?

?

13

進 程標識符

進 程標識符

?

14

保 留

?

?

15

因 不同設(shè)計而異

因 不同設(shè)計而異

因 不同設(shè)計而異



二. ARM協(xié)處理器指令

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



ARM?微處理器可支持多達?16?個協(xié)處理器,用于各種協(xié)處理操作,在程序執(zhí)行的過程中,每個協(xié)處理器只執(zhí)行針對自身的協(xié)處理指令,忽略?ARM?處理器和其他協(xié)處理器的指令。

ARM?的協(xié)處理器指令主要用于?ARM?處理器初始化?ARM?協(xié)處理器的數(shù)據(jù)處理操作,以及在ARM?處理器的寄存器和協(xié)處理器的寄存器之間傳送數(shù)據(jù),和在?ARM?協(xié)處理器的寄存器和存儲器之間傳送數(shù)據(jù)。?ARM?協(xié)處理器指令包括以下?5?條:

— CDP?協(xié)處理器數(shù)操作指令— LDC?協(xié)處理器數(shù)據(jù)加載指令— STC?協(xié)處理器數(shù)據(jù)存儲指令— MCR ARM?處理器寄存器到協(xié)處理器寄存器的數(shù)據(jù)傳送指令— MRC?協(xié)處理器寄存器到ARM?處理器寄存器的數(shù)據(jù)傳送指令?

1、CDP?指令

CDP?指令的格式為:

CDP{條件}?協(xié)處理器編碼,協(xié)處理器操作碼1,目的寄存器,源寄存器1,源寄存器2,協(xié)處理

器操作碼2。

CDP?指令用于ARM?處理器通知ARM?協(xié)處理器執(zhí)行特定的操作,若協(xié)處理器不能成功完成特定的操作,則產(chǎn)生未定義指令異常。其中協(xié)處理器操作碼1?和協(xié)處理器操作碼2?為協(xié)處理器將要執(zhí)行的操作,目的寄存器和源寄存器均為協(xié)處理器的寄存器,指令不涉及ARM?處理器的寄存器和存儲器。

指令示例:

CDP P3?,?2?,?C12?,?C10?,?C3?,?4?;該指令完成協(xié)處理器?P3?的初始化

2、LDC?指令

LDC?指令的格式為:

LDC{條件}{L}?協(xié)處理器編碼,目的寄存器,[源寄存器]

LDC?指令用于將源寄存器所指向的存儲器中的字數(shù)據(jù)傳送到目的寄存器中,若協(xié)處理器不能成功完成傳送操作,則產(chǎn)生未定義指令異常。其中,{L}選項表示指令為長讀取操作,如用于雙精度數(shù)據(jù)的傳輸。

指令示例:

LDC P3?,?C4?,?[R0]?;將?ARM?處理器的寄存器?R0?所指向的存儲器中的字數(shù)據(jù)傳送到協(xié)處理器P3?的寄存器?C4?中。

3、STC?指令

STC?指令的格式為:

STC{條件}{L}?協(xié)處理器編碼,源寄存器,[目的寄存器]

STC?指令用于將源寄存器中的字數(shù)據(jù)傳送到目的寄存器所指向的存儲器中,若協(xié)處理器不能成功完成傳送操作,則產(chǎn)生未定義指令異常。其中,{L}選項表示指令為長讀取操作,如用于雙精度數(shù)據(jù)的傳輸。

指令示例:

STC P3?,?C4?,?[R0]?;將協(xié)處理器?P3?的寄存器?C4?中的字數(shù)據(jù)傳送到?ARM?處理器的寄存器R0所指向的存儲器中。

4、MCR?指令

MCR?指令的格式為:

MCR{條件}?協(xié)處理器編碼,協(xié)處理器操作碼1,源寄存器,目的寄存器1,目的寄存器2,協(xié)處

理器操作碼2。

MCR?指令用于將ARM?處理器寄存器中的數(shù)據(jù)傳送到協(xié)處理器寄存器中,若協(xié)處理器不能成功完成操作,則產(chǎn)生未定義指令異常。其中協(xié)處理器操作碼1?和協(xié)處理器操作碼2?為協(xié)處理器將要執(zhí)行的操作,源寄存器為ARM?處理器的寄存器,目的寄存器1?和目的寄存器2?均為協(xié)處理器的寄存器。

指令示例:

MCR P3?,?3?,?R0?,?C4?,?C5?,?6?;該指令將?ARM?處理器寄存器?R0?中的數(shù)據(jù)傳送到協(xié)處理器?P3?的寄存器?C4?和?C5?中。

5、MRC?指令

MRC?指令的格式為:

MRC{條件}?協(xié)處理器編碼,協(xié)處理器操作碼1,目的寄存器,源寄存器1,源寄存器2,協(xié)處理

器操作碼2。

MRC?指令用于將協(xié)處理器寄存器中的數(shù)據(jù)傳送到ARM?處理器寄存器中,若協(xié)處理器不能成功完成操作,則產(chǎn)生未定義指令異常。其中協(xié)處理器操作碼1?和協(xié)處理器操作碼2?為協(xié)處理器將要執(zhí)行的操作,目的寄存器為ARM?處理器的寄存器,源寄存器1?和源寄存器2?均為協(xié)處理器的寄存器。

指令示例:

MRC P3?,?3?,?R0?,?C4?,?C5?,?6?;該指令將協(xié)處理器?P3?的寄存器中的數(shù)據(jù)傳送到?ARM?處理器寄存器中.

二. 協(xié)處理器指令命令列表

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


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.)


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉