新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Bootloader技術(shù)在數(shù)字信號控制器中的應(yīng)用

Bootloader技術(shù)在數(shù)字信號控制器中的應(yīng)用

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

如前文所述, PC 機(jī)發(fā)送的數(shù)據(jù)是從. hex 文件中提取的, PC機(jī)首先發(fā)送擴(kuò)展地址部分, 下位機(jī)接收保存后會繼續(xù)等待接收32個指令字( 96字節(jié))并保存到RAM 中, 然后根據(jù)接收到的地址擦除FLASH 存儲器中的1行, 擦除FLASH 是通過調(diào)用匯編函數(shù)E raseMem來進(jìn)行的, 函數(shù)原型如下:

mov# 0x4041, NVMCON ; 使NVMCON 寄存器為擦除FLASH模式

mov # 0x55, W 0

movW0, NVMKEY

mov # 0xAA, W0

movW 0, NVMKEY ; 將0x55、0xAA 寫入密鑰寄存器

bsetNVMCON, #WR ; 開始擦除

nop

nop

return

擦除FLASH存儲器的一行后需要把接收到的32個指令字寫入到FLASH 存儲器寫鎖存器中, 這一過程可以通過函數(shù)W riteLatch 實現(xiàn), 函數(shù)原型如下:

movW0, TBLPAG ; 寫表寄存器

tb lw tlW3, [W1]

tb lw thW2, [W1] ; 寫入鎖存器

return

這一步完成之后就可以將接收到的32個指令字寫入FLASH 存儲器了, 其方法與擦除FLASH 類似, 寫完一行后向PC 機(jī)發(fā)送應(yīng)答。待FLASH 存儲器全部寫完之后, PC 機(jī)會發(fā)送表示結(jié)束下載的命令, 下位機(jī)接收后退出Boo tloader程序, 進(jìn)入新的用戶程序繼續(xù)運(yùn)行, 從而完成整個在線自編程過程。

7 結(jié)束語

dsPIC30F 系列Boot loader實現(xiàn)用戶程序在線自編程升級的方法具有很高的價值, 尤其是于自主開發(fā)的工業(yè)自動化儀表時給用戶程序的現(xiàn)場升級帶來了極大的方便。該方法已經(jīng)成功用于電子皮帶秤控制儀表系統(tǒng)中, 達(dá)到了提高系統(tǒng)軟件升級的更換效率、降低升級費(fèi)用、提高產(chǎn)品制造商對用戶的服務(wù)質(zhì)量滿意度的目的。方法雖然僅以dsPIC30F系列芯片為例, 但對于M icrochip公司生產(chǎn)的其它系列芯片只要略加修改同樣適用。


上一頁 1 2 3 4 下一頁

評論


相關(guān)推薦

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

關(guān)閉