• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      TMS320C6678 多核處理器軟件部署方法

      2021-06-11 03:53:52喬雪原
      電子設(shè)計(jì)工程 2021年11期
      關(guān)鍵詞:格式文件配置文件存儲(chǔ)器

      喬雪原

      (中國(guó)西南電子技術(shù)研究所,四川成都 610036)

      TMS320C6678 是TI 公司推出的高性能浮點(diǎn)多核數(shù)字信號(hào)處理器,支持如雷達(dá)信號(hào)處理、通信信號(hào)分析、醫(yī)療成像、圖像識(shí)別等高性能需求的數(shù)字信號(hào)處理應(yīng)用。該多核處理器為信號(hào)處理系統(tǒng)的處理能力帶來(lái)了很大的提升,但也給軟件開(kāi)發(fā)者帶來(lái)了新的問(wèn)題。由于該處理器引導(dǎo)設(shè)備方式的多樣性以及多個(gè)內(nèi)核部署應(yīng)用軟件的復(fù)雜性,該多核數(shù)字信號(hào)處理器上電工作的過(guò)程比單核數(shù)字信號(hào)處理器要復(fù)雜得多[1-6]。

      該處理器已推出多年,科研人員基于該處理器的應(yīng)用進(jìn)行了大量研究,由于硬件設(shè)計(jì)和加載方案的不同,導(dǎo)致了多種設(shè)備引導(dǎo)和軟件部署方案。文獻(xiàn)[7-11]從多方面介紹了處理器多核應(yīng)用軟件數(shù)據(jù)塊的組織方式,多核應(yīng)用軟件格式的轉(zhuǎn)換原理,基于EMIF16 接口、IIC 接口以及以太網(wǎng)接口等外設(shè)的軟件加載方法等;文獻(xiàn)[12]引入三級(jí)引導(dǎo)過(guò)程的方法,該方法需要根據(jù)應(yīng)用軟件所在的空間及長(zhǎng)度進(jìn)行調(diào)整,并且每個(gè)內(nèi)核運(yùn)行的應(yīng)用軟件部署在存儲(chǔ)器的不同地址,需要為每個(gè)內(nèi)核運(yùn)行的軟件分別燒寫(xiě)到不同的地址空間;文獻(xiàn)[13]介紹了一種Bootloader 的實(shí)現(xiàn)方法,闡述了單核應(yīng)用軟件和多核應(yīng)用軟件的啟動(dòng)過(guò)程和多核應(yīng)用軟件映像文件格式,但沒(méi)有詳細(xì)說(shuō)明軟件映像文件的生成方法。

      實(shí)際工程開(kāi)發(fā)過(guò)程中,多個(gè)內(nèi)核運(yùn)行的軟件是由不同軟件設(shè)計(jì)師開(kāi)發(fā)的,各軟件根據(jù)規(guī)劃分別運(yùn)行在處理器不同的內(nèi)核上,系統(tǒng)功能集成測(cè)試通常需要全部軟件同時(shí)運(yùn)行協(xié)同工作。采用上述方法進(jìn)行系統(tǒng)開(kāi)發(fā)聯(lián)試時(shí),軟件完成一次部署的時(shí)間在二十分鐘左右,嚴(yán)重影響了系統(tǒng)開(kāi)發(fā)聯(lián)試的效率。文中采用二級(jí)加載的方法,研究了MAD 工具集的實(shí)現(xiàn)原理,并用Python 語(yǔ)言開(kāi)發(fā)了圖形化轉(zhuǎn)換工具,簡(jiǎn)化了多核應(yīng)用軟件映像文件的制作,實(shí)現(xiàn)了多核應(yīng)用軟件的快速部署,具有較高的應(yīng)用價(jià)值。

      1 總體方案設(shè)計(jì)

      TMS320CC6678 處理器通過(guò)13 個(gè)外部引腳BOOTMODE[12∶0]選擇和配置啟動(dòng)引導(dǎo)方式。其中,BOOTMODE[2∶0]用于選擇引導(dǎo)外設(shè)的類(lèi)型;BOOTMODE[9∶3]用于配置相應(yīng)外設(shè)的參數(shù);BOOTMODE[12∶10]根據(jù)處理器外部輸入時(shí)鐘的頻率進(jìn)行設(shè)置,用于指導(dǎo)鎖相環(huán)的參數(shù)配置;如果引導(dǎo)啟動(dòng)模式配置的是IIC 或SPI,BOOTMODE[12∶10]則用于配置啟動(dòng)外設(shè)的參數(shù)。

      該設(shè)計(jì)方案采用EMIF16 接口啟動(dòng)引導(dǎo)模式,程序存儲(chǔ)器選用EMIF16 接口形式的16 位寬NOR Flash,處理器外部輸入時(shí)鐘頻率為100 MHz,內(nèi)核運(yùn)行頻率為1.2 GHz,禁止wait enable 功能,得到BOO TMODE[12∶0]的配置值為0b0110000010000。

      軟件自動(dòng)加載的目的地是DSP 外部的DDR 存儲(chǔ)器,工作過(guò)程如圖1 所示。處理器為了簡(jiǎn)化啟動(dòng)流程,內(nèi)部集成了一塊128 k字節(jié)的ROM存儲(chǔ)器,存儲(chǔ)器內(nèi)部存儲(chǔ)了RBL(ROM Bootloader,一級(jí)Bootloader)指令代碼。在硬件上電或復(fù)位后,處理器首先執(zhí)行RBL,RBL 根據(jù)啟動(dòng)模式的選擇完成EMIF16 接口的初始化,最后跳轉(zhuǎn)到NOR Flash 的0 偏移地址(NOR FLASH 存儲(chǔ)器的基地址是0x700000000)。該地址開(kāi)始的128 k 字節(jié)地址空間存放了用于搬移應(yīng)用軟件映像的SBL(Second Bootloader,二級(jí)Bootloader)指令代碼,SBL 負(fù)責(zé)將應(yīng)用軟件映像搬移到外部DDR 存儲(chǔ)器中(DDR 存儲(chǔ)器基地址為0x9e000000)。完成軟件映像搬移后直接跳轉(zhuǎn)至地址0x9e001040 繼續(xù)執(zhí)行代碼,其中,0x9e001040 地址是由MAD 工具默認(rèn)配置的,該地址是MAD 加載器運(yùn)行的入口地址。

      圖1 軟件加載與跳轉(zhuǎn)工作過(guò)程

      2 二級(jí)Bootloader設(shè)計(jì)

      從EMIF16 接口加載模式的工作原理可知,SBL主要的功能是將應(yīng)用軟件映像從NOR Flash 搬移到DDR 存儲(chǔ)器。由于處理器僅支持EMIF16 接口0 地址開(kāi)始的128 k 字節(jié)代碼的片內(nèi)執(zhí)行,為了簡(jiǎn)化設(shè)計(jì),本方案通過(guò)代碼裁剪,只保留必要的外設(shè)初始化等功能,將SBL 代碼的規(guī)??刂圃?28 k 字節(jié)以內(nèi)。

      2.1 SBL功能設(shè)計(jì)

      SBL 的核心代碼如圖2 所示,主要是將SRC 地址開(kāi)始的長(zhǎng)度為L(zhǎng)EN 的應(yīng)用軟件映像搬移到DEST 地址處的DDR 存儲(chǔ)器,最后跳轉(zhuǎn)到ENTRY 地址。

      圖2 SBL核心代碼

      長(zhǎng)度參數(shù)LEN 需要根據(jù)實(shí)際應(yīng)用軟件映像大小進(jìn)行評(píng)估后設(shè)置。如果軟件映像的大小不大于該長(zhǎng)度,架構(gòu)相同的信號(hào)處理板卡的SBL 可以通用。比如,圖2 所示代碼設(shè)置的LEN 大小為0x400000,單位為字節(jié),換算后為4 M 字節(jié)。因此,只要最終部署的應(yīng)用軟件映像大小不超過(guò)4 M 字節(jié)大小,SBL 只需要制作并燒寫(xiě)一次。

      2.2 SBL格式轉(zhuǎn)換

      SBL 工程生成的.out 格式文件需要轉(zhuǎn)換為RBL可以識(shí)別的代碼格式。格式轉(zhuǎn)換流程如圖3 所示[11],rmd 文件里面包含了Hex.6x 工具需要執(zhí)行的指令,首先用Hex.6x 把.out 格式文件中的有效數(shù)據(jù)按照操作指令剝離出來(lái)得到.btbl 格式文件,該文件依次經(jīng)過(guò)b2i2c 和b2ccs 工具處理后得到.ccs 格式文件。得到的.ccs 格式文件只包含軟件各段的內(nèi)容而不包含任何啟動(dòng)參數(shù),因此,要為其配置參數(shù)頭。同時(shí),由于RBL 只能識(shí)別大端模式,.ccs 格式文件還需要進(jìn)行大小端的轉(zhuǎn)換,通過(guò)byteswapccs 工具把.ccs 格式文件轉(zhuǎn)化為.bin 格式文件。最后,將生成的.bin 格式文件燒寫(xiě)到NOR Flash 的0 偏移地址開(kāi)始的存儲(chǔ)空間即可。

      圖3 SBL格式轉(zhuǎn)換流程

      3 多核應(yīng)用軟件映像生成方法

      多核應(yīng)用軟件映像文件的生成采用了用于多核應(yīng)用軟件部署的MAD 工具。MAD 工具主要提供三方面的功能,一是在多個(gè)內(nèi)核上部署多個(gè)應(yīng)用軟件;二是通過(guò)共享通用代碼來(lái)節(jié)省內(nèi)存;三是動(dòng)態(tài)部署應(yīng)用軟件。

      MAD 提供了預(yù)鏈接器旁路模式和預(yù)鏈接器模式兩種使用方式。預(yù)連接器旁路模式下,工具不會(huì)為應(yīng)用軟件段分配地址,并且不會(huì)調(diào)用預(yù)鏈接器。此模式適用于應(yīng)用軟件開(kāi)發(fā)人員已經(jīng)為應(yīng)用軟件分配了多核地址并且僅需要MAD 工具在指定的內(nèi)核上加載和運(yùn)行應(yīng)用軟件。預(yù)鏈接器模式下,MAD 工具為應(yīng)用軟件段分配地址并調(diào)用預(yù)鏈接器,此模式適用于應(yīng)用軟件開(kāi)發(fā)人員希望工具負(fù)責(zé)地址分配以允許在多核應(yīng)用軟件之間共享通用代碼。由于預(yù)鏈接器模式處理比較復(fù)雜,且實(shí)際工程多核應(yīng)用軟件映像占用的內(nèi)存在k 字節(jié)量級(jí),可以忽略。因此,方案選擇預(yù)鏈接器旁路模式。

      3.1 預(yù)鏈接器旁路模式

      預(yù)鏈接器旁路模式工作流程如圖4 所示,主要包括以下4 個(gè)步驟。

      圖4 預(yù)鏈接器旁路模式下的MAD工作流程

      1)軟件設(shè)計(jì)師進(jìn)行各內(nèi)核運(yùn)行應(yīng)用軟件的開(kāi)發(fā)并生成相應(yīng)的.out格式文件;

      2)為MAP 工具創(chuàng)建應(yīng)用軟件部署配置文件,配置文件主要用于描述每個(gè)內(nèi)核上加載運(yùn)行的應(yīng)用軟件。該配置文件作為運(yùn)行MAP 工具的輸入,生成包含ROMFS 格式的加載映像,該映像包含每個(gè)應(yīng)用軟件的激活記錄。生成的映像文件即可直接燒寫(xiě)到程序存儲(chǔ)器約定的地址(0x70020000);

      3)處理器加電啟動(dòng)后,SBL 將映像加載到DDR存儲(chǔ)器,并跳轉(zhuǎn)到映像入口地址,開(kāi)始運(yùn)行MAD 加載器;

      4)MAD 加載器解析ROMFS 映像,將應(yīng)用軟件段加載到各自的運(yùn)行地址,并在每個(gè)配置的內(nèi)核上開(kāi)始執(zhí)行相應(yīng)的應(yīng)用軟件。

      3.2 應(yīng)用軟件部署配置文件

      預(yù)鏈接器旁路模式需要開(kāi)發(fā)者設(shè)計(jì)軟件部署配置文件。預(yù)鏈接器旁路模式下,部署配置文件用于指定DDR 存儲(chǔ)器分區(qū)的地址和大小信息、要部署的應(yīng)用軟件位置以及應(yīng)用軟件在各內(nèi)核上的分配。

      部署配置文件是JSON 格式的文本文件,配置文件包括以下部分:

      1)deviceName:標(biāo)識(shí)目標(biāo)設(shè)備。

      2)partitions:標(biāo)識(shí)內(nèi)存分區(qū)及其屬性。該屬性具有以下配置參數(shù):

      ①name:分區(qū)的名稱;

      ②vaddr:分區(qū)的虛擬地址;

      ③size:內(nèi)存分區(qū)的大小(以字節(jié)為單位);

      ④loadPartition:分區(qū)是否為L(zhǎng)oad 分區(qū),ROMFS映像將下載到該分區(qū)。

      3)applications:應(yīng)用軟件的位置和部署配置。該屬性具有以下配置參數(shù):

      ①name:應(yīng)用軟件的名稱或別名;

      ②fileName:應(yīng)用軟件的完整路徑包括文件名;

      ③allowedCores:可以運(yùn)行應(yīng)用軟件的核心列表。

      4)appDeployment:指定在初始引導(dǎo)時(shí)要在每個(gè)核心上加載的應(yīng)用軟件。這是由core-id 索引的應(yīng)用軟件名稱的有序列表。如果必須在沒(méi)有應(yīng)用軟件的情況下引導(dǎo)內(nèi)核,則應(yīng)指定一個(gè)空字符串。

      以下為T(mén)MS320C6678 處理器在預(yù)鏈接器旁路模式下的部署配置文件示例。

      4 轉(zhuǎn)換工具設(shè)計(jì)

      SBL 的制作需要調(diào)用不同的中間轉(zhuǎn)換工具,經(jīng)過(guò)5 個(gè)步驟對(duì)輸入的文件進(jìn)行格式轉(zhuǎn)換。實(shí)際工程開(kāi)發(fā)過(guò)程中,應(yīng)用軟件映像需要根據(jù)業(yè)務(wù)代碼的不斷修改重新生成,該過(guò)程需要輸入軟件部署配置文件和各內(nèi)核運(yùn)行的目標(biāo)應(yīng)用軟件,并且,如果需要調(diào)整應(yīng)用軟件在各內(nèi)核的分配,還需要修改配置文件,這些操作步驟是標(biāo)準(zhǔn)化且重復(fù)性很強(qiáng)的操作。為了避免軟件開(kāi)發(fā)人員涉及這些與業(yè)務(wù)無(wú)關(guān)的操作,該文針對(duì)SBL 和多核應(yīng)用軟件映像的制作原理,分別設(shè)計(jì)了圖形化工具。

      SBL 制作工具的實(shí)現(xiàn)原理非常簡(jiǎn)單,直接通過(guò)Python 語(yǔ)言調(diào)用圖3 所示工作流程中所需的轉(zhuǎn)換工具,對(duì)輸入的SBL 工程生成的.out 格式文件進(jìn)行轉(zhuǎn)換。如圖5 是SBL 轉(zhuǎn)換工具的操作界面,操作過(guò)程只需要通過(guò)“Open Load .out File”按鈕選擇SBL 工程生成的.out 格式文件,然后點(diǎn)擊“Create bootloader”即可完成SBL 的轉(zhuǎn)換。

      圖5 SBL轉(zhuǎn)換工具

      如圖6 是多核應(yīng)用軟件映像生成工具的操作界面。整個(gè)工作區(qū)分為3 個(gè)功能區(qū):應(yīng)用軟件選擇區(qū)、應(yīng)用軟件分配設(shè)置區(qū)和信息顯示區(qū)。應(yīng)用軟件選擇區(qū)用于選擇總共有多少個(gè)不同的應(yīng)用軟件參與部署,工具最多支持8 個(gè)不同的應(yīng)用軟件的部署;應(yīng)用軟件分配設(shè)置區(qū)用于指定各應(yīng)用軟件在處理器8 個(gè)內(nèi)核的分布情況,支持同一個(gè)應(yīng)用軟件部署在多個(gè)內(nèi)核上運(yùn)行;信息顯示區(qū)用于顯示軟件運(yùn)行的狀態(tài)信息。

      圖6 多核應(yīng)用軟件映像生成工具

      同時(shí),應(yīng)用軟件選擇區(qū)和分配設(shè)置區(qū)具備歷史記錄功能,打開(kāi)工具時(shí)會(huì)默認(rèn)加載上次的配置,無(wú)需重復(fù)進(jìn)行選擇和配置,避免了重復(fù)操作。

      SBL 和多核應(yīng)用軟件映像制作工具采用了Python 編程語(yǔ)言和Tkinter 圖形庫(kù)進(jìn)行開(kāi)發(fā)。Python和Tkinter 是跨平臺(tái)的編程語(yǔ)言和圖形開(kāi)發(fā)庫(kù)[14-18],工具集成了制作過(guò)程涉及的全部中間工具和配置文件,實(shí)施部署的計(jì)算機(jī)不需要安裝CCS 開(kāi)發(fā)環(huán)境。因此,映象生成工具軟件具有跨平臺(tái)、易安裝和易使用的特點(diǎn)。

      5 結(jié)論

      為了提高基于TMS320C6678 多核數(shù)字信號(hào)處理器應(yīng)用軟件集成調(diào)試開(kāi)發(fā)的效率,該文提出了一種通用的軟件部署方法,通過(guò)工程實(shí)際應(yīng)用驗(yàn)證,得到以下結(jié)論:

      1)該方法滿足功能使用要求,并且具有通用性,相同架構(gòu)信號(hào)處理板卡的SBL 可以通用;

      2)多核應(yīng)用軟件映像生成工具具備歷史記錄功能,各內(nèi)核應(yīng)用軟件位置和名稱不變的情況下,軟件映像的生成制作時(shí)間為20 s 左右;

      3)由于處理器EMIF16 接口程序存儲(chǔ)器片內(nèi)執(zhí)行代碼128 k 字節(jié)大小的限制,該文對(duì)SBL 的功能進(jìn)行了裁剪,最終SBL 代碼的大小為54 k 字節(jié)左右。

      猜你喜歡
      格式文件配置文件存儲(chǔ)器
      提示用戶配置文件錯(cuò)誤 這樣解決
      靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
      搭建簡(jiǎn)單的Kubernetes集群
      互不干涉混用Chromium Edge
      使用“格式文件”將徠卡儀器數(shù)據(jù)導(dǎo)出成cass 格式的方法
      忘記ESXi主機(jī)root密碼怎么辦
      編寫(xiě)徠卡TS02型全站儀格式文件的方法探索
      回歸基礎(chǔ) 到底什么是RAW格式文件?
      基于Office Open XML格式文件的電子取證方法研究
      存儲(chǔ)器——安格爾(墨西哥)▲
      蓝山县| 乌鲁木齐县| 三都| 罗城| 体育| 双鸭山市| 洪湖市| 呈贡县| 清水河县| 内乡县| 铜陵市| 阿拉善盟| 安仁县| 汉寿县| 正定县| 会宁县| 黎川县| 滦南县| 平乐县| 怀来县| 韶关市| 沂源县| 汉沽区| 厦门市| 凤山县| 张家口市| 汝南县| 封开县| 庐江县| 高要市| 丹棱县| 沈丘县| 留坝县| 东乌珠穆沁旗| 富平县| 南平市| 寿阳县| 庄浪县| 漳浦县| 历史| 家居|