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 字節左右。

主站蜘蛛池模板: 日本成人一区| 国产免费久久精品99re不卡| 亚洲日韩第九十九页| 99热这里只有精品在线观看| 2020精品极品国产色在线观看 | www中文字幕在线观看| 狠狠色综合久久狠狠色综合| 久久性妇女精品免费| 欧美日韩福利| 亚洲男人天堂网址| 97亚洲色综久久精品| 亚洲91精品视频| 九色91在线视频| 手机精品福利在线观看| 亚洲无码A视频在线| 国语少妇高潮| 免费国产小视频在线观看| 国产99视频精品免费视频7| 欧美人在线一区二区三区| 曰AV在线无码| 国产福利一区二区在线观看| 无码精油按摩潮喷在线播放| 波多野结衣中文字幕久久| 福利片91| 尤物亚洲最大AV无码网站| 久久久久亚洲av成人网人人软件 | 精品国产自在现线看久久| 国产三级国产精品国产普男人| 日本a级免费| 蜜桃臀无码内射一区二区三区 | 美女被操黄色视频网站| 欧美日韩导航| 亚洲成A人V欧美综合| 国产精品亚洲五月天高清| 国产精品久久久久鬼色| 亚洲日韩久久综合中文字幕| 亚洲综合国产一区二区三区| 91精品综合| 日本妇乱子伦视频| 强奷白丝美女在线观看| 欧美日韩一区二区在线免费观看 | 999福利激情视频| 日韩国产亚洲一区二区在线观看| 无码精品国产dvd在线观看9久| 国产精品丝袜在线| 亚洲区第一页| 国产高清国内精品福利| 亚洲va欧美va国产综合下载| 亚洲欧美另类日本| 国产一区二区影院| 九九久久精品免费观看| 久久伊伊香蕉综合精品| 最新国产在线| 国产丝袜91| 欧美精品v日韩精品v国产精品| 亚洲码一区二区三区| 国内精品视频| 免费观看精品视频999| 国产一级毛片在线| 中文字幕第4页| 日本三级欧美三级| 在线不卡免费视频| 免费国产高清视频| 国产成人a在线观看视频| 成人欧美在线观看| 国产精品尤物在线| 一区二区无码在线视频| 久久久精品国产SM调教网站| 久久婷婷六月| 欧美在线免费| 欧美三级视频在线播放| 一本无码在线观看| 亚洲美女视频一区| 亚洲日韩欧美在线观看| 中日韩一区二区三区中文免费视频| 亚洲AV无码久久天堂| 中文字幕人成乱码熟女免费| 久久77777| 亚洲激情区| 亚洲人成网站观看在线观看| 毛片免费观看视频| 欧美亚洲国产精品第一页|