999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式設(shè)備軟件更新系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2013-09-12 04:24:44謝曉明
電子測試 2013年20期
關(guān)鍵詞:嵌入式設(shè)備系統(tǒng)

關(guān) 峰, 謝曉明

(北京化工大學(xué)研究生院,北京,100029)

0 引言

目前,通常的嵌入式軟件更新方法是在芯片上手工接跳線并使用專用仿真器,這種方法不僅繁瑣,而且成本高。本文以恩智浦公司的lpc1768為開發(fā)平臺,設(shè)計(jì)并實(shí)現(xiàn)了嵌入式設(shè)備軟件更新系統(tǒng)。該系統(tǒng)避免了傳統(tǒng)嵌入式系統(tǒng)升級需要更換芯片或主板等問題,節(jié)約了人力和資金等資源。通過加入二級bootloader程序,對系統(tǒng)升級與否進(jìn)行引導(dǎo);建立備份數(shù)據(jù)區(qū)解決了系統(tǒng)升級過程中掉電問題;引入的傳輸協(xié)議確保傳輸過程中無誤碼。此系統(tǒng)已在實(shí)際中應(yīng)用,并得到了用戶好評。

1 嵌入式設(shè)備軟件更新系統(tǒng)總體設(shè)計(jì)

lpc1768以Cortex-M3為微控制器,器操作頻率可達(dá)100MHz,外圍組件包含高達(dá)512KB的Flash存儲器、64KB的數(shù)據(jù)存儲器,非常適合用于嵌入式開發(fā)。本文將以此平臺為例,對嵌入式軟件設(shè)備更新系統(tǒng)進(jìn)行闡述,系統(tǒng)整體架構(gòu)如圖1所示。

此系統(tǒng)可以為4個(gè)主要模塊:bootloader模塊、系統(tǒng)更新模塊、正常工作模塊、上位機(jī)模塊。正常工作模塊是嵌入式設(shè)備主體功能部分,在不需要系統(tǒng)更新情況下,本系統(tǒng)不會對其產(chǎn)生影響。本系統(tǒng)在ARM設(shè)備原有的booloader基礎(chǔ)上,實(shí)現(xiàn)一個(gè)簡單的二級bootloader,其通過判斷嵌入式設(shè)備是否與上位機(jī)相連,引導(dǎo)設(shè)備到正常啟動(dòng)狀態(tài)或是更新模式。系統(tǒng)更新模塊需要通過ARM提供的IAP接口,配合通信協(xié)議,完成對正常模式的更新。更新系統(tǒng)的上位機(jī)采用MFC實(shí)現(xiàn),上位機(jī)需實(shí)現(xiàn)通信協(xié)議中上位機(jī)部分的功能,并且能同步顯示更新過程。

2 系統(tǒng)下位機(jī)的軟件實(shí)現(xiàn)

2.1 內(nèi)存劃分

傳統(tǒng)的嵌入式設(shè)備內(nèi)存劃分如圖2(a)所示。這種方式必須借用特定的仿真器,以跳線方式由專業(yè)人員完成程序更新。本文所述機(jī)制對Flash進(jìn)行了重新的設(shè)計(jì),如圖2(b)所示。bootloader存儲區(qū)后面設(shè)計(jì)四個(gè)鏡像文件存儲區(qū)。其中一個(gè)存儲區(qū)用于存放更新模式鏡像文件;另兩個(gè)存儲區(qū)存儲工作文件,兩個(gè)鏡像文件交替使用,其中一個(gè)為另一個(gè)的備份鏡像,在更新系統(tǒng)遇到斷電等特殊情況下,啟動(dòng)備份鏡像;最后一個(gè)是參數(shù)配置區(qū),系統(tǒng)根據(jù)其中參數(shù)決定啟動(dòng)兩個(gè)工作模式中的一個(gè)以及將新鏡像更新到哪個(gè)工作區(qū)。

圖1 嵌入式設(shè)備軟件更新系統(tǒng)總體設(shè)計(jì)

圖2(a) 傳統(tǒng)Flash布局 (b) 嵌入式軟件更新系統(tǒng)Flash布局

2.2 分散加載機(jī)制

可以采用分散加載機(jī)制實(shí)現(xiàn)上文所述的Flash分配方案,分散加載文件對嵌入式系統(tǒng)存取器進(jìn)行分別描述,他直接對應(yīng)目標(biāo)硬件存儲器的起始地址和范圍。同時(shí),它在應(yīng)用程序鏈接時(shí)用于告訴連接器用戶程序代碼和數(shù)據(jù)的運(yùn)行地址和加載地址,在鏈接時(shí)由鏈接器產(chǎn)生相應(yīng)的加載地址和運(yùn)行地址符號,包括代碼和數(shù)據(jù)的加載起始地址、運(yùn)行地址和長度等。

程序在鏈接時(shí)可以根據(jù)分散加載文件中指定的存儲器分配方案,將可執(zhí)行鏡像文件分成指定的多個(gè)分區(qū),并定位于指定的存儲器物理地址。當(dāng)嵌入式系統(tǒng)在重新上電或復(fù)位時(shí),首先對處理器內(nèi)部寄存器執(zhí)行初始化,然后執(zhí)行ROM存儲器的自舉代碼,根據(jù)鏈接時(shí)的存儲器分配方案,將相應(yīng)代碼和數(shù)據(jù)從加載地址復(fù)制到運(yùn)行地址。這樣,定位于RAM存儲器中的代碼和數(shù)據(jù)就在RAM中執(zhí)行,而不再從ROM存儲器中執(zhí)行。

讀書,能提升我們的視野和格局。當(dāng)站在二樓觀景時(shí),我們看到的也許是街角的某處垃圾場,而在二十二樓時(shí),你會將滿城的風(fēng)景,盡收眼底。那些年走過的路,遇到的人,讀過的書,就是我們的格局和視野。這些決定了我們看問題的層次和對事物的判斷。人生閱歷越是豐厚,就越是需要通過讀書去消化內(nèi)心的褶皺和疤痕,和優(yōu)秀的書籍對話,精神自然就往來于天地之間,曲曲折折、隱隱約約、層層疊疊的心境,也漸漸變得柳暗花明,人,就不至于走到山窮水盡的地步。

2.3 更新模塊的實(shí)現(xiàn)

2.3.1 IAP原理

在應(yīng)用編程(IAP)函數(shù)是固化在微處理器內(nèi)部flash上的一些函數(shù)代碼,最終的用戶程序可以直接通過調(diào)用這些函數(shù)來對內(nèi)部Flash進(jìn)行擦除和編程操作。對于lpc1768來說,IAP命令是Thumb代碼,位于地址0x7FFFFFF。IAP功能的具體使用方法下所示:

(1)定義IAP程序入口地址。由于IAP地址的第0位是1,因此當(dāng)程序計(jì)數(shù)器轉(zhuǎn)移到該地址時(shí)會引起Thumb指令集的變化。

#define IAP_ADD & 0x7FFFFF1

(2)定義數(shù)據(jù)結(jié)構(gòu)或指針,將IAP命令表和結(jié)果表傳遞給IAP函數(shù)

unsigned long opt[5];

unsigned long ret [2];

用來傳遞函數(shù)調(diào)用時(shí)的參數(shù),參數(shù)不同決定了不同的功能,比如寫入或擦除。

(3)定義函數(shù)類型指針

typedef void (*IAP)(unsigned * int, unsigned *int);

IAP iap_in;

(4)設(shè)置函數(shù)類型指針

iap_in = (IAP)IAP_ADD;

(5)調(diào)用IAP

iap_entrance(opt, ret);

在應(yīng)用IAP接口實(shí)現(xiàn)工作鏡像更新時(shí),要順次執(zhí)行以下步驟:準(zhǔn)備操作扇區(qū),刪除扇區(qū),準(zhǔn)備操作扇區(qū),寫扇區(qū)。如果寫扇區(qū)前沒有進(jìn)行準(zhǔn)備上述操作,整個(gè)操作將失敗。

2.3.2 更新系統(tǒng)抗誤碼性設(shè)計(jì)

可以通過現(xiàn)有的Internet、RS232或者其他任何通信方式將新的程序鏡像傳輸?shù)角度胧皆O(shè)備中。在進(jìn)行升級的過程中,難免會出現(xiàn)傳輸誤碼的情況。由于程序升級過程中傳輸?shù)臄?shù)據(jù)是要運(yùn)行的代碼,所以很小的傳輸錯(cuò)誤都會造成升級后的系統(tǒng)癱瘓。因此要處理傳輸過程中的誤碼情況,本系統(tǒng)參考XMODEM協(xié)議處理傳輸誤碼情況,實(shí)現(xiàn)一個(gè)抗誤碼的通信協(xié)議。本系統(tǒng)將要傳輸?shù)溺R像分成若干信息包傳輸,信息包包含一個(gè)標(biāo)題開始字符,一個(gè)單字節(jié)包序號,128字節(jié)數(shù)據(jù)字節(jié)和一個(gè)雙字節(jié)的CRC16校驗(yàn)位。信息包格式如表2.1所示

表1 通信協(xié)議包格式

整個(gè)傳輸過程描述如下:傳輸由接收方啟動(dòng),方法是向發(fā)送方發(fā)送開始信號,當(dāng)接受方發(fā)送開始信號到達(dá)發(fā)送方,發(fā)送方認(rèn)為可以發(fā)送第一個(gè)數(shù)據(jù)包,傳輸已經(jīng)啟動(dòng)。發(fā)送方以每次128字節(jié)加上包頭,包序號,末尾加上校驗(yàn)和,打包成數(shù)據(jù)包格式傳送。發(fā)送方發(fā)了第一包后就等待接受方發(fā)送的確認(rèn)字節(jié),如果收到接收方傳來的正確確認(rèn),就認(rèn)為數(shù)據(jù)包被接收方正確接收,發(fā)送方繼續(xù)發(fā)送下一數(shù)據(jù)包;如果發(fā)送方接收到接收方傳來的否定確認(rèn)字節(jié),則表示接收方請求重發(fā)剛才的數(shù)據(jù)包;如果發(fā)送方接收到接收方傳來的停止字節(jié),則表示接收方請求無條件停止傳輸。

2.3.3 更新系統(tǒng)抗掉電性設(shè)計(jì)

對于升級過程中突然掉電情況,可以如圖2(b)所示,通過在外存中規(guī)劃備份鏡像來保證系統(tǒng)再次加電的正常運(yùn)行。在參數(shù)鏡像中設(shè)置兩個(gè)參數(shù),一個(gè)表示啟動(dòng)鏡像號,另一個(gè)表示備份鏡像號。在系統(tǒng)正常啟動(dòng)時(shí),引導(dǎo)區(qū)會讀取參數(shù)鏡像中的啟動(dòng)鏡像號,將程序引導(dǎo)到啟動(dòng)鏡像號標(biāo)志的代碼段。在軟件更新情況下,由引導(dǎo)區(qū)引導(dǎo)程序進(jìn)入更新模式中,讀取備份鏡像號以更新鏡像,如果沒有發(fā)生系統(tǒng)掉電等意外終止,更新完成后系統(tǒng)將交換備份鏡像號與啟動(dòng)鏡像號。因此,下次啟動(dòng)時(shí)將啟動(dòng)新鏡像,而原鏡像則成為備份鏡像。如果更新過程中發(fā)生意外,由于啟動(dòng)鏡像沒有遭到破壞,啟動(dòng)鏡像號沒有改變,因此下次啟動(dòng)時(shí)系統(tǒng)還是會回到未進(jìn)行軟件更新的狀態(tài),達(dá)到正常啟動(dòng)的目的。

3 MFC上位機(jī)軟件實(shí)現(xiàn)

為了配合整個(gè)更新系統(tǒng)實(shí)現(xiàn),需要一個(gè)上位機(jī)軟件將要更新的鏡像傳輸?shù)角度胧皆O(shè)備中。本系統(tǒng)選用MFC來實(shí)現(xiàn)上位機(jī)。本文將重點(diǎn)闡述上位機(jī)軟件與下位機(jī)軟件通信部分的具體實(shí)現(xiàn)。 上位機(jī)首先讀取要更新的鏡像文件,計(jì)算要發(fā)送的數(shù)據(jù)包個(gè)數(shù)。然后根據(jù)表1構(gòu)造數(shù)據(jù)包發(fā)送給下位機(jī)。之后通過嵌入式設(shè)備的返回信號做相應(yīng)的處理,如果發(fā)生異常,上位機(jī)重新發(fā)送剛才的數(shù)據(jù)包,最大嘗試10次。如果上位機(jī)正常傳輸完全部數(shù)據(jù),則發(fā)送結(jié)束字節(jié)通知嵌入式設(shè)備。

4 結(jié)語

本文提出并實(shí)現(xiàn)了嵌入式設(shè)備軟件更新的解決方案。通過設(shè)置備份存儲區(qū),解決了傳輸過程中掉電的問題。通過在傳輸數(shù)據(jù)中加入傳輸協(xié)議,保證傳輸過程的無差錯(cuò)性。由于需要更多的存儲空間,該方案略微增加了硬件成本,但該方案有操作便捷、不需要對硬件改造、可靠性高等優(yōu)點(diǎn),這個(gè)代價(jià)是值得的。

[1]黃一平,農(nóng)麗萍,蘇檢德,羅曉曙.ARM微控制器代碼非法復(fù)制技術(shù)研究與應(yīng)用[J].計(jì)算機(jī)工程與科學(xué).2011(33)

[2]NXP Semiconductors.LPC17xx user manual Rev.2[Z].2010

[3]夏爽.ARM處理器的分散加載及特殊應(yīng)用研究[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2009(4)

[4]洪占勇.基于XMODEM協(xié)議的在版文件下載軟件設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008(5)

猜你喜歡
嵌入式設(shè)備系統(tǒng)
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
搭建基于Qt的嵌入式開發(fā)平臺
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
原來他們都是可穿戴設(shè)備
主站蜘蛛池模板: 色悠久久久| 亚洲欧美自拍中文| 国产美女自慰在线观看| 国产成人亚洲欧美激情| 97亚洲色综久久精品| 亚洲精品成人片在线观看| 国产国产人成免费视频77777 | 国产女人爽到高潮的免费视频| 中文字幕有乳无码| av天堂最新版在线| 亚洲—日韩aV在线| 国产鲁鲁视频在线观看| 一级毛片高清| 亚洲第一区欧美国产综合| AⅤ色综合久久天堂AV色综合| 久久天天躁夜夜躁狠狠| 久久99国产精品成人欧美| 色偷偷综合网| 色色中文字幕| 日韩最新中文字幕| 丁香六月激情综合| 欧美综合中文字幕久久| 一级毛片在线免费看| 久久精品这里只有精99品| 国产极品美女在线播放| 欧美α片免费观看| 不卡色老大久久综合网| 久久免费观看视频| 67194在线午夜亚洲| 免费中文字幕在在线不卡| 欧美性久久久久| 亚洲大尺度在线| 无码AV动漫| 久久福利网| 亚洲永久免费网站| 自偷自拍三级全三级视频 | 国产一区二区福利| 国产午夜精品一区二区三| 四虎综合网| 亚洲中文无码av永久伊人| 色网在线视频| 国产精品福利导航| 亚洲精品成人7777在线观看| 精品免费在线视频| 一级毛片不卡片免费观看| 免费毛片a| 日本在线免费网站| 亚洲有码在线播放| 91欧美在线| www.国产福利| 男人的天堂久久精品激情| 久久99久久无码毛片一区二区| 2021最新国产精品网站| 亚洲V日韩V无码一区二区| 国产成人精彩在线视频50| 内射人妻无码色AV天堂| 国产在线98福利播放视频免费| 最新国产麻豆aⅴ精品无| 国产手机在线小视频免费观看 | 日韩少妇激情一区二区| 玖玖精品在线| 亚洲swag精品自拍一区| 精品撒尿视频一区二区三区| 国产成人综合久久精品下载| 人与鲁专区| 日日噜噜夜夜狠狠视频| 国产精品第页| 国产精品无码影视久久久久久久| 又粗又硬又大又爽免费视频播放| 国产精品99r8在线观看| 人妻丰满熟妇av五码区| 国内精品免费| 久久精品无码一区二区国产区| 国产在线精品美女观看| 无码久看视频| 成人福利在线观看| 精品国产Av电影无码久久久| 日本黄色a视频| 日韩国产高清无码| 色婷婷电影网| 国产成人无码久久久久毛片| 91国内视频在线观看|