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

基于TMS320C6678 的多級加載與動態重構

2022-10-11 07:36:58楊海學李小齊
電子設計工程 2022年19期
關鍵詞:程序

楊海學,張 偉,李小齊,何 斌

(中電科蓉威電子技術有限公司,四川成都 610036)

TMS320C6678 是TI 公司的一款高性能超長指令字架構的數字信號處理技術芯片,由于它具有多核、高頻率、定點浮點運算能力強等特點,作為當前高端信號處理芯片,在圖形圖像、通信、醫療和雷達信號處理領域得到了廣泛應用[1-5]。

多核TMS320C6678 的程序加載可通過外部擴展的存儲器或遠程工控機來進行。目前使用的加載接口有I2C、SPI、PCIE、EMIF、SRIO、SGMII 等,通過設置硬件管腳BOOTMODE[12:0]的值,均可作程序的啟動接口[6]。在實際的星載、雷達、機載等場景中,一般是通過外接存儲器進行啟動,當需要在線重構時,TI提供的眾多啟動方案卻難以滿足。

1 加載模式原理

TMS320C6678 提供了很多加載模式,包括EMIF boot、SPI boot、I2C boot、SRIO boot、ETHERNET boot、PCIE boot等。在進行任何加載之前,都需要執行一級啟動(芯片內部的RBL:ROM Boot loader),一級啟動主要有如下操作:使能重啟隔離功能;使能boot過程中所有可能需要用到的外設的時鐘;配置系統PLL、DDR以及L1D和LIP;讀取BOOTMODE的配置模式[7]。

若使用SRIO boot、ETHERNET boot和PCIE boot,則需要通過遠程工控機將執行代碼通過相對應的接口發送至板上內存運行。若使用SPI boot、I2C boot 啟動,指針會直接指向外掛存儲單元,通過自動搬移將運行代碼搬入內存運行,EMIF boot 啟動也是直接指向外掛存儲單元,但是需要自己將代碼搬移到內存運行。C6678 加載模式分類如圖1 所示。

圖1 C6678加載模式分類

文獻[8]研究了I2C的二級加載啟動方式,它是基于TI公司提供的開發套件IBL(Intermediate Bootloader),但是采用I2C啟動方式需要掛載額外的EEPRAM 做啟動牽引,然后再從NOR FLASH 或者NAND FLASH 加載用戶應用程序,對成本和硬件空間設計均不友好。文獻[9]通過優化程序存儲格式實現優化啟動速度,具有一定的工程價值,但是需要每次對代碼進行格式修改。也有學者使用基于SPI 的啟動方式加入了二級Boot Loader,旨在實現一套多級加載模式,效果較好,但是針對啟動而言,受SPI 接口速度的限制,不能達到快速啟動的要求,動態重構采用串口方式也會降低升級速率[10]。文獻[11]介紹了EMIF 總線的加載方式,通過EMIF外掛存儲單元方式實現快速啟動,沒有進一步進行二級啟動和動態重構的研究。文獻[12-15]主要關注多核代碼的部署,通過TI 提供的工具或自己研發的工具實現將多個應用程序進行合并之后再部署,都沒有談及在線重構的問題。文獻[16]展示了一種可以利用C6678 網口自動升級DSP 內部程序的方法,可是該方法沒有進一步做多級啟動方案,網口因做升級部署而被占用,故使用場景受限。

綜上,在一些特殊場景中,需要采用較快速的多級啟動方式,并且可能隨時需要進行動態重構,若采用仿真器更新,靈活性較差。為此,該文設計了一種基于EMIF接口的多級加載與在線動態重構方案,該方案硬件需求簡易,啟動速度較快,并且在不掉電的情況下能夠在線重構應用程序,具有很高的實際運用價值。

2 多級加載與動態重構設計

為了實現多級加載與動態重構,該文通過EMIF總線外掛NOR FLASH 芯片,將引導外設開關BOO TMODE[12∶0]配置為EMIF 啟動。在一級啟動RBL完成之后,直接跳轉到EMIF 接口進行啟動引導。

將NOR FLASH 的空間分為獨立的三段。其中,第一段為部署段,第二段為動態重構段,第三段為應用段,具體分布如圖2 所示。

圖2 EMIF外掛NOR FLASH分區

三段各有一套代碼,相互獨立。部署段主要用于部署后兩段的程序,重構段主要用于在線重構,應用段放置用戶的使用程序。

部署段程序主要包含三個部分,第一部分為匯編搬移代碼,第二部分為初始化,第三部分為部署執行,部署程序流程圖如圖3 所示。

圖3 部署段程序流程圖

對于從EMIF 啟動,由于工藝水平的限制,部署程序在片外存儲器中的執行速度遠小于片內存儲器中的執行速度。因此,需要執行一段匯編代碼,將部署段的程序搬移到片內高速緩存中,并跳轉至片內高速緩存中執行[1]。

以下是bootloads.s 部分代碼示例:

初始化部分主要涉及到電源管理控制器(Power Sleep Controller,PSC)、鎖相環(Phase Lock Loop,PLL)、串口(UART)和DDR 等系統必備模塊的初始化。

部署執行通過外部的串口輸入值,進行選擇部署,該文設計串口輸入為2 時,則部署重構段代碼,串口輸入其他值或沒有輸入時,則直接部署應用段代碼。

部署執行代碼是基于TI 公司提供的開發工具包里的IBL 進行修改的,原本的IBL 編程主要放置在I2C的EEPRAM 中,用于引導部署存放在外部FLASH 內的程序,并且可以同時部署多核應用程序。該次將其代碼進行修改,放置在部署段中,對后面重構段與應用段進行部署。

重構段:該文通過傳輸速度較快的以太網口進行重構。重構段的程序分三步:首先,完成以太網口和串口的初始化。然后,通過接收外部串口的輸入選擇更新的段,通過TCP 或者UDP 接收外部客戶端的更新數據,最后,將數據寫入相對應的NOR FLASH 區域,向網口發送完成重構結束命令,重構軟件流程圖如圖4 所示。

圖4 重構軟件流程圖

網口初始化主要依托NDK(一種基于SYS/BIOS實時多任務操作系統的網絡開發集成工具),其提供了所有以太網開發需要的硬件驅動、用戶接口(Socket)和各層協議。NDK 主要由Nettool.lib、Stack.lib、OS.lib、Hal.lib、Netcrl.lib 五部分組成。分別對應網絡應用開發工具、協議棧、操作系統接口、底層硬件驅動和網絡控制層。

整個重構程序基于SYS/BIOS 實時多任務操作系統,采用Socket 套接字,創建UDP 服務器端(Server)等待外部連接,外部客戶端(Client)連接服務端發送待更新的數據包,服務端將對接收到的數據進行解析,當包總數和包序號相等時,則表示數據全部接收完畢,將更新的數據拼接之后放入內存中,然后再寫入NOR FLASH。

1)串口輸入為0,擦除NOR FLASH的部署段,接收更新的數據包并燒寫NOR FLASH 中的部署段程序;

2)串口輸入為1,擦除NOR FLASH的重構段,接收更新的數據包并燒寫NOR FLASH 中的重構段程序;

3)串口輸入為2,擦除NOR FLASH 的應用段,接收更新的數據包并燒寫NOR FLASH 中的應用段程序。

燒寫完畢之后,向服務器端發送結束包,表示已完成接收,之后采用硬/軟復位,即寫RSCTRL 寄存器實現復位,FLASH 燒寫流程圖如圖5 所示。

圖5 FLASH燒寫流程圖

綜上可知,在不掉電的情況,重構段的任務核心在于與外部建立網絡連接,通過網絡協議接收待重構的代碼數據,將接收到的完整數據燒寫入NOR FLASH 相應的段,最后采用硬/軟復位重啟,從而實現在線的動態重構。

應用段:應用程序主要是用戶的實際使用代碼,根據實際的情況,無論單核應用程序還是多核應用程序,均可部署。

3 系統搭建與測試

為了驗證該設計的有效性,基于某項目要求搭建相應的硬件平臺,如圖6 所示。該設計采用的是32 MB 的NOR FLASH,外掛在EMIF 接口總線上,依次規劃為部署段8 MB,網絡重構段占用8 MB,應用代碼段占用16 MB 空間。

圖6 硬件平臺結構搭建

調試階段,準備好部署程序、重構程序和應用程序后,通過仿真器將其代碼都燒入NOR FLASH。CCS 環境編譯生成的.out 文件不能直接燒寫NOR FLASH,必須用TI 公司提供的三個工具軟件hex6x.exe、b2ccs.exe 和ccs2bin.exe,將.out文件轉換為.bin 文件,若應用代碼涉及多核時,還需要軟件mcaimage.exe,并結合.cfg 文件(對多核的程序配置文件)將多個.out 文件轉換成.image 文件。最后,將部署程序、重構程序和應用程序分別燒入FLASH 地址0x70000000、0x70800000、0x71000000,分段燒寫完成后關電,設置為EMIF 啟動方式重啟。對該設計進行測試,主要有兩種場景,一種是直接啟動,另一種是進行在線重構。

測試第一種場景,即直接啟動應用代碼。上電啟動之后,串口無輸入或者接收下發1 時,直接對應用代碼進行啟動,該次測試的應用程序是基于TI 提供的庫函數做的接口初始化程序,版本為V1.0,記錄了打印顯示,可以直接完成應用段啟動。

測試第二種場景,即實施在線重構應用代碼,該次重構代碼版本為V2.0。外部復位之后,串口下發2,將啟動重構段程序,輸出打印,如圖7 所示。

圖7 重構程序啟動顯示

重構段程序將初始化串口與以太網口,通過串口選擇需要更新的應用段程序,連通網絡建立服務端,等待客戶端向DSP 發送將要固化的代碼,該次客戶端運行在基于VC++的MFC 界面,程序中需設計兩個同步線程,用來實現數據的實時接收顯示功能。

該次測試選擇動態重構應用段代碼(串口持續輸入2),當接收網絡數據包結束之后,將應用段對應的FLASH 段進行擦除與寫入(地址:0x71000000),完成之后,通過網口回復完成包,最后通過寫寄存器實現硬/軟復位,過程顯示如圖8 所示。復位之后,通過打印可以觀察到,直接啟動的應用代碼由之前的V1.0 升級為V2.0,證實了該重構的有效性。

圖8 代碼重構過程顯示

可見,該設計在不需要更新時,串口無輸入即可,需要更新應用段程序時,串口持續輸入2 即可。完成重構之后,會直接進入硬/軟復位。

4 結論

該文對TMS320C6678 的加載模式進行研究和擴展,設計和實現了一套基于EMIF 接口的多級加載和動態重構方案,通過搭建軟硬件對設計方案進行了驗證,結果表明,該方案能夠實現快速的EMIF 二級加載,并且能夠實現在線重構功能,能極大地簡化后期產品的運行維護和升級,具有一定的參考價值。

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 992Tv视频国产精品| 亚洲 欧美 偷自乱 图片| 啪啪啪亚洲无码| 亚洲天堂区| 婷婷丁香在线观看| 日本91在线| 亚洲一级毛片免费观看| 亚洲国产精品成人久久综合影院| 色精品视频| 特级毛片8级毛片免费观看| 71pao成人国产永久免费视频| 国产成人区在线观看视频| 日韩专区欧美| 欧美爱爱网| 18黑白丝水手服自慰喷水网站| 国产香蕉在线视频| 99久久精品免费看国产电影| 欧美一区二区三区不卡免费| 国产免费一级精品视频| 青青草原国产精品啪啪视频| 国产成人精品2021欧美日韩| 免费大黄网站在线观看| 激情网址在线观看| 久久综合丝袜日本网| 亚洲女同欧美在线| 亚洲欧美另类色图| 国产1区2区在线观看| 国内视频精品| 午夜精品久久久久久久无码软件| 亚洲AV无码久久精品色欲| 国产91麻豆免费观看| 在线观看免费AV网| 全部无卡免费的毛片在线看| 视频二区中文无码| 国产精品专区第1页| 成人精品视频一区二区在线| 日本一区高清| 午夜欧美在线| 国产成人1024精品下载| 香蕉eeww99国产精选播放| 久久大香伊蕉在人线观看热2| 国产特级毛片| 欧美在线观看不卡| av大片在线无码免费| 午夜福利在线观看成人| 久久永久免费人妻精品| 亚洲 欧美 中文 AⅤ在线视频| 看国产毛片| 亚洲欧美h| 中国精品久久| 久久综合结合久久狠狠狠97色| 2021国产精品自产拍在线| 54pao国产成人免费视频| 成人免费网站在线观看| 国产精品不卡片视频免费观看| 欧美性猛交一区二区三区| 97无码免费人妻超级碰碰碰| 久久特级毛片| 欧美三級片黃色三級片黃色1| 国内精品久久人妻无码大片高| 色综合五月婷婷| 久久精品丝袜| 国产一区二区三区免费观看| 尤物视频一区| 99久久亚洲综合精品TS| 午夜免费视频网站| 亚洲精品麻豆| 国产在线啪| 99热这里只有免费国产精品| 女人av社区男人的天堂| 国产制服丝袜无码视频| 日韩在线影院| 欧美伦理一区| 一级在线毛片| 国外欧美一区另类中文字幕| 亚洲综合九九| 国产高清毛片| 日韩精品欧美国产在线| 国产91高清视频| 亚洲男人的天堂在线观看| 综合色婷婷| 国产无吗一区二区三区在线欢|