在
oal 中有兩個和
cache
相關的函式,乙個是
oemarmcachemode
,另乙個是
oemcacherangeflush
函式,這兩個函式在
arm 處理器上是必須實現的。
oemarmcachemode
函式用於設定基於
arm 處理器頁表的
cache
模式,主要是設定
mmu 頁表中的c ,
b 控制位,達到控制相應的儲存空間的緩衝特性的目的。一般預設c 和
b 控制位都被設定為
1 ,表示對
write-through
模式和write-back
模式採用
cache
和write buffer
技術。函式實現如下:
leaf_entry oemarmcachemode
mov r0, #0x0c
該函式已經被實現,在
platform
目錄下可以被搜尋到。預設情況下將c ,
b 都設定為
1 ,將值儲存在
r0 暫存器中。
oemcacherangeflush
用於重新整理某個位址範圍內的
cache
和tlb
,會被wince
核心呼叫。在
oeminit
函式被核心呼叫以後,核心會呼叫該函式重新整理整個指令和資料
tlb 。
函式定義如下:
void oemcacherangeflush(lpvoid paddr, dword dwlength, dword dwflags)
paddr
dwlength
:被重新整理的大小
dwflags
:重新整理標記位,如下:
cache_sync_writeback
:寫回被
cache
的資料
cache_sync_discard
:寫回並重新整理 被
cache
的資料
cache_sync_instructions
:重新整理 所有的指令
cache資料
cache_sync_flush_i_tlb
:重新整理指令
tlb
cache_sync_flush_d_tlb
:重新整理資料
tlb
cache_sync_flush_tlb
:重新整理指令和資料
tlb
cache_sync_l2_writeback
:寫回二級
cache資料
cache_sync_l2_discard
:寫回並重新整理 二級
cache資料
cache_sync_all
:做上面所有的操作
該函式也已經被實現,在
」platform/common」
目錄下可以搜尋到。一般來說上面兩個函式不需要再被實現了,我想只要知道這兩個函式,了解一下就可以了。
mysql 函式操作 mysql 數學操作函式
絕對值,圓周率 select abs 1 3 pi 平方根,求餘 select sqrt 9 mod 9,5 獲取整數的函式 select ceil 12.145 ceiling 12.145 floor 12.545 獲取隨機數 select rand 10,rand 1 mysql取得某一範圍隨...
函式 使用函式指標操作函式
設計乙個名為calculate 的函式,他接受兩個double 值和乙個指向函式的指標,而被指向的函式接受兩個double引數,並返回乙個double值 calculate 函式的型別也是double,並返回被指向的函式值用calculate 的兩個double引數計算得到的值。例如,假設add 函...
檔案操作函式
1,feof 檢查檔案流是否讀到了檔案尾 相關函式 fopen,fgetc,fgets,fread 表頭檔案 include 定義函式 int feof file stream 函式說明 feof 用來偵測是否讀取到了檔案尾,尾數stream為fopen 所返回之檔案指標。如果已到檔案尾則返回非零值...