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

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

2021-06-11 03:53:52喬雪原
電子設計工程 2021年11期

喬雪原

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

TMS320C6678 是TI 公司推出的高性能浮點多核數字信號處理器,支持如雷達信號處理、通信信號分析、醫療成像、圖像識別等高性能需求的數字信號處理應用。該多核處理器為信號處理系統的處理能力帶來了很大的提升,但也給軟件開發者帶來了新的問題。由于該處理器引導設備方式的多樣性以及多個內核部署應用軟件的復雜性,該多核數字信號處理器上電工作的過程比單核數字信號處理器要復雜得多[1-6]。

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

實際工程開發過程中,多個內核運行的軟件是由不同軟件設計師開發的,各軟件根據規劃分別運行在處理器不同的內核上,系統功能集成測試通常需要全部軟件同時運行協同工作。采用上述方法進行系統開發聯試時,軟件完成一次部署的時間在二十分鐘左右,嚴重影響了系統開發聯試的效率。文中采用二級加載的方法,研究了MAD 工具集的實現原理,并用Python 語言開發了圖形化轉換工具,簡化了多核應用軟件映像文件的制作,實現了多核應用軟件的快速部署,具有較高的應用價值。

1 總體方案設計

TMS320CC6678 處理器通過13 個外部引腳BOOTMODE[12∶0]選擇和配置啟動引導方式。其中,BOOTMODE[2∶0]用于選擇引導外設的類型;BOOTMODE[9∶3]用于配置相應外設的參數;BOOTMODE[12∶10]根據處理器外部輸入時鐘的頻率進行設置,用于指導鎖相環的參數配置;如果引導啟動模式配置的是IIC 或SPI,BOOTMODE[12∶10]則用于配置啟動外設的參數。

該設計方案采用EMIF16 接口啟動引導模式,程序存儲器選用EMIF16 接口形式的16 位寬NOR Flash,處理器外部輸入時鐘頻率為100 MHz,內核運行頻率為1.2 GHz,禁止wait enable 功能,得到BOO TMODE[12∶0]的配置值為0b0110000010000。

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

圖1 軟件加載與跳轉工作過程

2 二級Bootloader設計

從EMIF16 接口加載模式的工作原理可知,SBL主要的功能是將應用軟件映像從NOR Flash 搬移到DDR 存儲器。由于處理器僅支持EMIF16 接口0 地址開始的128 k 字節代碼的片內執行,為了簡化設計,本方案通過代碼裁剪,只保留必要的外設初始化等功能,將SBL 代碼的規模控制在128 k 字節以內。

2.1 SBL功能設計

SBL 的核心代碼如圖2 所示,主要是將SRC 地址開始的長度為LEN 的應用軟件映像搬移到DEST 地址處的DDR 存儲器,最后跳轉到ENTRY 地址。

圖2 SBL核心代碼

長度參數LEN 需要根據實際應用軟件映像大小進行評估后設置。如果軟件映像的大小不大于該長度,架構相同的信號處理板卡的SBL 可以通用。比如,圖2 所示代碼設置的LEN 大小為0x400000,單位為字節,換算后為4 M 字節。因此,只要最終部署的應用軟件映像大小不超過4 M 字節大小,SBL 只需要制作并燒寫一次。

2.2 SBL格式轉換

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

圖3 SBL格式轉換流程

3 多核應用軟件映像生成方法

多核應用軟件映像文件的生成采用了用于多核應用軟件部署的MAD 工具。MAD 工具主要提供三方面的功能,一是在多個內核上部署多個應用軟件;二是通過共享通用代碼來節省內存;三是動態部署應用軟件。

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

3.1 預鏈接器旁路模式

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

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

1)軟件設計師進行各內核運行應用軟件的開發并生成相應的.out格式文件;

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

3)處理器加電啟動后,SBL 將映像加載到DDR存儲器,并跳轉到映像入口地址,開始運行MAD 加載器;

4)MAD 加載器解析ROMFS 映像,將應用軟件段加載到各自的運行地址,并在每個配置的內核上開始執行相應的應用軟件。

3.2 應用軟件部署配置文件

預鏈接器旁路模式需要開發者設計軟件部署配置文件。預鏈接器旁路模式下,部署配置文件用于指定DDR 存儲器分區的地址和大小信息、要部署的應用軟件位置以及應用軟件在各內核上的分配。

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

1)deviceName:標識目標設備。

2)partitions:標識內存分區及其屬性。該屬性具有以下配置參數:

①name:分區的名稱;

②vaddr:分區的虛擬地址;

③size:內存分區的大小(以字節為單位);

④loadPartition:分區是否為Load 分區,ROMFS映像將下載到該分區。

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

①name:應用軟件的名稱或別名;

②fileName:應用軟件的完整路徑包括文件名;

③allowedCores:可以運行應用軟件的核心列表。

4)appDeployment:指定在初始引導時要在每個核心上加載的應用軟件。這是由core-id 索引的應用軟件名稱的有序列表。如果必須在沒有應用軟件的情況下引導內核,則應指定一個空字符串。

以下為TMS320C6678 處理器在預鏈接器旁路模式下的部署配置文件示例。

4 轉換工具設計

SBL 的制作需要調用不同的中間轉換工具,經過5 個步驟對輸入的文件進行格式轉換。實際工程開發過程中,應用軟件映像需要根據業務代碼的不斷修改重新生成,該過程需要輸入軟件部署配置文件和各內核運行的目標應用軟件,并且,如果需要調整應用軟件在各內核的分配,還需要修改配置文件,這些操作步驟是標準化且重復性很強的操作。為了避免軟件開發人員涉及這些與業務無關的操作,該文針對SBL 和多核應用軟件映像的制作原理,分別設計了圖形化工具。

SBL 制作工具的實現原理非常簡單,直接通過Python 語言調用圖3 所示工作流程中所需的轉換工具,對輸入的SBL 工程生成的.out 格式文件進行轉換。如圖5 是SBL 轉換工具的操作界面,操作過程只需要通過“Open Load .out File”按鈕選擇SBL 工程生成的.out 格式文件,然后點擊“Create bootloader”即可完成SBL 的轉換。

圖5 SBL轉換工具

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

圖6 多核應用軟件映像生成工具

同時,應用軟件選擇區和分配設置區具備歷史記錄功能,打開工具時會默認加載上次的配置,無需重復進行選擇和配置,避免了重復操作。

SBL 和多核應用軟件映像制作工具采用了Python 編程語言和Tkinter 圖形庫進行開發。Python和Tkinter 是跨平臺的編程語言和圖形開發庫[14-18],工具集成了制作過程涉及的全部中間工具和配置文件,實施部署的計算機不需要安裝CCS 開發環境。因此,映象生成工具軟件具有跨平臺、易安裝和易使用的特點。

5 結論

為了提高基于TMS320C6678 多核數字信號處理器應用軟件集成調試開發的效率,該文提出了一種通用的軟件部署方法,通過工程實際應用驗證,得到以下結論:

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

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

3)由于處理器EMIF16 接口程序存儲器片內執行代碼128 k 字節大小的限制,該文對SBL 的功能進行了裁剪,最終SBL 代碼的大小為54 k 字節左右。

主站蜘蛛池模板: 国产亚洲欧美在线人成aaaa| 亚洲国产精品一区二区第一页免 | 免费A级毛片无码无遮挡| 国产日本欧美在线观看| 亚洲av无码片一区二区三区| a在线亚洲男人的天堂试看| 午夜日b视频| 国产不卡国语在线| 热久久这里是精品6免费观看| 免费国产黄线在线观看| 9丨情侣偷在线精品国产| 国产成人禁片在线观看| 毛片在线播放网址| 日韩无码视频专区| 97se亚洲综合在线韩国专区福利| 一级福利视频| 99久久精品国产自免费| 日本免费新一区视频| 天堂av综合网| 色天堂无毒不卡| 久久这里只有精品免费| 成人毛片免费在线观看| 国内精品视频在线| 国产精品微拍| 亚洲欧美成aⅴ人在线观看| 国产AV无码专区亚洲精品网站| 欧美啪啪一区| 97久久超碰极品视觉盛宴| 亚洲天堂网视频| 一本一道波多野结衣av黑人在线| 日韩东京热无码人妻| 日韩成人午夜| 亚洲无线国产观看| 在线观看网站国产| av在线无码浏览| 热久久这里是精品6免费观看| 伊在人亚洲香蕉精品播放| 色亚洲成人| 综合色区亚洲熟妇在线| 欧美亚洲日韩中文| 亚洲成a人片在线观看88| 又爽又黄又无遮挡网站| 免费看一级毛片波多结衣| 久久黄色影院| 色婷婷色丁香| 中文字幕在线观看日本| 欧美亚洲国产精品久久蜜芽| 又污又黄又无遮挡网站| 黄色在线不卡| 四虎成人在线视频| 91久久国产成人免费观看| 久草国产在线观看| 久久久久免费看成人影片 | 国产欧美网站| 国产精品一区在线观看你懂的| 婷婷午夜影院| 国产精品30p| 看av免费毛片手机播放| 中文字幕在线看| 国产日产欧美精品| 久久一色本道亚洲| 欧洲免费精品视频在线| 谁有在线观看日韩亚洲最新视频 | 亚洲视频免费在线看| 久久综合AV免费观看| 欧美精品在线免费| 91人人妻人人做人人爽男同| 99这里只有精品6| 欧美国产精品不卡在线观看| 无码网站免费观看| 国产成人亚洲综合A∨在线播放| 欧美三級片黃色三級片黃色1| 国产精品美人久久久久久AV| 国产亚洲美日韩AV中文字幕无码成人 | 亚洲狼网站狼狼鲁亚洲下载| 就去色综合| 国产精品久久久久鬼色| 日韩毛片在线视频| 精品国产成人av免费| 午夜无码一区二区三区在线app| 日韩av在线直播| a在线观看免费|