關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 一種支持多種閃存的自適應(yīng)驅(qū)動設(shè)計

一種支持多種閃存的自適應(yīng)驅(qū)動設(shè)計

作者: 時間:2012-05-23 來源:網(wǎng)絡(luò) 收藏

2 Flash自適應(yīng)方法設(shè)計

傳統(tǒng)的Flash驅(qū)動Software_A中只為Flash_A提供了驅(qū)動接口函數(shù)。自適應(yīng)Flash驅(qū)動Software_AB在硬件接口層中同時為Flash_A和Fla sh_B各提供一套驅(qū)動接口函數(shù),系統(tǒng)通過讀取Flash存儲器的ID號來識別當(dāng)前Flash,從而選擇適合當(dāng)前Flash存儲器的接口函數(shù)。以此類推,如果Software_ABC中添加了Flash_C的接口操作函數(shù),則Software_ABC也添加對Flash_C的支持,實現(xiàn)3種Flash存儲器的自適應(yīng)。

2.1 Flash自適應(yīng)方法模型及實現(xiàn)

自適應(yīng)模型與傳統(tǒng)模型的比較如圖4所示。自適應(yīng)驅(qū)動方法在傳統(tǒng)驅(qū)動方法的基礎(chǔ)上添加了自適應(yīng)層,硬件驅(qū)動層里有多款Flash的接口操作函數(shù)。

d.JPG

一個驅(qū)動程序中存在多種Flash的接口函數(shù),系統(tǒng)在自適應(yīng)層中分三步來尋找對應(yīng)Flash的接口函數(shù)。如圖5所示,自適應(yīng)層實現(xiàn)方法如下:

e.JPG

①讀取Flash設(shè)備ID;

②fLash_nor_probe(),系統(tǒng)根據(jù)讀取到的ID,遍歷指針數(shù)組*(spansion[]),尋找當(dāng)前Flash的驅(qū)動信息,并將之存儲在全局變量中;

③根據(jù)相應(yīng)的全局變量,自動尋找相應(yīng)的驅(qū)動函數(shù)。

2.2 Flash接口函數(shù)的實現(xiàn)

本文以Toshiba公司ty5701111183kc04的Flash ID讀取為例,介紹NOR Flash驅(qū)動函數(shù)的實現(xiàn)方法。

Flash ID讀取流程:

①發(fā)送復(fù)位指令0xf0令Flash復(fù)位;

②給Flash發(fā)送讀取ID的命令序列;

③讀取Flash ID存儲到全局變量中。



關(guān)鍵詞: 閃存 驅(qū)動設(shè)計

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉