<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          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)用匯編程序的方法請(qǐng)參考其他文檔。

          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)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();