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

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

2017-09-15 11:43:10薛志遠(yuǎn)王春雷
航空兵器 2017年4期
關(guān)鍵詞:程序用戶設(shè)計(jì)

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

(中國空空導(dǎo)彈研究院, 河南 洛陽 471009)

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

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

(中國空空導(dǎo)彈研究院, 河南 洛陽 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), 是決定未來戰(zhàn)爭勝負(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)行的一段代碼, 用來完成處理器上電后的系統(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來說, 這七種方式的工作機(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)行配置來確定處理器以何種模式進(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的控制下來啟動(dòng)執(zhí)行的。

TMS320C6678在每個(gè)核中預(yù)留了一塊固定的內(nèi)存, 稱為BOOT_MAGIC_ADDRESS, 用來存放每個(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等工具, 來完成.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ù)段長度和在內(nèi)存中存放的地址在鏡像文件中進(jìn)行標(biāo)記。 在完成用戶鏡像文件燒寫至片外Flash中后, Bootloader通過對(duì)每個(gè)數(shù)據(jù)段的長度及存放的地址進(jìn)行識(shí)別, 實(shí)現(xiàn)對(duì)用戶程序的準(zhǔn)確加載。

3.3 多核程序的生成

對(duì)于多核程序來說, 由于每個(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ù)段按照長度、 地址、 數(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ù)段(長度為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ì)如下程序來驗(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

猜你喜歡
程序用戶設(shè)計(jì)
試論我國未決羈押程序的立法完善
瞞天過海——仿生設(shè)計(jì)萌到家
“程序猿”的生活什么樣
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
英國與歐盟正式啟動(dòng)“離婚”程序程序
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
主站蜘蛛池模板: 亚洲Va中文字幕久久一区| 国产黑丝视频在线观看| 91偷拍一区| 国产高潮视频在线观看| 亚洲综合色区在线播放2019| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲一级无毛片无码在线免费视频| 婷婷综合缴情亚洲五月伊| 久久久精品久久久久三级| 精品欧美日韩国产日漫一区不卡| 久久九九热视频| 日本免费高清一区| 国产精品密蕾丝视频| 麻豆国产精品| 99久久人妻精品免费二区| 91小视频在线观看| 欧美激情二区三区| 国内精品小视频在线| 中文成人在线视频| 中文精品久久久久国产网址 | 国产97视频在线观看| 欧美区国产区| 欧美激情网址| 一级毛片中文字幕| 54pao国产成人免费视频| 伊人色天堂| 网久久综合| 精品国产网| 久996视频精品免费观看| 精品国产三级在线观看| 国产成人一区二区| 国产精品无码一区二区桃花视频| 亚洲婷婷六月| 日韩黄色大片免费看| 欧亚日韩Av| 亚洲欧美成人综合| 国产福利小视频在线播放观看| 无码一区二区波多野结衣播放搜索| 国产原创第一页在线观看| 日韩av无码DVD| 欧美伦理一区| 婷婷色中文| 中文字幕久久亚洲一区| 亚洲人成人伊人成综合网无码| 狠狠干欧美| 欧美色图久久| 日韩A级毛片一区二区三区| 无码福利视频| 国产资源免费观看| 毛片免费观看视频| 一级毛片视频免费| 久久精品国产精品青草app| 91久久国产综合精品| 91色老久久精品偷偷蜜臀| 2021精品国产自在现线看| 午夜一级做a爰片久久毛片| 亚洲日韩精品欧美中文字幕| 免费jjzz在在线播放国产| 久久99热66这里只有精品一| 亚洲av日韩av制服丝袜| 一本色道久久88综合日韩精品| 国内老司机精品视频在线播出| 伊人激情综合网| 成人午夜免费观看| 国产精品黄色片| 欧美性天天| 大香网伊人久久综合网2020| 女人毛片a级大学毛片免费| 免费毛片全部不收费的| a网站在线观看| 亚洲丝袜第一页| 波多野吉衣一区二区三区av| 欧美一级视频免费| 欧美天天干| 国产在线拍偷自揄观看视频网站| 国产毛片不卡| 久久女人网| 91人妻在线视频| 狠狠色丁香婷婷综合| 亚洲成aⅴ人在线观看| 亚洲妓女综合网995久久 | 九色在线观看视频|