亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于LPC1763的IAP在線升級(jí)方法

        2018-06-17 10:48:10趙善國(guó)鄒啟紅王開明
        科學(xué)與技術(shù) 2018年22期

        趙善國(guó) 鄒啟紅 王開明

        摘要:本文介紹了基于LPC1763的IAP在線升級(jí)方法,從IAP編程原理入手,通過外擴(kuò)128K磁電存儲(chǔ)器(MRAM),將在線升級(jí)分為新程序接收和程序更新執(zhí)行兩個(gè)階段,著重介紹了IAP執(zhí)行過程。通過各階段的防誤碼設(shè)計(jì),提高了IAP升級(jí)過程的可靠性。

        關(guān)鍵詞:IAP;LPC1763;MRAM

        引言

        對(duì)于嵌入式產(chǎn)品,在應(yīng)用編程(IAP)指在不影響產(chǎn)品正常運(yùn)行的情況下實(shí)現(xiàn)應(yīng)用程序的更新。許多ARM芯片都提供該操作接口,相對(duì)于在系統(tǒng)編程(ISP)方式,具有方便靈活且不需要借助專用Boot 裝載程序或工具的特點(diǎn),而且在不影響嵌入式產(chǎn)品正常運(yùn)行的情況下即可完成應(yīng)用程序的動(dòng)態(tài)升級(jí)。

        本文以NXP公司LPC1763(ARM Cortex-M3內(nèi)核)微控制器為平臺(tái),當(dāng)在線升級(jí)時(shí),首先將更新數(shù)據(jù)包暫存在外擴(kuò)的128KB磁電存儲(chǔ)器(MRAM)中,再通過IAP服務(wù)程序?qū)⒏聰?shù)據(jù)包燒寫至片內(nèi)Flash區(qū),實(shí)現(xiàn)在線升級(jí)功能。

        1.IAP編程原理

        Boot裝載程序是ARM 芯片出廠時(shí)固化在內(nèi)部的一段代碼,它控制芯片復(fù)位后的初始化操作。支持IAP功能芯片的Boot裝載程序中包含了IAP代碼。LPC1700系列的Boot裝載程序在出廠時(shí)固化在地址0x1FFF 0000到0x1FFF 1FFF的8KB范圍內(nèi),這8KB稱為Boot Block。IAP代碼入口位于Boot Block中的0x1FFF 1FF0地址。當(dāng)需要進(jìn)行IAP時(shí),Boot Block空間被重映射到芯片最低地址0x00000000處。

        用戶調(diào)用IAP對(duì)片內(nèi)Flash操作的過程:首先是在用戶代碼中初始化IAP入口指針地址,然后通過調(diào)用Boot Block中的IAP代碼對(duì)片內(nèi)Flash進(jìn)行擦除或?qū)懭氩僮?。由于IAP 代碼位于Boot 區(qū)內(nèi),所以IAP 命令不允許對(duì)Boot扇區(qū)執(zhí)行寫/擦除操作。

        復(fù)位后中斷向量被激活,跳轉(zhuǎn)到Boot Block 裝載程序的IAP入口。IAP 程序?yàn)門humb代碼,位于地址0x1FFF 1FF0。

        2.LPC1763 IAP在線升級(jí)方案

        2.1系統(tǒng)結(jié)構(gòu)

        IAP在線升級(jí)系統(tǒng)除LPC1763外,還包含1片MR25H10磁電存儲(chǔ)器(MRAM)和1個(gè)RS232串口。MR25H10是Everspin公司推出的128KB串行MRAM,兼容串行EEPROM和串行Flash的讀/寫時(shí)序。它與LPC1763采用SPI總線方式通信,用以存儲(chǔ)程序更新標(biāo)志和接收到的更新數(shù)據(jù)包。RS232串口用來與Zigbee無線模塊通信,接收上位機(jī)遠(yuǎn)程下發(fā)的更新數(shù)據(jù)包。

        2.2在線升級(jí)流程

        在線升級(jí)過程大體可分為兩個(gè)階段:

        第一階段為新程序接收階段,用戶程序接收到啟動(dòng)更新命令幀,LPC1763通過串口依報(bào)文幀號(hào),順序接收更新數(shù)據(jù)包,并將該更新數(shù)據(jù)同步存儲(chǔ)至外擴(kuò)的128K MRAM區(qū),直至接收到結(jié)束更新命令包。當(dāng)全部數(shù)據(jù)幀正確接收完成后,置程序更新標(biāo)志,復(fù)位系統(tǒng)。

        第二階段為程序更新執(zhí)行階段,系統(tǒng)復(fù)位后系統(tǒng)進(jìn)入IAP服務(wù)程序入口,服務(wù)程序檢測(cè)程序更新標(biāo)志是否有效,若有效則從MRAM取出相應(yīng)更新數(shù)據(jù)包,通過IAP命令按扇區(qū)將其寫入片內(nèi)Flash區(qū)。當(dāng)所有更新數(shù)據(jù)包燒寫完畢,清除程序更新標(biāo)志,系統(tǒng)復(fù)位,程序指針從0x00000000地址執(zhí)行更新后的程序。

        2.3系統(tǒng)存儲(chǔ)區(qū)分配及程序流程

        為確保整個(gè)在線升級(jí)過程可靠,用戶程序?qū)⒔邮盏降母聰?shù)據(jù)包先暫存至外部128K MRAM的45.2KB空間,地址從0xE000開始。

        IAP服務(wù)程序入口處于256K片內(nèi)Flash區(qū),用于當(dāng)程序更新標(biāo)志置位時(shí),跳轉(zhuǎn)至IAP服務(wù)程序。通過編譯器將IAP服務(wù)程序配置于LPC1763 16KB AHB SRAM1區(qū),用于調(diào)用Boot Block中的IAP代碼對(duì)片內(nèi)FLASH 進(jìn)行擦除或?qū)懭氲牟僮鳌?/p>

        IAP執(zhí)行過程從新程序接收完成,系統(tǒng)復(fù)位開始。在執(zhí)行完系統(tǒng)硬件初始化和外擴(kuò)MRAM初始化后,進(jìn)入IAP服務(wù)程序入口。通過判斷程序更新標(biāo)志后,讀取更新數(shù)據(jù)包總包數(shù),跳轉(zhuǎn)至SRAM區(qū)中的IAP服務(wù)程序,見圖1中編號(hào)1箭頭。

        IAP服務(wù)程序初始化IAP程序函數(shù)指針I(yè)AP_Entry,調(diào)用Boot Block中的IAP程序執(zhí)行片內(nèi)Flash擦除和燒寫,見圖1中編號(hào)2箭頭。IAP指令大部分是以扇區(qū)為單位,LPC1763的0~15扇區(qū)為64KB,單個(gè)扇區(qū)規(guī)格為4KB,16~21扇區(qū)為192KB,單個(gè)扇區(qū)規(guī)格為32KB。用戶程序存放在0~11扇區(qū)48KB區(qū)域內(nèi),因此IAP執(zhí)行對(duì)0~11扇區(qū)的擦除指令。IAP指令中將RAM內(nèi)容復(fù)制到Flash指令要求Flash地址邊界為256B,特規(guī)定512B為Flash單次寫入字節(jié)數(shù)。SRAM1中分配512B用于暫存更新數(shù)據(jù)包,IAP服務(wù)程序一次從MRAM中讀取512B數(shù)據(jù)至該RAM區(qū),見圖1中編號(hào)3箭頭。IAP服務(wù)程序逐次將RAM中512B更新數(shù)據(jù)寫入至Flash 0~11扇區(qū),見圖1中編號(hào)4箭頭。待全部更新數(shù)據(jù)寫入Flash后,清除程序更新標(biāo)志,系統(tǒng)復(fù)位,程序指針從0x00000000地址開始執(zhí)行新程序。

        2.4防誤碼設(shè)計(jì)

        由于數(shù)據(jù)傳輸錯(cuò)誤將帶來系統(tǒng)癱瘓的風(fēng)險(xiǎn),因此設(shè)計(jì)了如下升級(jí)防誤碼手段:

        在新程序接收階段,發(fā)送方在發(fā)送單包的最后2位增加CRC16校驗(yàn)位,LPC1763接收到該包數(shù)據(jù)后對(duì)除最后2位外的數(shù)據(jù)進(jìn)行CRC16校驗(yàn),并與接收包中的校驗(yàn)位進(jìn)行比對(duì),如一致則返回正確應(yīng)答,將該包含校驗(yàn)位存儲(chǔ)至MRAM中,從而保證通信數(shù)據(jù)的可靠性。

        在程序更新執(zhí)行階段,LPC1763將更新包從MRAM讀取到SRAM過程中,同樣對(duì)數(shù)據(jù)進(jìn)行CRC16校驗(yàn),也與MRAM中存儲(chǔ)的校驗(yàn)位進(jìn)行比對(duì),確保讀取數(shù)據(jù)有效。

        3.結(jié)論

        本文在基于LPC1763微控制器的平臺(tái)上,提出了一種通過外擴(kuò)MRAM方式實(shí)現(xiàn)IAP在線升級(jí)的解決方法,新程序接收及燒寫階段經(jīng)過防誤碼處理,確保了升級(jí)的可靠性,避免了由于程序失效,導(dǎo)致的系統(tǒng)無崩潰的風(fēng)險(xiǎn)。該方法在不影響產(chǎn)品正常運(yùn)行情況下,實(shí)現(xiàn)了穩(wěn)定、可靠的在線升級(jí)方法。

        參考文獻(xiàn)

        [1]深入淺出Cortex-M3——LPC1700,周立功等,2010,廣州致遠(yuǎn)電子有限公司

        [2]基于ARM處理器的IAP設(shè)計(jì)及應(yīng)用,許文杰,丁志剛,張泉,2009,3,計(jì)算機(jī)應(yīng)用與軟件

        (作者單位:貴州航天凱山石油儀器有限公司)

        人妻少妇精品视中文字幕免费| 无码午夜剧场| 国产一区二区在线观看我不卡 | 久久中文字幕亚洲综合| 午夜亚洲av日韩av无码大全| 欧美性xxxx狂欢老少配| 91精品欧美综合在线观看| 中文字幕在线乱码日本| 国产av无码国产av毛片| 色妞色综合久久夜夜| 亚洲熟妇av日韩熟妇av| 国产在线av一区二区| 日日天干夜夜狠狠爱| 国模精品无码一区二区二区| 日韩女优一区二区视频| 亚洲毛片在线观看免费| 亚洲成av人片在线观看www| 99热在线精品播放| 男女午夜视频一区二区三区| 亚洲夫妻性生活免费视频| 看全色黄大色大片免费久久| 国产精品综合久久久久久久免费 | 亚洲国产夜色在线观看| 少妇激情一区二区三区| 人人妻人人澡人人爽人人精品浪潮| 国产美女久久精品香蕉69| 人妻被猛烈进入中文字幕| 黑丝美腿国产在线观看| 色综合av综合无码综合网站| 久久AV老司机精品网站导航| 日本熟女人妻一区二区三区| 国产成人久久精品一区二区三区| 国产综合无码一区二区色蜜蜜| 日韩久久久黄色一级av| 大香蕉青青草视频在线| 久久国产加勒比精品无码| 亚洲精品456| 在线观看免费的黄片小视频 | 97高清国语自产拍| 国产午夜精品福利久久| 国产亚洲中文字幕久久网|