新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 提高DSP代碼運行性能的研究

提高DSP代碼運行性能的研究

作者: 時間:2009-09-03 來源:網(wǎng)絡(luò) 收藏

1 引言
隨著微控制器技術(shù)的發(fā)展,以TI公司TMS320C2000系列為代表的DCS型數(shù)字信號處理器應(yīng)用廣泛。該類型內(nèi)部集成Flash存儲器,可將二進制同化到其內(nèi)部的Flash存儲器直接。這種方式在傳統(tǒng)嵌入式應(yīng)用設(shè)計中很有效,但在一些算法比較復(fù)雜、系統(tǒng)響應(yīng)要求快速、通訊任務(wù)比較繁重的嵌入式應(yīng)用中,這種方式會導(dǎo)致控制系統(tǒng)響應(yīng)遲緩、通訊異常、I/O操作緩慢等問題。針對這些情況,提出一種新的解決方案,來運行。

本文引用地址:http://2s4d.com/article/152359.htm


2 問題分析及設(shè)計方案
由于應(yīng)用程序在Flash中運行速度遠低于在RAM中,因此在復(fù)雜嵌入式應(yīng)用中會出現(xiàn)控制系統(tǒng)響應(yīng)遲緩、通訊異常、I/O操作緩慢等問題。為了避免這些問題,只能讓程序在RAM中運行。TI公司的TMS320C2000系列DSP有2種工作模式:微處理器模式和微控制器模式。當DSP處于微控制器模式時,在RAM中程序運行速度達到峰值,但掉電后程序丟失,系統(tǒng)無法重新自動運行,因此這種程序運行方式僅適用于仿真調(diào)試階段。因此,DSP必須工作在微處理器模式下,使用片內(nèi)Flash作為運行程序的存儲和運行介質(zhì),才能保證系統(tǒng)上電后自動運行。但其程序運行效率低。因此必須把這2種工作模式相結(jié)合:首先將應(yīng)用程序固化到片內(nèi)Flash存儲器,當系統(tǒng)上電后由專門設(shè)計的裝載器(Bootloader) 負責將應(yīng)用程序南Flash搬移到RAM,然后Bootloader將DSP控制權(quán)交給應(yīng)用程序,從而實現(xiàn)DSP運行速度最高和上電后應(yīng)用程序自動運行,解決了因程序在不同介質(zhì)的不同效率所導(dǎo)致的系統(tǒng)響應(yīng)遲緩、通訊異常、I/O操作緩慢等問題。
以TMS320LF2407 DSP為例進行說明:該DSP具有獨立的數(shù)據(jù)存儲空間和數(shù)據(jù)總線,以及程序存儲空間和程序總線。只有程序空間的程序才能被DSP視為是可執(zhí)行程序,數(shù)據(jù)空間上的程序?qū)⒈籇SP視為操作數(shù)據(jù),因此將應(yīng)用程序直接從片內(nèi)Flash拷貝到數(shù)據(jù)空間的RAM后應(yīng)用程序是不能運行的。若使拷貝后的應(yīng)用程序能夠被 DSP視為可執(zhí)行程序還必須做一些輔助工作。
通過對TMS320LF2407的存儲映射結(jié)構(gòu)分析可發(fā)現(xiàn):程序空間和數(shù)據(jù)空間的擴展區(qū)域有部分地址可配置成相同存儲介質(zhì)(Flash或者RAM),通過某種辦法可以實現(xiàn)共享,也就是說DSP可以將從Flash中拷貝到共享RAM的應(yīng)用程序視為可執(zhí)行

3 設(shè)計方案實施
3.1 TMS320LF2407存儲空間配置及CMD文件編寫
為實現(xiàn)程序空間與數(shù)據(jù)空間共享RAM的存儲器配置方案,首先要熟悉C語言7個存儲段對存儲介質(zhì)的要求,其具體要求如表1所示。

從表1可以看出:“.bss”、“.sysmem”、“.stack”段的存儲介質(zhì)必須是RAM,且使用數(shù)據(jù)空間地址;而“.text”、“. swtich”、“.cinit”段的存儲介質(zhì)可以是RAM或ROM,但必須使用程序空間地址。“.text”是用來存放應(yīng)用程序的可執(zhí)行代碼的專用段,它既可運行在RAM中,也可在Flash中,該段的運行介質(zhì)決定應(yīng)用程序是否能夠達到最大。根據(jù)DSP命令鏈接文件(CMD文件)對匯編段的管理方式可知,“.text”可配置成裝載與運行分離的工作模式。這種模式可以使應(yīng)用程序存儲在Flash中,運行在RAM中從而實現(xiàn)DSP上電后全速運行。


上一頁 1 2 3 下一頁

關(guān)鍵詞: 性能 研究 運行 代碼 DSP 提高 DSP

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉