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

基于TMS320F28335的DSP/BIOS系統從FLASH到RAM運行

2015-04-12 00:00:00陳惠綱黎驅
現代電子技術 2015年2期

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

關鍵詞:TMS320F28335; DSP/BIOS; FLASH; RAM; 程序搬移

中圖分類號: TN919?34; TP311.1 " " " " " " " " 文獻標識碼: 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 現有的 C28xDSC具有相同的 32 位定點架構,還包括一個單精度(32 位)的 IEEE 754 浮點單元(FPU)[1]。其內部包含512 KB的FLASH和68 KB的RAM,并支持20 b地址、32 b數據的外部擴展。當代碼運行在片上RAM時,其MIPS與跟芯片運行的頻率是一致的,即芯片運行在150 MHz時,其性能為150 MIPS。然而,由于芯片內部FLASH的讀取等待時間比RAM長,當代碼在芯片內部FLASH運行時,其運行性能[2]在150 MHz下最多只有95 MIPS。

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

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

1 "TMF320F28335的啟動流程

在TMS320F28335芯片上電/復位后,程序首先到復位向量的地址0x3FFFC0進入初始化引導函數InitBoot[4]。在InitBoot中,首先程序對芯片進行初始化,然后讀取與芯片引導方式相關引腳的狀態,調用SelectBootmode確認引導模式,調用ADC_CAL來校正芯片的采樣數據。在退出InitBoot(即執行ExitBoot)后,芯片根據之前確認的引導路徑跳轉到相應的程序入口。對于一般的產品來說,程序上電復位后都是從內部FLASH啟動的,因此,程序在退出InitBoot后會跳轉到FLASH的0x33FFF6執行代碼。相應啟動流程如圖1所示。

lt;E:\王芳\現代電子技術201502\Image\23t1.tifgt;

圖1 啟動流程圖

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

lt;E:\王芳\現代電子技術201502\Image\23t2.tifgt;

圖2 程序執行流程圖

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

lt;E:\王芳\現代電子技術201502\Image\23t3.tifgt;

圖3 程序搬移流程圖

2 "DSP/BIOS的Memory Sections特點

在一般的非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上,該段的數據為變量。而顯示為FLASH的Memory Sections則表示該段位于FLASH上,該段的數據為代碼或常量。

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

3 "DSP/BIOS系統搬移實現

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

3.1 "增加/修改搬移代碼

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

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

(3) 在ccs[8]工程的DSP/BIOS系統選項中,增加_UserInit函數,并在UserInit函數內搬移.Trcdata段到RAM中。

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

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

(6) 在main函數里,把.secureRAMFuncs段搬移到RAM中,然后執行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段代碼執行位置在L47SARAM中;③表示.bios段裝載的起始地址;④表示.bios段裝載的長度;⑤.bios段運行的起始地址

3.3 "結果分析

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

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

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

lt;E:\王芳\現代電子技術201502\Image\23t4.tifgt;

圖4 方波顯示圖(一)

圖4中是表示工程通過JTAG調試在RAM中運行時芯片管腳輸出的頻率,其輸出頻率是110.33 Hz。圖5表示工程在FLASH中運行時芯片管腳輸出的頻率,其輸出頻率為55.148 Hz。

lt;E:\王芳\現代電子技術201502\Image\23t5.tifgt;

圖5 方波顯示圖(二)

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

lt;E:\王芳\現代電子技術201502\Image\23t6.tifgt;

圖6 方波顯示圖(三)

4 "結 "論

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

參考文獻

[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九九成人免费视频精品| 亚洲天堂精品在线| 国产美女人喷水在线观看| 国产精品香蕉| 国产人在线成免费视频| 久久毛片网| 成人午夜免费观看| 欧美日韩激情| 久久国产拍爱| 国产情精品嫩草影院88av| 成人永久免费A∨一级在线播放| 国产成人一区免费观看| 欧美精品导航| 国产成人综合在线观看| 亚洲欧美自拍中文| 国产乱人伦偷精品视频AAA| 日韩欧美国产精品| 丰满人妻被猛烈进入无码| 嫩草影院在线观看精品视频| 国产网友愉拍精品视频| 99久久国产综合精品2023| 国产日韩欧美中文| 国产理论一区| 不卡网亚洲无码| 日本欧美成人免费| 欧美精品啪啪| 亚洲国产精品日韩专区AV| 国产成人精品一区二区免费看京| 亚洲女同欧美在线| 欧美在线天堂| 91无码网站| 波多野结衣在线se| 欧美性精品| 久青草国产高清在线视频| 性做久久久久久久免费看| 亚洲精品国产精品乱码不卞 | 在线毛片网站| 中文字幕第4页| 国产成人精品在线| 中文字幕1区2区| 成人午夜免费观看| 永久在线播放| 爽爽影院十八禁在线观看| 手机在线看片不卡中文字幕| 一本一本大道香蕉久在线播放| 一级看片免费视频| 日本人又色又爽的视频| 丰满人妻中出白浆| 在线播放国产99re| 日本草草视频在线观看| 久热re国产手机在线观看| 免费人成视频在线观看网站| 无码福利日韩神码福利片| 色综合综合网| 国产在线视频福利资源站| 国产尤物视频在线| 欧美成人一级| 嫩草影院在线观看精品视频| 国产91成人| 久久久久久久蜜桃| 久久动漫精品| 国产女人在线视频| 久久99国产综合精品女同| 色爽网免费视频| 亚洲乱强伦| 亚洲视频a| 国产主播在线观看| 久久青草视频| 成人国内精品久久久久影院| 熟女成人国产精品视频| 久久香蕉国产线| jizz在线免费播放| 最新国产在线| 人人澡人人爽欧美一区| 久久午夜夜伦鲁鲁片无码免费| 2021精品国产自在现线看| 99re免费视频| 婷婷99视频精品全部在线观看| 国产亚洲欧美在线视频|