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

MSP430系列單片機軟件在線升級設計與實現

2012-08-13 05:57:00劉芳伶
通信技術 2012年1期
關鍵詞:嵌入式單片機程序

唐 文, 劉芳伶

(中國電子科技集團第三十研究所,四川 成都610041)

0 引言

隨著嵌入式軟硬件技術的發展,大量的消費類電子產品開始使用該技術以實現各種復雜的功能。嵌入式終端設備隨著功能的日益完善、終端數量的不斷攀升,而且嵌入式軟件技術的應用使系統實現新功能更加方便,這就需要提供一套有效的設備管理及升級方案,讓終端維護人員可以通過多種方式進行升級維護:如串口、USB口、以太網口[1]、電話線等。

為了實現軟件升級,嵌入式終端設備都會提供引導程序,用于檢測應用程序的開始執行地址。對于遠程維護工作,需要使用終端與系統提供的通信服務,可以將這部分的維護功能放在應用程序中實現。對于本地維護工作,即維護人員能夠接觸到終端設備進行維護,則有兩種途徑,可以在引導程序中和應用程序中實現。

方案以TI公司的MSP4302418單片機為例,通過片內閃存(FLASH)與片外FLASH相結合的方式,設計并驗證了一種基于兩階段引導技術的軟件升級維護方案。

1 兩階段引導技術

兩階段引導是指通過在單片機片內FLASH里固化一個引導程序,通過該程序來選擇引導應用程序。每次上電執行時,單片機從引導程序開始執行,首先判斷應用程序是否有效,若無效,則啟動升級程序,通過該程序實現在外部存儲空間選擇合適的程序包,寫入單片機片內FLASH的應用程序空間。當應用程序正常執行時,若收到升級命令,則由應用程序將升級數據包存儲在片外FLASH中,再跳出執行升級程序。當應用程序不存在或錯誤時能直接進入升級程序,從而保證升級不成功可進行再次升級。

其實現原理是在目標芯片中放置3段代碼:一段為引導程序;一段為應用程序;一段為本地升級程序。引導程序,升級程序為固定代碼,利用FLASH替換程序擦除應用程序并寫入新的代碼。同時需要通過修改鏈接文件來指定各段代碼的地址空間,具體操作方法參考文獻[2],保證三者的地址段不重疊。

引導基本流程如圖1所示,本地升級程序執行時,與外部通信,先接收擦除指令,擦除應用程序空間,再將外部 FLASH的新程序內容燒寫至片內FLASH,跳到新應用程序入口。需要注意的是,在升級時,應該關閉所有中斷,先擦除應用程序入口地址空間,最后寫入應用程序入口地址,可以盡量保證不會進入不完整的程序。應用程序是否有效可以通過檢測應用程序入口地址是否有效來判斷:若入口地址為0xFFFF則無效。正常情況下,應用程序不會主動退出。

例如文獻[3]基于數字信號處理器(DSP,Digital Signal Processor)的在線升級方案中,將FLASH劃分為2個存儲區,用于存放升級程序和應用程序。應用程序在執行過程中能夠響應升級命令。當收到升級命令時,就自動跳轉到升級程序,接收串口發來的應用程序數據并保存到內存(RAM,random access memory)中。升級數據接收完畢后,升級程序再利用TI提供的FLASH操作函數,將RAM中的程序拷貝到FLASH的應用程序地址空間,拷貝完成后,在接收到升級完成命令后跳轉到新的應用程序地址開始執行。

2 FLASH升級技術

在許多嵌入式終端設備中,都將FLASH作為數據和程序文件的存儲部件,提供快速可靠的數據管理方式。在嵌入式操作系統的支持下,嵌入式終端設備利用文件系統訪問 FLASH,可以實現多文件、大容量存儲功能[4]。在文獻[5]中,FLASH上保存了用戶程序和升級程序各兩份,引導程序根據升級向量或引導向量來決定從FLASH的哪個地址加載用戶程序或升級程序,當原始升級或用戶程序校驗失敗時,自動選擇從備份地址開始加載。文獻[6]詳細介紹了 FLASH的存儲操作流程。在拷貝程序數據到FLASH時,由位于內存中的程序執行拷貝操作,提高FLASH寫入的可靠性,并在位于FLASH中的引導程序的中斷向量表區域設置跳轉指令指向自定義的二級中斷向量表,避免對原有中斷向量地址區域進行擦除,提高了程序升級的可靠性與靈活性。文獻[7]提供了2種訪問嵌入式終端設備上的FLASH存儲部件的方式:通過JTAG接口和UART接口訪問,這2種方式相結合,實現了 windows下超級終端升級程序的功能。文獻[8]根據無線通信的特點,在遠程升級數據下載協議中引入校驗,并提供文件斷點續傳功能,極大提高了移動通信網絡環境下遠程程序升級的可靠性與成功率。

在文獻[9]中,將引導程序在外部FLASH中進行雙備份和支持引導程序遠程升級,利用處理器同時支持電可擦除編程只讀存儲器(EEPROM,Electrically Erasable Programmable Read-Only Memory)和FLASH引導的技術,在EEPROM引導階段,啟動引導定時器,等待引導成功。如果定時器超時,則在復雜可編程邏輯器件(CPLD,Complex Programmable Logic Device)邏輯中自動切換到FLASH的引導程序地址重新引導。

3 軟件在線升級解決方案設計

3.1 基本方案介紹

在相關項目中,嵌入式系統由TI MSP430F2418單片機、現場可編程門陣列(FPGA,Field-Programmable Gate Array)、64 M片外FLASH、8M鐵電存儲器(FRAM)、串口等電路組成。片外FLASH支持最小4 K字節的擦除單位,可以保存數據量大、很少修改的數據如接收的程序文件、字庫、聲音數據。FRAM是一款非易失性存儲芯片,可直接讀寫不需要擦除,用于保存數據量少、隨時修改的配置信息如程序文件的升級配置信息。硬件連接示意圖如圖2所示。

根據文獻[10],在MSP430F2418單片機內部地址空間里,分為3個部分,最低端的地址空間為RAM;其余一部分地址空間用于存放引導程序;另一部分空間用于存放應用程序,如圖3所示。其中單片機中斷向量地址空間固定為 0xffc0~0xffff,因此將引導程序空間規劃到該空間附近,應用程序空間被分成2個地址空間。

當終端設備從串口或者遠程通信連接中接收到程序文件下載數據包時,將數據保存在片外 FLASH中,待所有的程序文件數據接收完成并校驗通過后,等待遠程軟件升級維護終端的程序替換指令。如果收到程序替換指令,則修改FRAM存儲的升級配置信息,指示有新的應用程序文件,然后從應用程序空間返回到引導程序空間。引導程序按照上電的執行流程進行升級替換。

3.2 設備意外掉電風險避免措施

在遠程升級過程中,設備意外掉電是導致升級失敗的主要風險,為了避免在升級程序過程中設備掉電的影響,采取了以下3個措施:①在FRAM中規劃一片地址空間用于存放升級進度的信息。當升級的應用程序正常運行時,修改升級進度為已完成狀態。引導程序通過檢測該升級進度的值,進一步判斷應用程序空間的程序是否有效。為了保證FRAM中該部分數據的正確性,采用 16位循環冗余校驗碼(CRC16)校驗。如果校驗失敗,則對該部分數據重新初始化,并且按正常方式引導應用程序;②中斷向量地址空間規劃到引導程序空間,不必在替換程序時擦除中斷向量區。應用程序的中斷服務程序地址到內存指定地址如0x200進行存放,在引導程序的中斷服務程序入口檢測內存該指定地址的值是否有效,有效則直接跳轉到應用程序的中斷服務程序,否則繼續執行引導程序中的中斷服務程序;③在片外FLASH中規劃兩片地址空間如圖3所示,應用程序區 1和應用程序區 2,這兩個區分別是升級區和備份區。從計算機端或遠程通信連接下載得到的升級程序文件,首先存儲在片外FLASH的升級區中。升級程序文件校驗通過后,修改FRAM的升級標志,并主動退出應用程序回到引導程序。待引導程序完成升級文件的替換后,升級區變為備份區,原備份區變為升級區,等待下次程序升級文件的寫入。通過這種存儲、校驗、替換的方式,可以避免傳輸錯誤導致升級失敗的風險。

3.3 改進后的兩階段引導流程

如圖4所示,當設備上電后,單片機從復位中斷服務向量所指向的地址即引導程序的首地址開始執行。在引導程序里,首先關閉設備的看門狗和中斷,初始化硬件,然后從FRAM讀取升級配置信息,做出以下判斷:①如果該升級配置信息指示在片外FLASH有新的應用程序,則擦除片內應用程序地址區間,從片外FLASH讀出升級的應用程序文件數據,寫入到片內的應用程序地址區間進行應用程序的升級替換;②如果指示升級的程序文件運行失敗,需要恢復備份的應用程序,則擦除片內應用程序地址區間,從片外FLASH讀出備份的應用程序文件數據,寫入到片內的應用程序地址區間進行恢復;③如果指示程序正常運行,則判斷應用程序的入口地址是否有效,有效則跳轉到入口執行應用程序,否則執行串口接收程序,等待串口程序下載;④設備維護人員在終端設備上電時刻可以人工干預引導流程,通過某種外部事件比如按鍵事件,暫時中斷引導流程,讓引導程序直接進入串口升級命令等待階段,在一段時間內如果收到串口程序下載命令,則執行串口接收程序,等待串口程序下載。否則超時后,繼續引導。

4 結語

在嵌入式終端設備軟件功能日益復雜的情況下,軟件的升級維護成本不容忽視。本方案在單片機軟件遠程維護上,提供了一種可靠的升級方式,既支持本地串口下載,又支持遠程下載的升級接口,并針對升級過程中設備意外掉電的情況提供了解決方法。文中創新點:單片機片內FLASH與片外FLASH相結合的方式,升級過程中設備意外掉電,上電后可繼續升級的解決方案,同時支持升級與備份恢復功能。

[1] 李俊,王金海.基于 TFTP 協議的 ARM 軟件遠程更新系統[J].工礦自動化,2010(07):22-25.

[2] 陶維青, 王付軍.基于 GPRS 網絡的 MSP430 單片機Flash遠程更新方法[J].電測與儀表,2007(07):33-36.

[3] 梅亮,林輝.TMS320F2812 代碼在線升級的研究與設計[J].電氣傳動,2006,36(07):62-64.

[4] 陳波,石旭剛,李棟.嵌入式設備軟件自動升級技術[J].計算機時代,2008 (04): 54-55.

[5] 石乃軒,馮偉.基于 TMS320VC55x DSP在線升級的設計與實現[J].通信技術,2010,43(07):236-238.

[6] 蔡作英.基于 FLASH的嵌入式系統自動升級的實現[J].福建電腦,2005(06):73-74.

[7] 伍方輝,方安安,劉華珠.嵌入式系統中的 Flash設計與分析[J].微計算機信息(嵌入式與 SOC),2009,25(2-2):25-26.

[8] 陳林,林金朝.一種基于嵌入式系統的遠程程序更新機制[J].微計算機信息(嵌入式與 SOC),2007,23(9-2):4-6.

[9] 鄧娟,彭真明.基于嵌入式系統的遠程在線升級雙 BOOT設計[J].微計算機信息,2009,25(12-2):102-104.

[10] Texas Instruments.MSP430F2418[EB/OL].(2008-10-11)[2011-04-03].http://www.ti.com/product/msp430f2 418.

猜你喜歡
嵌入式單片機程序
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
搭建基于Qt的嵌入式開發平臺
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
Microchip推出兩個全新PIC單片機系列
主站蜘蛛池模板: 国产成人综合久久| 亚洲欧洲免费视频| 亚洲性影院| 2021国产乱人伦在线播放| 免费av一区二区三区在线| 四虎国产在线观看| 免费无码AV片在线观看中文| 青草精品视频| 亚洲无码视频图片| 99久久无色码中文字幕| 试看120秒男女啪啪免费| 国内嫩模私拍精品视频| 午夜欧美理论2019理论| 久久无码av三级| 91探花国产综合在线精品| 久久人人爽人人爽人人片aV东京热 | 精品色综合| 久久久国产精品无码专区| 免费国产好深啊好涨好硬视频| 三区在线视频| 国产99精品久久| 国产永久无码观看在线| 99激情网| 久久成人国产精品免费软件 | 99国产精品国产高清一区二区| 欧美激情第一区| 日韩在线永久免费播放| 91麻豆久久久| 亚洲免费成人网| 看看一级毛片| 国产爽妇精品| 亚洲精品爱草草视频在线| 亚洲V日韩V无码一区二区| 婷婷色丁香综合激情| 欧美日韩国产在线播放| 91久久精品国产| 青青热久免费精品视频6| 特级毛片8级毛片免费观看| 国产91色在线| 美女免费黄网站| 亚洲swag精品自拍一区| 久久精品中文字幕免费| 亚洲精品无码日韩国产不卡| 不卡无码网| 人妻一区二区三区无码精品一区| 久久亚洲黄色视频| 精品無碼一區在線觀看 | 国产精品网址你懂的| 青青久视频| 国产免费一级精品视频| 中文字幕乱码二三区免费| 欧美久久网| 在线免费观看AV| 九色视频线上播放| 高清欧美性猛交XXXX黑人猛交| 亚洲国产欧美目韩成人综合| 激情综合网激情综合| 四虎永久免费地址在线网站| 亚洲视频色图| 国产91精品最新在线播放| 找国产毛片看| 国产乱人伦精品一区二区| 久久情精品国产品免费| 极品国产一区二区三区| 国产91无码福利在线| 亚洲午夜天堂| h视频在线播放| 欧美19综合中文字幕| 免费国产黄线在线观看| 国产精品浪潮Av| 成人亚洲视频| 亚洲中文字幕日产无码2021| 亚洲欧美一区在线| 国产亚洲欧美日韩在线一区| 亚洲侵犯无码网址在线观看| 亚洲男人在线天堂| 另类欧美日韩| 高清精品美女在线播放| 伊人成人在线| 国产视频只有无码精品| 国产69精品久久久久妇女| 99久久精品无码专区免费|