• 
    

    
    

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

      基于TMS320C6678的多核Bootloader設(shè)計(jì)與實(shí)現(xiàn)

      2017-09-15 11:43:10薛志遠(yuǎn)王春雷
      航空兵器 2017年4期
      關(guān)鍵詞:用戶程序鏡像文件志遠(yuǎn)

      薛志遠(yuǎn), 王春雷

      (中國(guó)空空導(dǎo)彈研究院, 河南 洛陽(yáng) 471009)

      基于TMS320C6678的多核Bootloader設(shè)計(jì)與實(shí)現(xiàn)

      薛志遠(yuǎn), 王春雷

      (中國(guó)空空導(dǎo)彈研究院, 河南 洛陽(yáng) 471009)

      針對(duì)TMS320C6678多核處理器的特性, 提出一種基于多核Bootloader的設(shè)計(jì)方法。 闡述了TMS320C6678 Bootloader的原理和工作機(jī)制, 并給出一種多核用戶程序鏡像文件的生成方法, 實(shí)現(xiàn)了TMS320C6678的多核程序加載以及上電自啟動(dòng)。 經(jīng)驗(yàn)證, TMS320C6678在該設(shè)計(jì)方法下能夠穩(wěn)定運(yùn)行。

      彈載計(jì)算機(jī); TMS320C6678; Bootloader; 多核程序加載; EMIF16

      0 引 言

      導(dǎo)彈武器具有打擊精度高、 毀傷威力大等特點(diǎn), 是決定未來(lái)戰(zhàn)爭(zhēng)勝負(fù)的重要因素之一。 隨著武器裝備軟硬件集成設(shè)計(jì)技術(shù)的快速發(fā)展, 小型化、 低成本、 低功耗正成為彈上電子系統(tǒng)的發(fā)展趨勢(shì)。

      TMS320C6678是TI公司推出的一款八核嵌入式處理器, 強(qiáng)大的性能以及優(yōu)秀的能耗比使其在導(dǎo)彈武器的集成化、 小型化等方面扮演了重要的角色。

      Bootloader是TMS320C6678處理器上電后運(yùn)行的第一段代碼, 其是否正確及健壯對(duì)于處理器能否正常運(yùn)行至關(guān)重要。 本文設(shè)計(jì)的Bootloader完成了TMS320C6678八核處理器的基本初始化配置, 保證了處理器上電后的穩(wěn)定運(yùn)行。

      1 Bootloader概述

      1.1 Bootloader基本原理

      TMS320C6678的Bootloader分為兩級(jí)。 第一級(jí)為Rom Bootloader(RBL), 是處理器上電復(fù)位后首先運(yùn)行的一段代碼, 用來(lái)完成處理器上電后的系統(tǒng)初始化配置以及根據(jù)BOOTMODE引腳狀態(tài)確定以何種方式運(yùn)行二級(jí)Bootloader。 RBL的代碼在處理器出廠時(shí)已經(jīng)固化在處理器中以0x20B00000為起始的一段地址空間中, 用戶不可更改, 本文不再贅述。

      二級(jí)Bootloader為一般意義的Bootloader。 根據(jù)用戶需求, 二級(jí)Bootloader可以完成如下功能:

      (1) 系統(tǒng)初始配置, 如處理器工作時(shí)鐘PLL的配置等;

      (2) 處理器外設(shè)接口的初始化, 如EMIF16接口、 DDR3存儲(chǔ)器等;

      (3) 應(yīng)用程序從片外向片內(nèi)的加載;

      (4) 應(yīng)用程序的跳轉(zhuǎn)執(zhí)行。

      1.2 Bootloader工作機(jī)制

      由于TMS320C6678外部接口的豐富多樣性, 其Bootloader也存在多種實(shí)現(xiàn)方式, 如EMIF16, SRIO, Enthernet, PCIe, I2C, SPI和HyperLink七種Boot方式。 各種方式的區(qū)別僅在于接口類型以及基本配置的不同, 對(duì)于Bootloader來(lái)說, 這七種方式的工作機(jī)制是相同的。 本文以EMIF16接口為例, 完成了基于TMS320C6678的Bootloader設(shè)計(jì)。

      Bootloader主要完成系統(tǒng)初始配置、 外設(shè)接口初始化、 應(yīng)用程序加載與跳轉(zhuǎn)執(zhí)行等功能, 其中系統(tǒng)初始配置與外設(shè)接口初始化可以根據(jù)用戶需求靈活添加, 并不是Bootloader的必備。 Bootloader最核心的功能是應(yīng)用程序的加載與跳轉(zhuǎn)執(zhí)行, 該功能的正確與否直接關(guān)系到處理器能否完成上電自啟動(dòng)。

      為了實(shí)現(xiàn)處理器的上電自啟動(dòng), 需要事先將編譯好的用戶程序燒寫到片外的非易失性存儲(chǔ)器(如Flash)中。 由于工藝水平的限制, 程序在片外Flash存儲(chǔ)器中的執(zhí)行速度遠(yuǎn)小于片內(nèi)存儲(chǔ)器中的執(zhí)行速度。 因此, 程序的加載與跳轉(zhuǎn)執(zhí)行基本原理就是通過Bootloader將用戶程序從片外Flash加載到片內(nèi)高速緩存中, 并跳轉(zhuǎn)至片內(nèi)高速緩存中執(zhí)行。 程序加載與跳轉(zhuǎn)執(zhí)行的工作過程如圖1所示。

      圖1 程序加載與跳轉(zhuǎn)執(zhí)行工作過程

      Fig.1 Process of program loading and jumping to execute

      處理器上電后, 通過初始化引腳配置, 跳轉(zhuǎn)至片外Flash的起始地址0x70000000執(zhí)行Bootloader程序。 Bootloader將存儲(chǔ)在0x701000000地址中的用戶程序加載至TMS320C6678以0x10800000為起始地址的高速緩存空間中。 加載完畢后, Bootloader識(shí)別用戶程序的入口地址, 并跳轉(zhuǎn)至入口地址開始執(zhí)行。 其中, 0x70000000與0x70100000可以根據(jù)用戶的需求進(jìn)行更改, 加載地址在程序編譯完成后可根據(jù)實(shí)際的地址進(jìn)行指定。

      Bootloader的部分核心代碼如圖2所示。

      圖2 Bootloader代碼示意

      Fig.2 An example of Bootloader codes

      2 Bootloader硬件設(shè)計(jì)

      TMS320C6678提供了13個(gè)BOOTMODE引腳, 通過在硬件電路中對(duì)BOOTMODE進(jìn)行配置來(lái)確定處理器以何種模式進(jìn)行Boot、 Boot的子模式配置以及規(guī)定處理器的輸入時(shí)鐘頻率, 如表1所示。

      表1 BOOTMODE引腳配置

      通過對(duì)電路中BOOTMODE引腳進(jìn)行上下拉處理完成對(duì)處理器Bootloader工作模式的基本配置, 處理器上電后讀取BOOTMODE引腳狀態(tài)后開始Bootloader過程。

      3 多核程序加載設(shè)計(jì)

      在完成Bootloader設(shè)計(jì)并將其代碼和用戶程序燒寫至片外Flash中后, 便可實(shí)現(xiàn)上電自啟動(dòng)。 但這僅對(duì)于單核運(yùn)行而言, 想實(shí)現(xiàn)多核程序的啟動(dòng), 還需要對(duì)多核用戶程序做進(jìn)一步處理。

      3.1 多核程序啟動(dòng)過程

      TMS320C6678中共有八個(gè)處理器核, 分別命名為core0~core7。 其中, core0為主核, 只有主核具有執(zhí)行一級(jí)引導(dǎo)程序的權(quán)限, 即處理器上電后, 首先跳轉(zhuǎn)至core0的入口地址執(zhí)行。 其他7個(gè)核在處理器上電后進(jìn)入IDLE狀態(tài), 等待core0向其發(fā)送IPC中斷, 即其他7個(gè)核是在core0的控制下來(lái)啟動(dòng)執(zhí)行的。

      TMS320C6678在每個(gè)核中預(yù)留了一塊固定的內(nèi)存, 稱為BOOT_MAGIC_ADDRESS, 用來(lái)存放每個(gè)核開始執(zhí)行后需要跳轉(zhuǎn)到的入口地址_c_int00。 Bootloader執(zhí)行完畢后, 便自動(dòng)跳轉(zhuǎn)至core0的入口地址執(zhí)行, 而其他7個(gè)核在接收到core0的IPC中斷后, 便向各個(gè)核對(duì)應(yīng)的BOOT_MAGIC_ADDRESS讀取相應(yīng)的入口地址, 然后跳轉(zhuǎn)執(zhí)行。

      根據(jù)TMS320C6678的內(nèi)存規(guī)劃設(shè)計(jì), 每個(gè)核的BOOT_MAGIC_ADDRESS位于各自L2 SRAM的最后4個(gè)字節(jié)中, 分別為0x1087FFFC~0x1787FFFC。

      3.2 單核程序的生成

      用戶程序通過TI處理器編譯軟件CCS的編譯后, 生成.out可執(zhí)行文件。 .out文件可以通過CCS軟件加載的方式將用戶程序加載到處理器中執(zhí)行, 但這種方式并不能實(shí)現(xiàn)上電自啟動(dòng)。 上電自啟動(dòng)需要將用戶程序燒寫至片外Flash中, 而.out可執(zhí)行文件中包含大量冗余信息, 將.out燒寫至片外Flash中會(huì)造成資源浪費(fèi), 且.out文件的格式也決定了不能實(shí)現(xiàn)上電自啟動(dòng)。

      TI公司提供了一整套的工具鏈, 如hex6x, b2i2c, b2ccs, i2crom等工具, 來(lái)完成.out可執(zhí)行文件向可燒寫鏡像文件的轉(zhuǎn)化。 圖3所示為生成的單核鏡像文件的格式。

      圖3 單核鏡像文件格式

      Fig.3 Format of single core image file

      其中.text段, .cint段, .switch段等均為用戶程序經(jīng)過CCS編譯后生成的各個(gè)數(shù)據(jù)段, 每個(gè)數(shù)據(jù)段都將對(duì)自己的數(shù)據(jù)段長(zhǎng)度和在內(nèi)存中存放的地址在鏡像文件中進(jìn)行標(biāo)記。 在完成用戶鏡像文件燒寫至片外Flash中后, Bootloader通過對(duì)每個(gè)數(shù)據(jù)段的長(zhǎng)度及存放的地址進(jìn)行識(shí)別, 實(shí)現(xiàn)對(duì)用戶程序的準(zhǔn)確加載。

      3.3 多核程序的生成

      對(duì)于多核程序來(lái)說, 由于每個(gè)核中執(zhí)行的用戶程序不同, 經(jīng)過CCS分別編譯后生成的.out可執(zhí)行文件也是不同的。 經(jīng)過工具鏈生成用戶鏡像文件后, 八個(gè)核便會(huì)對(duì)應(yīng)八個(gè)不同的鏡像文件。 因此, 要想生成多核用戶鏡像文件, 需要對(duì)八個(gè)核的鏡像文件進(jìn)行合并處理, 如圖4所示。

      多核鏡像文件合并的意義在于舍棄核的概念, 將每個(gè)核的鏡像文件視作由多個(gè)數(shù)據(jù)段組成。 多核鏡像文件的合并從根本上說是將多個(gè)核的數(shù)據(jù)段按照長(zhǎng)度、 地址、 數(shù)據(jù)的固定格式合并在一起。

      多核鏡像文件的最后是對(duì)core1~core7入口地址_c_int00的處理。 core1~core7的程序入口地址應(yīng)當(dāng)寫入每個(gè)核對(duì)應(yīng)的BOOT_MAGIC_ADDRESS中, 而本文正是將core1~core7的程序入口地址當(dāng)做數(shù)據(jù)段(長(zhǎng)度為4字節(jié), 地址為相應(yīng)BOOT_MAGIC_ADDRESS, 數(shù)據(jù)為相應(yīng)入口地址_c_int00)進(jìn)行了合并。

      圖4 多核鏡像文件格式

      Fig.4 Format of multicore image file

      3.4 多核Bootloader執(zhí)行

      TMS320C6678多核Bootloader的執(zhí)行過程如圖5所示。

      圖5 多核Bootloader執(zhí)行過程

      Fig.5 Process of multicore Bootloader

      4 設(shè)計(jì)驗(yàn)證

      本文設(shè)計(jì)如下程序來(lái)驗(yàn)證多核上電自啟動(dòng)的正確性: 八個(gè)核循環(huán)執(zhí)行1 024點(diǎn)FFT, 每個(gè)核執(zhí)行完一次FFT后向共享緩存寫標(biāo)志字, 然后core0不間斷監(jiān)測(cè)共享緩存的八個(gè)標(biāo)志字, 監(jiān)測(cè)到標(biāo)志字為1后, 對(duì)GPIO置0; 重復(fù)以上過程, 完成第二次FFT監(jiān)測(cè)后, core0將GPIO翻轉(zhuǎn), 以此類推。 如果八核完成啟動(dòng), 且程序運(yùn)行正確, 示波器將顯示觀測(cè)到的GPIO方波。

      經(jīng)驗(yàn)證, 本文的設(shè)計(jì)完成了TMS320C6678的八核上電自啟動(dòng), 仿真結(jié)果見圖6。

      圖6 仿真結(jié)果

      5 結(jié) 論

      針對(duì)TMS320C6678多核處理器提供了一種多核Bootloader的設(shè)計(jì)方法, 試驗(yàn)驗(yàn)證表明, 所設(shè)計(jì)的多核Bootloader程序工作穩(wěn)定, 可靠性高。 同時(shí), 該設(shè)計(jì)具備良好的通用性, 可以移植到其他基于TMS320C66xx系列芯片的平臺(tái)中。

      [1] TI. TMS320C6678: Multicore Fixed and Floating Point Digital Signal Processor[Z]. 2012.

      [2] TI. KeyStone Architecture DSP Bootloader[Z]. 2012.

      [3] 李飛平, 卿粼波, 滕奇志, 等. 基于TMS320C6678的多核程序加載研究與實(shí)現(xiàn)[J]. 電子技術(shù)應(yīng)用, 2015,41(3): 31-34. Li Feiping, Qing Linbo, Teng Qizhi, et al. Multicore Program Loading Research and Improve Based on TMS320C6678[J]. Application of Electronic Technique, 2015, 41(3): 31-34. (in Chinese)

      [4] 齊恩勇. 基于多核處理器的彈載嵌入式系統(tǒng)設(shè)計(jì)研究[J]. 電子設(shè)計(jì)工程, 2013, 21(6): 105-107. Qi Enyong. Research about Designing of Missile-Borne Embedded System Based on Multicore Processor[J]. Electronic Design Engineering, 2013, 21(6): 105-107.(in Chinese)

      [5] 黃震, 劉亞斌. TMS320C6000系列DSP程序固化的研究[J]. 電子設(shè)計(jì)工程, 2016, 24(12): 26-28. Huang Zhen, Liu Yabin. Study on the Program Download of TMS320C6000 DSP[J]. Electronic Design Engineering, 2016, 24(12): 26-28.(in Chinese)

      [6] 孔石, 王春雷. 基于EMIF16模塊的TMS320C6678與FPGA接口設(shè)計(jì)與實(shí)現(xiàn)[J]. 航空兵器, 2015(1): 35-38. Kong Shi, Wang Chunlei. Design and Implementation of Interface between TMS320C6678 and FPGA Based on EMIF16 Module[J]. Aero Weaponry, 2015(1): 35-38. (in Chinese)

      [7] 郝朋朋, 周煦林, 唐藝菁, 等. 基于TMS320C6678多核處理器體系結(jié)構(gòu)的研究[J]. 微電子學(xué)與計(jì)算機(jī), 2012, 29(12): 171-175. Hao Pengpeng, Zhou Xulin, Tang Yijing, et al. Research on Multicore Processor’s Architecture Based on TMS320C6678[J]. Microelectronics & Computer, 2012, 29(12): 171-175.(in Chinese)

      DesignandImplementationofMulticoreBootloaderBasedonTMS320C6678Processor

      XueZhiyuan,WangChunlei

      (ChinaAirborneMissileAcademy,Luoyang471009,China)

      According to the characteristics of multicore processors TMS320C6678, a design method based on multicore Bootloader is proposed. The principle and working mechanism of TMS320C6678Bootloader are described, a method to produce the image file of multicore user program is given. As a result, the multicore program loading and auto-running of TMS320C6678are implemented. Experiments show that TMS320C6678processor performs stably under the proposed design method.

      missile-borne computer; TMS320C6678; Bootloader; multicore program loading; EMIT16

      10.19297/j.cnki.41-1228/tj.2017.04.014

      2017-02-14

      薛志遠(yuǎn)(1986-), 男, 山東淄博人, 博士, 主要從事數(shù)字信號(hào)處理工作。

      薛志遠(yuǎn), 王春雷. 基于 TMS320C6678的多核Bootloader設(shè)計(jì)與實(shí)現(xiàn)[ J]. 航空兵器, 2017( 4): 80-83. Xue Zhiyuan, Wang Chunlei. Design and Implementation of Multicore Bootloader Based on TMS320C6678 Processor[ J]. Aero Weaponry, 2017( 4): 80-83.( in Chinese)

      TJ760; TN911.7

      : A

      : 1673-5048(2017)04-0080-04

      猜你喜歡
      用戶程序鏡像文件志遠(yuǎn)
      我最喜愛的玩具①
      變速箱控制系統(tǒng)Bootloader設(shè)計(jì)與實(shí)現(xiàn)
      Atom interferometers with weak-measurement path detectors and their quantum mechanical analysis?
      嵌入式設(shè)備遠(yuǎn)程升級(jí)方案設(shè)計(jì)
      沒光驅(qū)不要緊 裝個(gè)免費(fèi)虛擬的
      用RamOS降低公用機(jī)的維護(hù)工作量
      香噴噴的年喲
      Win7升級(jí)Win10教程
      電腦迷(2015年9期)2015-05-30 22:08:35
      Analysis and implementation of FURLS algorithm for active vibration control system with positive feedback①
      C8051F410單片機(jī)BootLoader的實(shí)現(xiàn)
      汶川县| 凤庆县| 黑河市| 卫辉市| 昭平县| 永嘉县| 临武县| 永泰县| 长岛县| 安义县| 黄山市| 台州市| 饶河县| 白城市| 山阳县| 错那县| 仁怀市| 蓬溪县| 安义县| 合阳县| 巫山县| 成武县| 铜梁县| 南阳市| 越西县| 当涂县| 宁强县| 增城市| 资兴市| 共和县| 河津市| 江陵县| 政和县| 广西| 铜鼓县| 聂荣县| 江山市| 新兴县| 桂东县| 始兴县| 宣武区|