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è)備
主站蜘蛛池模板: 国产日本视频91| 亚洲精品777| 日韩高清一区 | 精品人妻无码中字系列| 2021国产乱人伦在线播放| 91麻豆国产精品91久久久| 成年人福利视频| 99re在线视频观看| 高清无码手机在线观看| 99ri精品视频在线观看播放| 日本久久久久久免费网络| 91精品综合| 国产高清不卡视频| 日本不卡视频在线| yy6080理论大片一级久久| 国产麻豆永久视频| 日韩精品欧美国产在线| 国产精品欧美日本韩免费一区二区三区不卡| 欧美一级色视频| 狠狠色噜噜狠狠狠狠色综合久| 婷婷六月综合网| 久久精品国产91久久综合麻豆自制| 在线观看国产小视频| 91亚洲视频下载| 成人看片欧美一区二区| 亚洲欧美另类视频| 国产亚洲精久久久久久无码AV| 亚洲无线国产观看| 91无码人妻精品一区| 人人看人人鲁狠狠高清| 人人91人人澡人人妻人人爽| 国产亚洲现在一区二区中文| 伊人久久大香线蕉成人综合网| 久久国产精品77777| 亚亚洲乱码一二三四区| 久久久久亚洲精品无码网站| a级毛片免费播放| 91破解版在线亚洲| 青青热久麻豆精品视频在线观看| 国产精品国产主播在线观看| 国产91线观看| 片在线无码观看| a在线观看免费| аⅴ资源中文在线天堂| 99热亚洲精品6码| 伊人网址在线| 国产精品观看视频免费完整版| 国产xxxxx免费视频| 中文字幕资源站| 国内精品视频在线| 国产理论精品| 成年午夜精品久久精品| 欧美yw精品日本国产精品| 狠狠色噜噜狠狠狠狠色综合久| 国产精品内射视频| 欧美日韩一区二区在线播放| 国产专区综合另类日韩一区 | 57pao国产成视频免费播放| 综合社区亚洲熟妇p| 99久视频| 亚洲伊人电影| 国产精品久久国产精麻豆99网站| 亚洲日本中文字幕乱码中文| 久久网综合| 成人福利在线视频| 97精品国产高清久久久久蜜芽 | 欧美一道本| 久久不卡国产精品无码| 国产精品刺激对白在线| 亚洲欧美在线综合图区| 在线观看亚洲国产| 国产国语一级毛片在线视频| 九九视频免费在线观看| 日韩精品成人在线| 国产区网址| 国产区人妖精品人妖精品视频| 国产精品熟女亚洲AV麻豆| 热九九精品| 精品国产福利在线| 国产高清在线观看91精品| 69综合网| 亚洲bt欧美bt精品|