基于ARM的在線更新機(jī)制的設(shè)計(jì)實(shí)現(xiàn)
3.5 啟動(dòng)程序與應(yīng)用程序之前的跳轉(zhuǎn)
在啟動(dòng)程序中定義應(yīng)用程序的地址,#defineAPP_CODE_ADDR (0x00001000),程序跳轉(zhuǎn)的代碼采用匯編語言編寫,代碼實(shí)例如下:
3.6 啟動(dòng)代碼的實(shí)現(xiàn)流程當(dāng)用戶需要更新應(yīng)用代碼時(shí),PC的上位機(jī)軟件通過CAN總線向各種終端發(fā)送升級(jí)命令。而終端開機(jī)后自動(dòng)運(yùn)行啟動(dòng)程序,啟動(dòng)程序會(huì)檢測(cè)沒有升級(jí)命令,如果有的話,則接收應(yīng)用程序代碼,直到完成整個(gè)升級(jí)。如果沒有,則運(yùn)行應(yīng)用程序。實(shí)現(xiàn)的流程圖如圖2,圖3所示。
4 結(jié)語
本文設(shè)計(jì)的在線更新機(jī)制結(jié)合了IAP編程技術(shù)和CAN通信技術(shù),在單片機(jī)內(nèi)部采用了靈活的FLASH空間架構(gòu),實(shí)現(xiàn)了CAN總線的在線更新機(jī)制。該設(shè)計(jì)方案已經(jīng)成功應(yīng)用到實(shí)際項(xiàng)目中,實(shí)踐證明,該方法操作簡(jiǎn)便、靈活、可靠,具有一定的實(shí)際價(jià)值。
評(píng)論