WinCE Cache操作函式

2021-05-17 18:21:41 字數 1746 閱讀 5953

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 所返回之檔案指標。如果已到檔案尾則返回非零值...