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