新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > DSP芯片的Flash存儲器的在線編程方式

        DSP芯片的Flash存儲器的在線編程方式

        作者: 時間:2012-06-08 來源:網絡 收藏


        2.2 帶有軟件握手的軟件設計

          的就緒信號/忙信號()輸出為低電平時,表明正忙,處于或擦除狀態,此時寫入或讀出的數據是無效的,不是程序員需要的數據;當該信號輸出為高電平時,表明已處于就緒狀態,可對其進行寫入或讀出數據的操作。

        本文引用地址:http://www.104case.com/article/148916.htm

          由于與Flash的接口采用軟件握手,在對Flash進行或擦除時,的總線周期中不會由硬件自動插入等待周期,如果此時仍采用2.1節的Flash函數對Flash進行編程,則會得到錯誤的編程結果。編程結束后會發現Flash存儲器中有一部分內容仍然是0xFFFF,處于編程前的狀態。雖然對Flash存儲器進行了編程操作,但由于Flash存儲器上一次編程操作還未完成,本次的編程操作無效,數據根本寫不進Flash存儲器。在CCS3.1中用“View/Memery”功能查看Flash存儲器,就會發現Flash存儲器中的數據等間隔地出現編程正確和編程不正確的現象。筆者在自己設計的TMS320C6711D-250嵌入式模塊(帶有AM29LV400B Flash存儲器)上,通過斷開與Flash存儲器的硬件Ready信號進行編程測試,無等待狀態的測試結果見表1,有等待狀態的測試結果見表2。

          

        無等待狀態的測試結果見表1

          可見,在沒有硬件握手的情況下,需要通過軟件來判斷當前Flash存儲器編程或擦除的狀態來進行編程操作。如果Flash存儲器正處于編程或擦除過程中,則無法繼續對Flash存儲器進行編程,需等到Flash存儲器上一次數據編程(寫入)完成時才能進行下一次數據編程(寫入)。否則,會得到錯誤的編程結果,造成編程后數據校驗失敗。

          大多數Flash存儲器都提供了一個或幾個狀態位來表示當前Flash存儲器編程或擦除的狀態,大多支持通過其數據總線D7數據位的狀態來判斷Flash存儲器當前編程或擦除的狀態。這是大多數Flash存儲器數據手冊推薦的編程輪詢算法,但經過筆者測試,這種算法比較繁瑣,會造成部分編程內容不正確,可采用將編程數據讀出、與寫入數據進行比較的簡單方法,實現軟件等待狀態的插入。

          說明:TMS320C6711D與AM29LV400B Flash存儲器采用16位數據連接,DSP EMIF CEl存儲器空間初始化為32位總線寬度(CEl端口連接16位Flash存儲器),讀取/寫入Flash存儲器的32位數據中高16位無效。

          帶有軟握手的Flash存儲器編程函數如下:

          

          3 兩種編程的區別

          在硬件上加入硬件握手的Flash存儲器編程設計簡單,在應用中只須考慮擦除和編程,而無須考慮Flash存儲器的當前狀態。當Flash存儲器正處于擦除和編程狀態而未完成時,Flash存儲器產生的忙信號通過Flash存儲器與DSP之間的硬件連接直接送入DSP,由DSP硬件在其總線訪問周期中自動插入等待周期,暫停DSP處理器的執行;當Flash擦除和編程狀態完成時,由Flash存儲器產生的就緒信號通過Flash存儲器與DSP之間的直接硬件連接將就緒信號送入DSP,解除DSP的等待狀態,繼續程序的執行。而采用軟件握手的Flash編程需要程序員在軟件中判斷Flash存儲器的當前狀態。只有當Flash存儲器擦除過程完成時,才能對其進行編程;當Flash存儲器的一次編程(數據寫入)過程完成時,才能進行下一次的編程(數據寫入)。軟件設計繁瑣,且要經過多次調試。

        存儲器相關文章:存儲器原理



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 三河市| 凤庆县| 张北县| 英吉沙县| 广南县| 曲沃县| 抚远县| 江口县| 麻阳| 齐齐哈尔市| 大埔县| 仙居县| 漠河县| 苏尼特右旗| 祁门县| 碌曲县| 勃利县| 黄平县| 万荣县| 驻马店市| 嘉义市| 卢氏县| 砚山县| 平谷区| 夏津县| 汉中市| 泽州县| 扎鲁特旗| 潢川县| 彝良县| 若尔盖县| 白沙| 阿图什市| 镇沅| 崇信县| 沙田区| 前郭尔| 黄大仙区| 大安市| 兴化市| 甘泉县|