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

一種基于串口的ARM程序在線更新方法

2022-03-31 03:50:04卞美琴
雷達與對抗 2022年1期
關鍵詞:嵌入式程序

卞美琴,錢 鷗

(中國船舶集團有限公司第八研究院,南京 211153)

0 引 言

隨著信息技術的發展,借助于處理器靈活的可編程能力和面向任務的自動處理能力,現代工業電子設備和組件模塊通常采用嵌入式處理器設計方式來實現對系統的實時控制或狀態監控。但嵌入式系統或設備為了便于工業控制,通常被配置人跡不易到達或維修難以施展的狹小空間內,給嵌入式處理器的程序功能改進、程序更新帶來了困難。傳統的基于JTAG下載電纜連接處理器的方法變得不再適用,迫切需要研究新的在線程序更新方法,以適應組件免拆裝即能完成程序更新的功能。

本文介紹了一種基于串口的ARM嵌入式處理器程序在線更新方法。該方法基于C語言開發,便于移植,具有較好的操作系統適應能力和應用擴展性,為處理器程序遠程在線更新提供了一種思路。

1 原 理

1.1 目標系統概述

本項目針對某通信設備的數字T/R組件設計,該組件采用FPGA+ARM處理器的主輔通道硬件實現架構,如圖1所示。圖中,基于FPGA的主通道用于對多個收發通道的數據流進行實時流式處理,而基于ARM處理器的輔助通道實現組件狀態的實時監控與健康管理,這樣兩者控制平面與數據平面分開,從而實現數字組件的高效率運行。

數字T/R組件處于設備的天線前端,而天線在工作時部署于室外高處,ARM程序通過JTAG更新較為困難,因此需要考慮其他在線更新方法。目標數字T/R組件中所采用的ARM處理器是TI公司Cortex M4系列芯片[1],TI官網提供了Boot loader的簡單例程,支持串口、網口、USB等接口的程序在線更新方式, 但需要配合其LM Flash Programmer上位機Windows軟件才能實現程序在線更新,而上位機是不開源的Windows軟件,無法跨平臺使用,且當組件與上位機無直接物理連接時無法應用該軟件,因此為了適應目標系統的研制,需要在TI公司現有Boot loader程序的基礎上進一步完善改進,并重新編寫上位機程序,使之滿足組件在各種操作系統下的研制和移植需要。

考慮圖1中的ARM與FPGA之間有一對串口,而FPGA可將該串口中的數據打包到高速光纖中,并轉發到上級分系統中,因此這里設計采用串口來實現對ARM程序的在線更新。

1.2 ARM程序在線更新原理

如圖2所示,ARM程序在線更新原理是將整個ARM內部存儲程序的FLASH空間分為兩部分:Boot loader和Application區,其中Boot loader存于從0開始的地址,Application存于事先約定好的地址APP_BASE_ADDR(該地址以4為邊界,確保能從Boot loader程序跳到該地址執行)。

圖2 ARM地址空間分配

上電時,ARM首先從0地址開始執行Boot loader程序,Boot loader程序檢查APP_BASE_ADDR后的程序是否合法。若不合法,認為Application區沒有可執行的應用程序,則進入Boot loader主循環等待上位機進行程序更新。若APP_BASE_ADDR后的程序是合法程序,則Boot loader繼續檢查Force_update標識(可以是一個GPIO管腳的狀態):若該標識為約定的強制更新狀態,則同樣進入Boot loader主循環等待上位機進行程序更新;若不是強制更新狀態,則Boot loader執行跳轉指令,從App_Base_Addr開始執行應用程序。

因此,在組件正常工作時,組件總是運行于App_Base_Addr后地址空間里,此時若需要更新Application程序,應由上位機通過約定的傳輸協議通知現有Application程序,后者接收到程序更新命令后執行跳轉指令,返回到Boot loader程序的起始地址,執行Boot loader引導,隨后上位機即可按照約定程序更新流程,并與Boot loader交互對Application區域進行程序更新。

2 實 現

基于串口的ARM程序在線更新實現包括兩部分程序:ARM程序和上位機MCU_PROG程序。

2.1 ARM程序

(1) Boot loader程序

如前所述,TI公司提供了Boot loader的簡單實現[2],本項目在此基礎上進行改進。Boot loader的實現流程如圖3所示,其中CheckForceUpdate中首先檢測應用程序地址段App_Base_Addr的程序是否合法(檢測堆棧指針和Reset向量是否正常)。若不合法,則直接返回Yes,開始進行程序更新;若合法,則檢測預定義的GPIO腳電平是否滿足Force Update定義,若滿足,則返回Yes進行程序更新。若應用程序地址段程序合法且GPIO腳不滿足Force Update定義,則跳轉到應用程序地址,開始執行應用程序。

圖3 Boot loader流程圖

Update程序對串口協議進行解析,通過Switch-Case格式分別執行上位機發送的命令,如圖4所示。

圖4 Updater子程序分支結構

Bootloader對上位機發送的PING、DOWNLOAD、SEND_DATA、GET_STATUS、RUN、RESET、WARM_UPDATE等命令進行響應,其中PING用于上位機和BOOT loader程序進行握手,DOWNLOAD、SEND_DATA和GET_STATUS構成程序下載的3個互操作語句:RUN和RESET用于上位機對Boot loader進行程序控制,WARM_UPDATE用于和應用程序的程序更新命令進行兼容,只做應答響應。幾種命令的具體格式及定義見文獻[3],也可以是自定義命令格式,只要和上位機程序保持一致即可。

(2) 應用程序

ARM應用程序在多任務實時操作系統TIRTOS中實現,為了和Boot loader執行命令保持一致,程序中單獨創建一個任務,用于監聽上位機的串口命令,并進行Switch-Case格式響應,如圖5所示。

圖5 ARM應用程序串口監聽任務分支結構

與Boot loader不同之處在于:當ARM應用程序接收到COMMAND_WARM_UPDATE命令時,將跳轉到Boot loader起始地址,開始進行程序更新。

2.2 上位機程序

如前所述,在本項目中ARM的串口用于和FPGA連接,其與上位機的交互最終由FPGA通過光纖實現,這里考慮程序流程驗證,忽略FPGA及光纖連接的部分,考慮直接由ARM串口與上位機串口直接連接,從而可以直接在上位機編寫可移植的C程序代碼,便于最終在不同的主機操作系統實現。

根據前述對boot loader程序中DOWNLOAD、SEND_DATA和GET_STATUS等3個互操作語句的描述,上位機對ARM應用程序的更新步驟如下:

(1) 上位機發送COMMAND_WARM_UPDATE命令,請求程序更新,ARM準備好后返回ACK,并跳轉到Boot loader程序空間;

(2) 上位機發送COMMAND_DOWNLOAD命令,給出ARM應用程序的起始地址和程序字節長度;

(3) ARM返回ACK狀態,表示接收正常;

(4) 上位機發送COMMAND_GET_STATUS命令,獲取當前狀態;

(5) 單片機返回狀態信息;

(6) 上位機發送COMMAND_SEND_DATA命令,開始發送更新的程序數據包;

(7) ARM返回ACK狀態,表示接收正常;

(8) 上位機發送COMMAND_GET_STATUS命令,獲取當前狀態;

(9) 單片機返回狀態信息;

(10) 重復步驟(6)~(9),直到程序下載結束;

(11) 上位機發送COMMAND_RUN命令,讓ARM執行應用程序;

(12) ARM返回ACK,并跳轉到ARM應用程序空間,從而完成程序的在線更新。

根據以上分析,本項目通過Visual Studio 2013開發環境,基于多線程機制,實現了上位機MCU_PROG軟件完成基于串口的ARM程序在線更新,軟件實現了PING、DOWNLOAD、SEND_DATA、RUN、RESET、WARM_UPDATE等數據包的生成,通過專用下載線程與ARM進行交互實現了程序在線更新,其運行界面如圖6所示。

圖6 上位機ARM程序在線更新界面

3 結束語

本文通過分析ARM boot loader流程原理,分別以Visual C++程序和嵌入式C程序完成了上位機應用程序與ARM程序的編寫, 實現了基于串口的ARM程序在線更新。同時,程序基于C語言,移植能力較強,便于數字組件程序的嵌入式移植和系統在線更新應用,相關設計也可以應用到類似的組件和模塊中,具有很好的技術應用擴展性。

猜你喜歡
嵌入式程序
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于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
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 九九九九热精品视频| 亚洲浓毛av| 欧美国产精品不卡在线观看| 亚洲色偷偷偷鲁综合| 无码啪啪精品天堂浪潮av| 国产成人久久777777| 69av在线| 国产视频资源在线观看| 日日噜噜夜夜狠狠视频| 国产香蕉97碰碰视频VA碰碰看| 久久国产精品电影| 亚洲美女久久| 亚洲精品国产综合99久久夜夜嗨| 狠狠色综合久久狠狠色综合| 久久久久青草线综合超碰| 91在线视频福利| 99视频在线免费看| 亚洲一区第一页| 国产女人爽到高潮的免费视频| 中文字幕有乳无码| 9966国产精品视频| 国产日韩欧美在线播放| 日韩激情成人| 国产人免费人成免费视频| 亚洲午夜国产精品无卡| 在线观看视频一区二区| 亚洲欧美精品一中文字幕| 99九九成人免费视频精品| 欧美黑人欧美精品刺激| 91精品啪在线观看国产91| 国产精品视频猛进猛出| 国产亚洲美日韩AV中文字幕无码成人| 丁香婷婷综合激情| 久久激情影院| 又黄又爽视频好爽视频| 精久久久久无码区中文字幕| 精品无码国产一区二区三区AV| 亚洲国产综合自在线另类| 波多野结衣一区二区三区88| 黄色一及毛片| 九九线精品视频在线观看| 色综合成人| 无码AV动漫| 国产成人盗摄精品| 九九热精品在线视频| 欧美日在线观看| 国产熟女一级毛片| 欧美另类一区| 亚洲成人黄色网址| 久久综合伊人77777| 激情无码字幕综合| 日韩精品成人在线| 国产熟睡乱子伦视频网站| 天堂成人av| 伊人AV天堂| 伦精品一区二区三区视频| 久久成人免费| 欧美成一级| 一级香蕉人体视频| 亚洲伦理一区二区| 在线观看亚洲人成网站| 夜精品a一区二区三区| 香蕉在线视频网站| 久久6免费视频| 亚洲精品国产精品乱码不卞 | 91精品啪在线观看国产91| 国产乱子伦视频三区| 在线观看网站国产| 国产在线观看精品| 亚洲色偷偷偷鲁综合| 欧美一区二区三区欧美日韩亚洲| 三上悠亚精品二区在线观看| 久草中文网| 国产成人综合亚洲网址| av在线手机播放| 亚洲第一黄色网址| 美女啪啪无遮挡| 深爱婷婷激情网| 日韩a级毛片| 国产精品永久久久久| 国产精品黄色片| 日韩a级毛片|