新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > C8051F單片機(jī)的軟件IAP技術(shù)

C8051F單片機(jī)的軟件IAP技術(shù)

作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏


   RSTSRC=0x10;//實(shí)現(xiàn)軟件復(fù)位
  Jmpmain();

對(duì)RSTSRC的寫操作均用直接賦值方式完成(如RSTSRC = 0x02),不能用讀/寫指令(如ORL或ANL)來完成。例如,代碼“RSTSRC |= 0x02”就是非法的。為保證完美的復(fù)位,在設(shè)置了復(fù)位寄存器后筆者還添加了匯編復(fù)位程序,以做到萬無一失。

  Jmpmain:
  LJMP 0000H
  RET

這樣通過一條長跳轉(zhuǎn)指令跳到程序區(qū)最開始的位置。在C中調(diào)用匯編程序的方法請參考其他文檔。

2引導(dǎo)區(qū)的編譯

作為程序引導(dǎo)區(qū)的程序,平時(shí)不參與主程序的執(zhí)行。而主程序主要用于和用戶操作界面PC 機(jī)部分進(jìn)行握手,當(dāng)接收到PC 機(jī)部分要進(jìn)行軟件升級(jí)的命令時(shí),程序跳至引導(dǎo)程序區(qū),執(zhí)行如下流程:

發(fā)送準(zhǔn)備升級(jí)字節(jié)到PC 機(jī)→刪除Flash 程序區(qū)→發(fā)送開始下載命令到PC 機(jī)→接收且放到相應(yīng)地址。


圖1主程序流程

主程序流程如圖1所示。引導(dǎo)區(qū)的程序要固定在一個(gè)位置,并單獨(dú)編譯,由 JTAG下載到MCU中。引導(dǎo)區(qū)的程序不能編譯分配Flash地址。筆者使用的Keil編譯器是一個(gè)很簡單、易用的編譯器。在Keil中,定位升級(jí)程序位置的實(shí)現(xiàn)方法非常簡單,通過修改其Project菜單下的Options for target一項(xiàng)就可以了。

在本程序中,引導(dǎo)區(qū)的程序定義在62 KB之后的位置。

編者注: 硬件接口和主從機(jī)程序見本刊網(wǎng)站www.mesnet.com.cn。

3注意的問題

① 使用內(nèi)部振蕩器,這樣能提高系統(tǒng)時(shí)鐘的抗干擾能力。
② 使用Flash時(shí)會(huì)限制執(zhí)行寫操作的速度。完成1個(gè)字節(jié)的操作最長需要40 μs ,所以最好選用9 600的波特率。
③ 減少將PSWE置1的指令操作。理想的情況是只有2個(gè)操作會(huì)將PSWE置1,即寫1個(gè)Flash字節(jié)和擦除1個(gè)Flash字節(jié)。
④ 將Flash寫/擦除指針指向data或idata區(qū)。
⑤ 引導(dǎo)區(qū)的程序應(yīng)該以512字節(jié)為邊界。
⑥ 升級(jí)用的HEX程序必須由PC機(jī)上的軟件轉(zhuǎn)化為BIN文件。
⑦ C8051F120 MCU程序的操作最大特點(diǎn)是:在配置寄存器時(shí)能切換到該寄存器所在的頁。
⑧ 引導(dǎo)區(qū)的程序在擦除或者寫時(shí),不可以開中斷,且要關(guān)掉所有中斷。

結(jié)語

本文中的軟硬件模塊已被嵌入到相關(guān)的應(yīng)用系統(tǒng)之中,提高了系統(tǒng)的性價(jià)比。該方案解決了升級(jí)過程中的一些關(guān)鍵技術(shù)問題,節(jié)約了資源,將會(huì)在一些高端控制中得到更為廣泛的應(yīng)用。軟件IAP 技術(shù)不但適用于C8051F單片機(jī),而且對(duì)使用其他單片機(jī)的產(chǎn)品設(shè)計(jì)也具有重要的參考價(jià)值。

參考文獻(xiàn)

[1] 姜曉梅,李祥和.基于ARM的IAP在線及遠(yuǎn)程升級(jí)技術(shù)[J].計(jì)算機(jī)應(yīng)用,2008(2):519521.
[2] 周立功,張華.深入淺出ARM7[M].北京:北京航空航天大學(xué)出版社, 2005: 426438.
[3] 劉憶輝,魏銀庫,等.片外Flash存儲(chǔ)器IAP的一種方案[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2006(2).
[4] 王颯.用C8051F020的SPI接口擴(kuò)展大容量數(shù)據(jù)存儲(chǔ)器[J].微計(jì)算機(jī)信息, 2006(22).
[5] 李光飛,陽富民,樓然苗.基于K9F2808UOC的FAT16文件系統(tǒng)[J].浙江海洋學(xué)院學(xué)報(bào):自然科學(xué)版,2006(6).
[6] K9F2808UOC datasheets[OL]. http: //www. samsung. com /Prod?ucts/datasheets. htm.

上一頁 1 2 下一頁

評(píng)論


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

關(guān)閉