Memory底層API使用說(shuō)明_第1頁(yè)
Memory底層API使用說(shuō)明_第2頁(yè)
Memory底層API使用說(shuō)明_第3頁(yè)
Memory底層API使用說(shuō)明_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Memory底層API使用說(shuō)明1. Memory API 接口函數(shù)底層Memory API讀寫(xiě)函數(shù)如下圖所示:commit transactionE2PRAMCACHERAM|E2P_stream_ope nE2P_write_u8|E2P_stream_flushE2P write u16|E2P_stream_write_u8/u16/u32E2P write u32|E2P_stream_write_arrayE2P_write_array1 E2P stream fill arrayE2P_fill_arrayE2P writelE2Pead_u8/16/32/arrayE2P_wri

2、te_u8/16/32/array_atomicRAM_read_u8/16/32/ arrayRAM_write_u8/ u16/u32 /arrayRAM_fill_arraymem_write_u8 mem_write_u16 mem_write_u32 mem_write_array mem fill arraymem_write_u8_atomic mem_write_u16_atomic mem_write_u32_atomic mem_write_array_atomicmem_read_u8 mem_read_u16 mem_read_u32 mem_read_array me

3、m_array_compareCode_read_u8/16/32/arrayCode_write_u8/16/32/arrayCode_write_u8/16/32/array_atomicref_to_po in ter_codeData_table_init Data_alloc Data_free Data_AvailableCode table initCode_allocByteCode_freeCodeCode_Availablertr_allocNativedtr_allocMethodrtrAvailabledtrAvailableADMMan age關(guān)于Memory讀寫(xiě)的方

4、式,共有如下幾類(lèi):1.1 E2P_writeI最底層的Memory讀寫(xiě)函數(shù),它要考慮 Flash的頁(yè)邊界對(duì)齊。1.2 E2P_stream_*使用:E2P_stream_ope n( destAddr);E2P_stream_write_u8/16/32/array 或 E2P_stream_fill_arrayE2P_stream_flush();Flash擦寫(xiě)次數(shù),提高寫(xiě) Flash的效率。1.3 E2P_write_u8/u16/u32/arrayE2P_fill_array基于E2P_stream_*之上的函數(shù)集合,它是non-Atomic操作,用于不考慮交易的非原子性情況。例如:卡初

5、始化時(shí)機(jī)等。注意一點(diǎn):當(dāng)E2P_write_array 時(shí),需要考慮源地址,源地址+ len是否被緩存。1.4 E2P_read_u8/u16/u32/array從Flash中指定地址讀取數(shù)據(jù)。由于引入 CacheTransaction 機(jī)制,F(xiàn)lash中實(shí)際的數(shù)據(jù)可能是 dirty 的,這 時(shí)就需要從Cache中讀取。在 Memory接口圖中,能夠看出,該模塊左側(cè)為E2P或RAMCACH兩個(gè)方塊,表示實(shí)際數(shù)據(jù)可能從 E2P和RAMCACH中得到。A. 假如讀取的數(shù)據(jù)位于同一個(gè)sector內(nèi),先從transactioncache中查找要讀取的地址是否已緩存,假如以緩存那么為hit ,否那么為

6、miss。假如hit那么從cache中讀取,否那么從 MEM中讀取。B. 假如讀取的數(shù)據(jù)跨 sector邊界,那么先要按 sector拆分地址,分別按 A步驟讀取部分?jǐn)?shù)據(jù)。再將數(shù)據(jù)組合。1.5 E2P_write_u8/u16/u32/array_atomicAtomic 寫(xiě)操作。該類(lèi)函數(shù)實(shí)際并不寫(xiě)Commit_transactionA 假如要寫(xiě)的數(shù)據(jù)處于同一個(gè)Flash ,它只是將要更新的內(nèi)容更新到時(shí)候再將RAMCache中的數(shù)據(jù)更新到 Flash中去。sector內(nèi),先從transactioncachehit ,那么改寫(xiě)緩存的數(shù)據(jù)。否那么添加到B 假如要寫(xiě)入的數(shù)據(jù)跨 sector 邊界,那

7、么先要按 寫(xiě)入部分?jǐn)?shù)據(jù)。1.6 RAM_* 該類(lèi)函數(shù)提供了對(duì) RAM的讀寫(xiě)操作。1.7 Mem_write_u8/16/32/array 這類(lèi)函數(shù)依照地址判斷地址所對(duì)應(yīng)的存儲(chǔ)介質(zhì)是 如是E2P,那么用1.3中的對(duì)應(yīng)函數(shù)操作。1.8 Mem_write_u8/16/32/array_atomic 這類(lèi)函數(shù)依照地址判斷地址所對(duì)應(yīng)的存儲(chǔ)介質(zhì)是 如是E2P,那么用1.5中的對(duì)應(yīng)函數(shù)操作。1.9 Code_*對(duì) Class 區(qū)的操作,這類(lèi)函數(shù)造作的地址基本上 們調(diào)用了相應(yīng)的 1.3 和1.5 中的函數(shù)。transactioncacheCache中去。等到中查找要寫(xiě)入的地址是否已緩存,假如 一個(gè)新的記錄。

8、將數(shù)據(jù)內(nèi)容寫(xiě)入。sector邊界拆分寫(xiě)入的地址及數(shù)據(jù)長(zhǎng)度,分別按 A步驟RAM依舊 E2P,假如是RAM那么用1.6中的對(duì)應(yīng)函數(shù)操作, 假RAM依舊 E2P,假如是RAM那么用1.6中的對(duì)應(yīng)函數(shù)操作, 假Ref 地址,不是絕對(duì)物理地址。它實(shí)際上是一組宏定義,他1.10 Class 區(qū)的治理函數(shù) Code_table_init Code_alloc Code_free Code_available1.11 Heap 區(qū)的治理函數(shù)Data_table_init Data_alloc Data_free Data_available初始化 Class 區(qū)內(nèi)存治理表 從 Code 區(qū)分配一塊內(nèi)存空間 刪除從Code區(qū)分配的空間 返回Code區(qū)可用的空間初始化 Data 區(qū)內(nèi)存治理表從 Data 區(qū)分配一塊內(nèi)存空間 刪除從 Data 區(qū)分配的空間 返回 Data 區(qū)可用的空間1.12 RTR/DTR空間的治理函數(shù)這類(lèi)函數(shù)要緊對(duì) RTR/DTR進(jìn)行操作。RTR/DTR的治理信息放在卡注冊(cè)表中。Rtr_alloc RTR空間的分配函數(shù) Dtr_alloc DTR空間的分配函數(shù) Rtr_available 返回可用的空間

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論