新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 利用Flash實(shí)現(xiàn)單片機(jī)系統(tǒng)的在線維護(hù)

利用Flash實(shí)現(xiàn)單片機(jī)系統(tǒng)的在線維護(hù)

作者: 時(shí)間:2012-02-02 來(lái)源:網(wǎng)絡(luò) 收藏

由于SST29EE010是以128字節(jié)的頁(yè)方式寫(xiě)入,所以實(shí)現(xiàn)加載指令時(shí),對(duì)SST29EE010的寫(xiě)操作以128字節(jié)為分組,不足128字節(jié)的分組填充至128字節(jié)再處理。在加載程序時(shí),主機(jī)將加載程序.BIN文件以128字節(jié)為單位分組,并為每個(gè)分組加上升級(jí)指令代碼和位置參數(shù)后通過(guò)串口發(fā)送給MCU,MCU接收數(shù)據(jù)后進(jìn)行判斷,若是加載指令則將接收的數(shù)據(jù)寫(xiě)入到參數(shù)指定的FLASH區(qū),并返回操作代碼;處理流程如圖4所示。

圖4 程序加載的處理流程圖

5 注意事項(xiàng)

在系統(tǒng)設(shè)計(jì)與程序設(shè)計(jì)過(guò)程中需要注意以下幾點(diǎn):

(1)對(duì)FLASH芯片進(jìn)行讀/寫(xiě)操作時(shí),將其當(dāng)作擴(kuò)展的外部存儲(chǔ)器(用MOVX @DPTR,A指令);執(zhí)行程序時(shí),將其作為擴(kuò)展的程序存儲(chǔ)器。

(2)在寫(xiě)數(shù)據(jù)之前要打開(kāi)SST29EE010的保護(hù)鎖,寫(xiě)操作完成后要將SST29EE010的保護(hù)鎖關(guān)閉,關(guān)鎖之前要有一定的延時(shí)(通過(guò)需要10ms)。

(3)為了保證整個(gè)系統(tǒng)的可用行,需要對(duì)加載程序進(jìn)行可用行檢測(cè)機(jī)制,最簡(jiǎn)單的方法就是為所要加載的.BIN文件增加3字節(jié)的內(nèi)容,在文件前面增加2字節(jié)的.BIN文件長(zhǎng)度指示,并在加載程序之后增加1字節(jié)的程序校驗(yàn)值(如異或值),寫(xiě)入FLASH中的內(nèi)容如圖5所示。

圖5加載程序的格式與內(nèi)容

(4)為了進(jìn)一步提高系統(tǒng)的安全性,需要進(jìn)行相關(guān)的身份認(rèn)證獲取加載的權(quán)限如口令驗(yàn)證,否則不予開(kāi)放加載功能。

(5)還應(yīng)該添加一些版本控制和校驗(yàn)功能,進(jìn)行版本控制,只有在與待加載的程序具有相同的版本時(shí)才能進(jìn)行程序加載。

(6)因?yàn)榧虞d的程序起始地址從8000H開(kāi)始,又有2字節(jié)的長(zhǎng)度指示,所以在加載程序之前增加“ORG 8002H”偽指令。

6 結(jié)束語(yǔ)

以單片機(jī)為基礎(chǔ)的需求越來(lái)越多,也就帶來(lái)了更多的維護(hù)問(wèn)題。通過(guò)上層應(yīng)用程序維護(hù)通常比直接進(jìn)行單片機(jī)底層程序的維護(hù)要方便得多!本文基于實(shí)現(xiàn)的思想,介紹了一種通過(guò)PC機(jī)串行接口維護(hù)的方法,從而為版本管理、程序的動(dòng)態(tài)維護(hù)以及程序存儲(chǔ)器的擴(kuò)展都提供了十分便利的手段。

參考資料

[1] 張友德,趙志英,涂時(shí)亮.單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn).上海:復(fù)旦大學(xué)出版社,2000

[2] 李朝青.PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù),北京:北京航空航天大學(xué)出版社,2001

[3] 余永權(quán).ATMEL89系列單片機(jī)應(yīng)用技術(shù),北京:北京航空航天大學(xué)出版社,2002


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

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

關(guān)閉