ARM11 MPCORE 學習筆記

2021-05-23 05:22:06 字數 1818 閱讀 9733

arm11 mpcore 學習筆記

1,支援16mb supersection,1mb section,64kb large page,4kb small page分頁

2,asid怎麼用

3,micortlb 有8項,maintlb有64項

4,頁表中的訪問許可權位元ap和domain決定可否訪問乙個位址。

5,region attribute決定訪問是coherent, cached, uncached, device,shared這幾種中的那一種。

使能mmu前

1,建立合適的頁表

2,disable invalidate i cache

還要設定ttb和domain access control register

關閉mmu前

1,先關data cache

對mmu開-關-開的過程,tlb的內容是保留的,所以你最好重開之前,invalidate所有的tlb

關mmu之前,fcse pid置零。

domain

arm支援16domain,2-bit乙個domain, dacr暫存器

client    要檢查tlb表項

manager

頁表的access permission

包括apx 和ap[1:0],還有s r位元(deprecated)的含義, 見table5-1 p218

例如apx=1    ro 模式

apx=0    ap=01   privileged access only 模式

xn表示不能執行,在第一級和第二級的描述符中設定。

region attributes

c位元 b位元 和tex(type extension)

table5-3

cache屬性中的inner和outer

inner是指最內層的cache,例如l1 cache。

outer是指最外層的cache,例如l2 cache.

如果有3層cache,中間那層屬於inner還是outer是由implementation of a cache system 決定的。

cp15 control reg bit23 = 0  等於

subpage ap bits enabled  等於

backwards-compatible page table translation

當mmu採用backwards-compatible模式時,頁**式為

figure5-3 5-4所示。

cp15 control reg bit23 = 1  等於 armv6的頁**式。

armv6的新特性:

支援ng,表明乙個轉換是global的還是process-specific的。如果是後者,在把這個轉換插入tlb時,會加上當前asid的資訊,從contextid暫存器獲得。cp15 c13

s bit non-shared or shared 只對normal memory region有效。device是否shared是由tex c b 位元決定的。

xn bit

apx access permissions extesion 提供了extra 的許可權

secion 和supersection的區別是由第一級描述符的bit18決定的。

i-cache vipt. 對於cache大小是32kb 和 64kb的配置,4kb的頁表會引起aliasing的問題。

tlb的表項中記錄了asid的資訊,對tlb進行各種操作都能與asid進行比較。

fcse id    deprecated

contextid  ==  procid + asid

threadid  

學習ARM開發 11

學習arm開發 11 昨天又是星期天,在家裡又可以對那塊開發板進行軟體研究了。由於前幾次,把編譯好的uboot寫到flash老是執行不了。那麼怎麼辦呢?思考了很久,也檢視 了源程式,還是沒有發現問題。也許那個uboot的源程式太大,有很多的編譯開關,還有很多驅 動程式選擇,所以一頭霧水,不知怎麼辦好...

ARM學習筆記 三

異常 exceptions 當正常的程式執流程發生暫時的停止時,稱之為異常。處理中斷請求,處理前保留現場以便處理完後返回 處理器允許多個異常同時發生,它們會按固定的優先順序被處理。arm體系結構所支援的異常型別及其具體含義 按優先順序從高到低 1 復位 當處理器復位電平有效時產生復位異常 3 fiq...

ARM指令學習筆記

1 arm指令中,帶有 s 的指令都會更新狀態位 eq ne pl等 例如ands等 2 arm的adc指令和csky的addc不一樣。arm的adc指令在做加法的時候會加上c位,這點兩者一致,但是並不會更新c位。csky的addc指令除了做加法的時候會加上c位,還會更新c位。3 cmn rn,op...