[發明專利]一種Flash直接隨機寫實現方法、裝置及存儲介質在審
| 申請號: | 201810286924.0 | 申請日: | 2018-03-30 |
| 公開(公告)號: | CN108536614A | 公開(公告)日: | 2018-09-14 |
| 發明(設計)人: | 王勇軍;劉意虎;周磊;張鐸;孫立明;魏立峰;孔金珠 | 申請(專利權)人: | 天津麒麟信息技術有限公司 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02 |
| 代理公司: | 天津諾德知識產權代理事務所(特殊普通合伙) 12213 | 代理人: | 欒志超 |
| 地址: | 300457 天津市濱海新區*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 待寫入數據 偏移 寫入 讀取 擦除特性 存儲介質 連續數據 偏移地址 首地址 中間層 按塊 擦除 內存 替換 | ||
本發明提供一種Flash直接隨機寫實現方法,依次包括如下步驟:S110:獲取Flash大小及Flash塊大小;S120:獲取待寫入數據首地址相對于Flash的偏移地址及待寫入數據長度;S130:計算待寫入數據所在Flash的Block塊及塊內偏移;S140:根據待寫入數據長度及相對Flash的塊內偏移,計算待寫入數據對應的Block塊數。本發明的有益效果是利用Flash寫之前需要擦除及按塊擦除特性,根據Flash本身容量大小及塊大小、待寫入數據相對Flash偏移及數據字節長度,計算出待寫入數據要寫入的Flash Block塊序號及塊內偏移,利用一塊Flash Block塊大小的內存,通過讀取、替換、寫入等操作,使得Flash在不依賴于MTD等中間層或者Flash文件系統的情況下,可以直接隨機寫Flash內任意地址、任意長度字節的連續數據。
技術領域
本發明涉及通信及計算機技術領域,尤其是涉及一種Flash直接隨機寫實現方法、裝置及存儲介質。
背景技術
Flash寫之前需要擦除及按塊擦除的特性使得其在不依賴MTD(MemoryTechnology Device,內存技術設備)等中間層或者Flash文件系統時不能直接隨機寫。某些特定場景存在沒有MTD等中間層及Flash文件系統直接隨機寫Flash的需求;或者在嵌入式環境下,要求最終可執行文件盡可能的小,裁剪時也會去掉MTD等中間層但可能需要往Flash中寫入一些運行時數據。本發明專利提供了一種無MTD中間層或者Flash文件系統情況下直接隨機寫Flash。
發明內容
本發明的目的是要解決現有技術存在的缺陷和不足,提供一種Flash直接隨機寫實現方法,使得Flash在不依賴于MTD等中間層或者Flash文件系統的情況下,可以直接隨機寫Flash塊內任意地址、任意長度字節的連續數據,尤其適合x86、國產飛騰、龍芯等所有處理器架構平臺。
為解決上述技術問題,本發明采用的技術方案是:一種Flash直接隨機寫實現方法,依次包括如下步驟:
S110:獲取Flash大小及Flash塊大小;
S120:獲取待寫入數據首地址相對于Flash的偏移地址及待寫入數據長度;
S130:計算待寫入數據所在Flash的Block塊及塊內偏移;
S140:根據待寫入數據長度及相對Flash的塊內偏移,計算待寫入數據對應的Block塊數。
優選地,在所述步驟S120和步驟S130之間還包括:
判斷所述待寫入數據是否超過Flash大小;
若是,則報錯結束;
若如果否,則執行步驟S003。
優選地,所述步驟S130,計算待寫入數據所在Flash的Block塊,判斷計算結果包括:
S131:待寫入數據在Flash的一個Block塊內;
S132:待寫入數據跨Flash的兩個不同Block;
S133:待寫入數據跨Flash的多個Block塊。
優選地,當判斷結果為S131時,依次執行如下步驟:
S311:申請一段Flash Block塊大小的內存;
S312:讀出待寫入的Block塊數據到所述S301中申請的內存內;
S313:用待寫入數據替換申請到的內存中對應位置的數據;
S314:把該段Block大小長度的內存數據寫入到Flash相應塊。
優選地,當判斷結果為S132時,依次執行如下步驟:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于天津麒麟信息技術有限公司,未經天津麒麟信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810286924.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:數據清理方法、裝置、及服務器
- 下一篇:一種乒乓緩存控制器及其設計方法





