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

基于TMS320F28335的DSP/BIOS系統(tǒng)從FLASH到RAM運(yùn)行

2015-04-12 00:00:00陳惠綱黎驅(qū)
現(xiàn)代電子技術(shù) 2015年2期

摘 "要: DSP/BIOS是TMS320F28xxx系列DSP上的一個(gè)實(shí)時(shí)操作系統(tǒng)內(nèi)核。由于TMS320F28335內(nèi)部FLASH性能的限制,當(dāng)DSP/BIOS系統(tǒng)直接在芯片內(nèi)FLASH上運(yùn)行時(shí),程序運(yùn)行的速度往往比在RAM上運(yùn)行時(shí)慢得多,嚴(yán)重影響了DSP/BIOS的實(shí)時(shí)性。為了解決這個(gè)問題,通過分析TMS320F28335的啟動過程和程序從FLASH搬移到RAM上運(yùn)行的一般流程,以及DSP/BIOS與非DSP/BIOS工程的Memory Sections特點(diǎn),提出一種通過在c_int00之前增加Copy_Sections等一系列操作對DSP/BIOS系統(tǒng)及用戶程序進(jìn)行搬移的方法。由此實(shí)現(xiàn)在芯片啟動后自動把DSP/BIOS系統(tǒng)從片內(nèi)FLASH搬移到RAM上運(yùn)行的功能,從而提高DSP/BIOS系統(tǒng)的運(yùn)行效率和實(shí)時(shí)性。該方法已經(jīng)通過實(shí)驗(yàn)驗(yàn)證并在實(shí)際的工程項(xiàng)目中應(yīng)用,獲得良好的效果,因此值得推廣。

關(guān)鍵詞:TMS320F28335; DSP/BIOS; FLASH; RAM; 程序搬移

中圖分類號: TN919?34; TP311.1 " " " " " " " " 文獻(xiàn)標(biāo)識碼: A " " " " " " " " " "文章編號: 1004?373X(2015)02?0065?04

TMS320F28335?based DSP/BIOS system running from FLASH to RAM

CHEN Hui?gang, LI Qu

(Guangdong Co., Ltd., HM Power, Foshan 528300, China)

Abstract: DSP/BIOS is a Real?time operating system kernel on DSP of TMS320F28xxx series. When DSP/BIOS system runs directly in the on?chip FLASH, the DSP/BIOS system would be much slower than it runs in RAM because of the performance limitation of FLASH in TMS320F28335, which affects the DSP/BIOS’s real?time performance seriously. To solve the problem, By analyzing the start?up procedure of TMS320F28335 and the procedure of moving a program from FLASH to RAM, and the Memory Sections features of DSP/BIOS and none DSP/BIOS, a method to add a function named Copy_Sections before c_int00 to copy DSP/BIOS system and user program from FLASH to RAM is proposed in this paper. By doing this, the Function that DSP/BIOS system is automatically copied from on?chip FLASH to RAM after reset or power on the DSP is realized, which improves the efficiency of DSP/BIOS system and its real?time performance. This method was validated by experiment and used in practical project.

Keywords: TMS320F28335; DSP/BIOS; FLASH; RAM; program copy

0 "引 "言

TMS320F28335基于C28x+FPU 的控制器和 TI 現(xiàn)有的 C28xDSC具有相同的 32 位定點(diǎn)架構(gòu),還包括一個(gè)單精度(32 位)的 IEEE 754 浮點(diǎn)單元(FPU)[1]。其內(nèi)部包含512 KB的FLASH和68 KB的RAM,并支持20 b地址、32 b數(shù)據(jù)的外部擴(kuò)展。當(dāng)代碼運(yùn)行在片上RAM時(shí),其MIPS與跟芯片運(yùn)行的頻率是一致的,即芯片運(yùn)行在150 MHz時(shí),其性能為150 MIPS。然而,由于芯片內(nèi)部FLASH的讀取等待時(shí)間比RAM長,當(dāng)代碼在芯片內(nèi)部FLASH運(yùn)行時(shí),其運(yùn)行性能[2]在150 MHz下最多只有95 MIPS。

DSP/BIOS是TI公司為其C28x、55x、C6000系列所設(shè)計(jì)開發(fā)的一個(gè)用戶可裁剪的實(shí)時(shí)多任務(wù)的操作系統(tǒng)內(nèi)核[3]。其以模塊化方式提供給用戶對線程、中斷、定時(shí)器、內(nèi)存資源、所有外設(shè)資源的管理能力都可以根據(jù)需要剪裁。實(shí)際應(yīng)用中需要的定制算法作為一個(gè)線程插入DSP/BIOS的調(diào)度隊(duì)列,由DSP/BIOS進(jìn)行調(diào)度。作為TI公司的操作系統(tǒng),DSP/BIOS與開發(fā)環(huán)境緊密結(jié)合,能夠給開發(fā)者提供多種豐富的可視化調(diào)試手段,為工程的開發(fā)提供極大的便利,這是其他實(shí)時(shí)系統(tǒng)所不能比擬的。

當(dāng)DSP/BIOS運(yùn)行在芯片內(nèi)部FLASH時(shí),由于FLASH讀取時(shí)間比RAM的讀取時(shí)間長,導(dǎo)致DSP/BIOS系統(tǒng)往往達(dá)不到在RAM運(yùn)行時(shí)的效果,嚴(yán)重影響其實(shí)時(shí)效果。為了發(fā)揮芯片的最大性能,提高DSP/BIOS系統(tǒng)的實(shí)時(shí)性及運(yùn)行效率,有必要將DSP/BIOS從FLASH搬移到RAM上運(yùn)行。本文通過分析TMSF320F28335的啟動流程以及DSP/BIOS中Memory Sections特點(diǎn),實(shí)現(xiàn)了芯片復(fù)位、上電后自動把DSP/BIOS系統(tǒng)及相關(guān)程序從芯片內(nèi)部FLASH搬移到RAM上,并在RAM中運(yùn)行的方法。

1 "TMF320F28335的啟動流程

在TMS320F28335芯片上電/復(fù)位后,程序首先到復(fù)位向量的地址0x3FFFC0進(jìn)入初始化引導(dǎo)函數(shù)InitBoot[4]。在InitBoot中,首先程序?qū)π酒M(jìn)行初始化,然后讀取與芯片引導(dǎo)方式相關(guān)引腳的狀態(tài),調(diào)用SelectBootmode確認(rèn)引導(dǎo)模式,調(diào)用ADC_CAL來校正芯片的采樣數(shù)據(jù)。在退出InitBoot(即執(zhí)行ExitBoot)后,芯片根據(jù)之前確認(rèn)的引導(dǎo)路徑跳轉(zhuǎn)到相應(yīng)的程序入口。對于一般的產(chǎn)品來說,程序上電復(fù)位后都是從內(nèi)部FLASH啟動的,因此,程序在退出InitBoot后會跳轉(zhuǎn)到FLASH的0x33FFF6執(zhí)行代碼。相應(yīng)啟動流程如圖1所示。

lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\23t1.tifgt;

圖1 啟動流程圖

以上是芯片在上電/復(fù)位以后的流程,由芯片自動完成,接下來到了FLASH的0x33FFF6處就是用戶自己實(shí)現(xiàn)的代碼,該入口的名字是code_start。對DSP/BIOS系統(tǒng),如果用戶的程序代碼是直接運(yùn)行在FLASH中,那么程序執(zhí)行的流程如圖2所示。其中,wd_disable表示屏蔽硬件看門狗,c_ini00為初始化C運(yùn)行環(huán)境,BIOS_init為DSP/BIOS的初始化函數(shù),BIOS_start為DSP/BIOS的啟動函數(shù),而main則是用戶程序的入口。圖2中的各個(gè)流程的程序均運(yùn)行在芯片內(nèi)FLASH中。

lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\23t2.tifgt;

圖2 程序執(zhí)行流程圖

由圖2可以看出,如果DSP/BIOS系統(tǒng)和用戶的程序代碼要實(shí)現(xiàn)從內(nèi)部FLASH搬運(yùn)到RAM中運(yùn)行,則需要從圖2的流程中增加一個(gè)過程實(shí)現(xiàn)對部分核心Memory Sections及相關(guān)代碼的搬移,該過程命名為copy_sections。該過程應(yīng)該在wd_disable與c_int00之間,因此實(shí)現(xiàn)從FLASH到RAM程序搬移的流程如圖3所示。其中,在copy_sections及之前的過程均運(yùn)行在片上FLASH,copy_sections后面的程序根據(jù)copy_sections的具體進(jìn)行的操作有可能運(yùn)行在FLASH或者RAM上。同時(shí),也需要在用戶代碼的開始階段,對其他Memory Sections及用戶定義的存儲段進(jìn)行搬移。 對于我們具體的工程,由于把整個(gè)DSP/BIOS系統(tǒng)和用戶程序都搬移到RAM上,因此在copy_sections之后的過程都是直接在RAM上運(yùn)行的。

lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\23t3.tifgt;

圖3 程序搬移流程圖

2 "DSP/BIOS的Memory Sections特點(diǎn)

在一般的非DSP/BIOS工程中,其Memory Sections一般如表1所示。對于一般的DSP/BIOS工程,其Memory Sections如表2所示[5]。

表1 非DSP/BIOS中Memory Section表

表2 DSP/BIOS中Memory Section表

表1,表2中顯示為RAM的Memory Sections表示該段位于RAM上,該段的數(shù)據(jù)為變量。而顯示為FLASH的Memory Sections則表示該段位于FLASH上,該段的數(shù)據(jù)為代碼或常量。

由上述表格可以得出,不管是DSP/BIOS工程還是非DSP/BIOS工程,在程序搬移的時(shí)候,為了提高運(yùn)行的效率,表格2中凡是顯示FLASH的段都要搬移到RAM中運(yùn)行。這里有幾個(gè)地方要注意,首先,Stack Section(.Stack)要求只能搬移到內(nèi)存低于64 KB的地方運(yùn)行。而對DSP/BIOS工程來說,一個(gè)值得注意的地方是.hwi_vec(Interrupt Service Table Memory)段只能搬移到PIEVECT RAM。PIEVECT RAM是與PIE有關(guān)的特殊部分[6],其位于數(shù)據(jù)空間,地址從0x000D00開始,大小為256×16。另外一個(gè)值得注意的地方,根據(jù)TI的文檔[2],DSP/BIOS系統(tǒng)中各個(gè)Memroy Sections并不是全部在copy_sections中實(shí)現(xiàn)搬移的,而是分別在DSP/BIOS系統(tǒng)選項(xiàng)以及用戶代碼中進(jìn)行搬移。這是與一般非DSP/BIOS工程最大的不同。

3 "DSP/BIOS系統(tǒng)搬移實(shí)現(xiàn)

結(jié)合以上對TMS320F28335芯片復(fù)位、上電后的啟動流程以及DSP/BIOS系統(tǒng)的Memory Sections的分析,我們知道DSP/BIOS工程與非DSP/BIOS工程在程序搬移的原理是一致的,但是實(shí)現(xiàn)的流程有所不一樣。對于DSP/BIOS工程,具體的流程如下:

3.1 "增加/修改搬移代碼

(1) 修改CodeStartBranch.asm。把原來LB _c_int00改為LB copy_sections。

(2) 增加SectionCopy_BIOS.asm[7]。為了提高DSP/BIOS的運(yùn)行效率,把DSP/BIOS與FLASH有關(guān)的除了.hwi_vec以及.Trcdata外的全部Memory Sections搬移到RAM中,這些操作在copy_section里面實(shí)現(xiàn)。

(3) 在ccs[8]工程的DSP/BIOS系統(tǒng)選項(xiàng)中,增加_UserInit函數(shù),并在UserInit函數(shù)內(nèi)搬移.Trcdata段到RAM中。

(4) 在main函數(shù)里,增加.hwi_vec段搬移的代碼。

(5) 在main函數(shù)里,把其他相關(guān)的段,如用戶數(shù)據(jù)等搬移到RAM中。

(6) 在main函數(shù)里,把.secureRAMFuncs段搬移到RAM中,然后執(zhí)行InitFLASH。

(7) 把用戶代碼所在的Memory Sections搬移到RAM中。

3.2 "修改CMD文件

對需要搬移的Memory Sections修改為以下代碼(以.bios段為例):

.bios: LOAD = FLASH, " PAGE = 0 "/* Used by file FLASH.c */ ①

RUN = L47SARAM, "PAGE = 0 "/* Load to flash, run from CSM secure RAM */ ②

LOAD_START(_bios_loadstart) ③

LOAD_SIZE(_bios_loadsize) " " ④

RUN_START(_bios_runstart) " ⑤

上述代碼中,①表示.bios段的代碼位于FLASH;②表示.bios段代碼執(zhí)行位置在L47SARAM中;③表示.bios段裝載的起始地址;④表示.bios段裝載的長度;⑤.bios段運(yùn)行的起始地址

3.3 "結(jié)果分析

當(dāng)把DSP/BIOS系統(tǒng)從FLASH搬移到RAM運(yùn)行后,打開工程的內(nèi)存分配文件(.map),看到里面有這么一行:

.bios "0 " 00339558 " "00000d91 " " RUN ADDR = 0000d558 "⑥

從⑥中可以看出,.bios位于page 0,代碼裝載的起始位置是0x00339558, 代碼長度是 0x00000d91,而代碼運(yùn)行的起始位置是0x0000d558。根據(jù)TMS320F28335的內(nèi)存分配可知,.bios段代碼的原始位置在FLASH中,而運(yùn)行的位置在RAM,這個(gè)說明了DSP/BIOS已經(jīng)實(shí)現(xiàn)了從FLASH搬移到RAM運(yùn)行。查看其他相關(guān)的Memory Sections也能發(fā)現(xiàn)類似的情況,因此可以認(rèn)為,DSP/BIOS系統(tǒng)的搬移操作是成功的。為了量化程序搬移對程序運(yùn)行的影響,在本工程的采樣任務(wù)中,利用分頻在TMS320F28335的一個(gè)GPIO管腳上輸出一個(gè)固定頻率的方波,通過示波器觀察如圖4、圖5所示。

lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\23t4.tifgt;

圖4 方波顯示圖(一)

圖4中是表示工程通過JTAG調(diào)試在RAM中運(yùn)行時(shí)芯片管腳輸出的頻率,其輸出頻率是110.33 Hz。圖5表示工程在FLASH中運(yùn)行時(shí)芯片管腳輸出的頻率,其輸出頻率為55.148 Hz。

lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\23t5.tifgt;

圖5 方波顯示圖(二)

圖6為工程經(jīng)過搬移在RAM中運(yùn)行時(shí)芯片管腳輸出的頻率,為110.34 Hz。通過對比以上3種情況可以發(fā)現(xiàn),如果程序單純的在FLASH中運(yùn)行,其對程序的影響比較大,從性能上來說只有在RAM中運(yùn)行時(shí)的一半。而程序通過搬移到RAM運(yùn)行后,能夠得到跟調(diào)試狀態(tài)下一致的運(yùn)行性能。由此可以看出,在TMS320F28335芯片上使用DSP/BIOS實(shí)時(shí)系統(tǒng)時(shí)對其從FLASH搬移到RAM運(yùn)行的必要性及其重要意義。

lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\23t6.tifgt;

圖6 方波顯示圖(三)

4 "結(jié) "論

本文給出TMS320F28335上運(yùn)行的DSP/BIOS系統(tǒng)從片內(nèi)FLASH搬移到RAM運(yùn)行的方法,并實(shí)際的項(xiàng)目開發(fā)中得到驗(yàn)證和應(yīng)用,具有非常實(shí)用的意義。在項(xiàng)目開發(fā)的過程中也發(fā)現(xiàn),由于片內(nèi)RAM的空間有限,當(dāng)項(xiàng)目工程的程序較大時(shí),有可能導(dǎo)致DSP/BIOS系統(tǒng)不能全部搬移到片內(nèi)RAM中運(yùn)行,此時(shí)可有兩種解決方案,或者把工程和DSP/BIOS中對時(shí)間要求比較高的部分和部分對時(shí)間要求比較高的代碼搬移到片內(nèi)RAM,其余的代碼還是在FLASH上運(yùn)行;或者外擴(kuò)片外RAM,把DSP/BIOS核心部分放到片內(nèi)RAM,把對時(shí)間要求相對較低的代碼放到片外RAM,通過這種區(qū)分優(yōu)先順序的方式來提高整個(gè)DSP/BIOS系統(tǒng)程序的運(yùn)行效率。

參考文獻(xiàn)

[1] "Texas Instruments. TMS320F28335, TMS320F28334, TMS320

F28332, TMS320F28235, TMS320F28234, TMS320F28232 digital signal controllers (DSCs) [EB]. USA: Texas Instruments, 2012.

[2] Texas Instruments. Running an application from internal flash memory on the TMS320F28xxx DSP [EB]. USA: Texas Instruments, 2013.

[3] Texas Instruments. TMS320 DSP/BIOS v5.41 user’s guide [EB]. USA: Texas Instruments, 2009.

[4] Texas Instruments. TMS320x2833x, 2823x Boot ROM [EB]. USA: Texas Instruments, 2008.

[5] Texas Instruments. Running an application from internal flash memory on the TMS320F28xxx DSP [EB]. USA: Texas Instruments, 2013.

[6] Texas Instruments. TMS320x2833x, 2823x system control and interrupts [EB]. USA: Texas Instruments, 2010.

[7] Texas Instruments. SPRA958K [EB]. USA: Texas Instruments, 2012.

[8] Texas Instruments. TMS320C28x optimizing C/C++ Compiler v6.0 user's guide [EB]. USA: Texas Instruments, 2011.

主站蜘蛛池模板: 亚洲欧美日韩色图| 精品久久国产综合精麻豆 | 国产第一页免费浮力影院| 日本三级欧美三级| 久久窝窝国产精品午夜看片| 99久久无色码中文字幕| 午夜福利无码一区二区| 欧美成人免费午夜全| 日韩人妻无码制服丝袜视频| 秋霞午夜国产精品成人片| 小说区 亚洲 自拍 另类| 国产不卡一级毛片视频| 综合五月天网| 无码粉嫩虎白一线天在线观看| 国产中文一区二区苍井空| 91口爆吞精国产对白第三集| 激情影院内射美女| 久久永久精品免费视频| 国内丰满少妇猛烈精品播| 欧美日韩成人| 色婷婷亚洲综合五月| 欧美一级高清免费a| 不卡午夜视频| 国产精品视频导航| 国产高清自拍视频| 欧美一区日韩一区中文字幕页| 亚洲美女一级毛片| 亚洲永久色| 国内精自线i品一区202| 欧美精品在线观看视频| 国产微拍精品| 欧美www在线观看| 亚洲人成网7777777国产| 四虎亚洲精品| 亚洲av无码久久无遮挡| 欧美国产日产一区二区| 美女无遮挡拍拍拍免费视频| 欧美a在线| 在线观看免费国产| 国产丝袜啪啪| 日韩在线观看网站| 男女男免费视频网站国产| 国产精品hd在线播放| 免费三A级毛片视频| 日韩在线观看网站| 日韩在线中文| 欧美日一级片| 欧美成在线视频| 国产熟睡乱子伦视频网站| 老司机久久99久久精品播放 | 中文精品久久久久国产网址| 日韩人妻少妇一区二区| 欧美日韩v| 超清无码熟妇人妻AV在线绿巨人| 国内毛片视频| 色婷婷电影网| 亚洲欧洲日本在线| 亚洲h视频在线| 视频一区亚洲| 欧美性精品| 99久久精彩视频| 欧美午夜视频| 久久中文字幕2021精品| 午夜精品福利影院| 亚洲男人的天堂久久香蕉| 午夜精品一区二区蜜桃| 女人爽到高潮免费视频大全| 波多野一区| 国产在线精品网址你懂的| 99久久国产综合精品2020| 国产精品浪潮Av| 色婷婷视频在线| 国产噜噜在线视频观看| 国产一级在线播放| 青草视频在线观看国产| 99re精彩视频| 九九久久精品国产av片囯产区| 国产一区二区网站| 欧美日韩精品在线播放| 99热这里只有精品在线观看| 亚洲日本www| 大香伊人久久|