99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何提高嵌入式應(yīng)用設(shè)計(jì)中的DSP代碼運(yùn)行性能

電子設(shè)計(jì) ? 來(lái)源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-08-07 08:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 引言

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

2 問(wèn)題分析及設(shè)計(jì)方案

由于應(yīng)用程序在Flash中運(yùn)行速度遠(yuǎn)低于在RAM中,因此在復(fù)雜嵌入式應(yīng)用中會(huì)出現(xiàn)控制系統(tǒng)響應(yīng)遲緩、通訊異常、I/O操作緩慢等問(wèn)題。為了避免這些問(wèn)題,只能讓程序在RAM中運(yùn)行。TI公司的TMS320C2000系列DSP有2種工作模式:微處理器模式和微控制器模式。當(dāng)DSP處于微控制器模式時(shí),在RAM中程序運(yùn)行速度達(dá)到峰值,但掉電后程序丟失,系統(tǒng)無(wú)法重新自動(dòng)運(yùn)行,因此這種程序運(yùn)行方式僅適用于仿真調(diào)試階段。因此,DSP必須工作在微處理器模式下,使用片內(nèi)Flash作為運(yùn)行程序的存儲(chǔ)和運(yùn)行介質(zhì),才能保證系統(tǒng)上電后自動(dòng)運(yùn)行。但其程序運(yùn)行效率低。因此必須把這2種工作模式相結(jié)合:首先將應(yīng)用程序固化到片內(nèi)Flash存儲(chǔ)器,當(dāng)系統(tǒng)上電后由專門設(shè)計(jì)的裝載器(Bootloader) 負(fù)責(zé)將應(yīng)用程序南Flash搬移到RAM,然后Bootloader將DSP控制權(quán)交給應(yīng)用程序,從而實(shí)現(xiàn)DSP運(yùn)行速度最高和上電后應(yīng)用程序自動(dòng)運(yùn)行,解決了因程序在不同介質(zhì)的不同效率所導(dǎo)致的系統(tǒng)響應(yīng)遲緩、通訊異常、I/O操作緩慢等問(wèn)題。

以TMS320LF2407 DSP為例進(jìn)行說(shuō)明:該DSP具有獨(dú)立的數(shù)據(jù)存儲(chǔ)空間和數(shù)據(jù)總線,以及程序存儲(chǔ)空間和程序總線。只有程序空間的程序才能被DSP視為是可執(zhí)行程序,數(shù)據(jù)空間上的程序?qū)⒈籇SP視為操作數(shù)據(jù),因此將應(yīng)用程序直接從片內(nèi)Flash拷貝到數(shù)據(jù)空間的RAM后應(yīng)用程序是不能運(yùn)行的。若使拷貝后的應(yīng)用程序能夠被 DSP視為可執(zhí)行程序還必須做一些輔助工作。

通過(guò)對(duì)TMS320LF2407的存儲(chǔ)映射結(jié)構(gòu)分析可發(fā)現(xiàn):程序空間和數(shù)據(jù)空間的擴(kuò)展區(qū)域有部分地址可配置成相同存儲(chǔ)介質(zhì)(Flash或者RAM),通過(guò)某種辦法可以實(shí)現(xiàn)共享,也就是說(shuō)DSP可以將從Flash中拷貝到共享RAM的應(yīng)用程序視為可執(zhí)行代碼。

3 設(shè)計(jì)方案實(shí)施

3.1 TMS320LF2407存儲(chǔ)空間配置及CMD文件編寫

為實(shí)現(xiàn)程序空間與數(shù)據(jù)空間共享RAM的存儲(chǔ)器配置方案,首先要熟悉C語(yǔ)言7個(gè)存儲(chǔ)段對(duì)存儲(chǔ)介質(zhì)的要求,其具體要求如表1所示。

如何提高嵌入式應(yīng)用設(shè)計(jì)中的DSP代碼運(yùn)行性能

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

其次由于存儲(chǔ)空間使用裝載與運(yùn)行分離的配置模式,因此必須重新設(shè)計(jì)鏈接文件(CMD文件)。在設(shè)計(jì)新的CMD文件之前,首先介紹常用的分離配置鏈接命令指示器:“.label”定義一個(gè)可重定位代碼段標(biāo)簽,該標(biāo)簽表明代碼段內(nèi)部地址都是相對(duì)的,在鏈接時(shí)重新定義該段分配的首地址。相應(yīng)的段地址為“首地址+ 段內(nèi)偏移地址”。利用該匯編指示器可提供代碼裝載地址?!埃甮lobal”匯編指示器定義全局符號(hào),該符號(hào)表示全局地址,鏈接器利用該匯編指示器定義的運(yùn)行時(shí)全局地址,為程序提供在RAM中運(yùn)行時(shí)的人口地址?!埃眳R編指示器表示當(dāng)前代碼的運(yùn)行地址,它用來(lái)幫助計(jì)算運(yùn)行代碼的長(zhǎng)度。在CMD文件中定義可執(zhí)行代碼的運(yùn)行時(shí)首地址標(biāo)簽_fun_run和代碼長(zhǎng)度標(biāo)簽_fun_len;在存儲(chǔ)空間配置時(shí)定義COPYCODE段用來(lái)裝載應(yīng)用程序的可執(zhí)行代碼:在存儲(chǔ)空間配置時(shí)定義DATA0段做為應(yīng)用程序可執(zhí)行代碼段的運(yùn)行介質(zhì)。

具體存儲(chǔ)空間配置及CMD文件編寫代碼如下:

如何提高嵌入式應(yīng)用設(shè)計(jì)中的DSP代碼運(yùn)行性能

如何提高嵌入式應(yīng)用設(shè)計(jì)中的DSP代碼運(yùn)行性能

3.2 Bootloader裝載器軟件及硬件設(shè)計(jì)

設(shè)計(jì)Bootloader裝載器時(shí)應(yīng)注意兩點(diǎn):首先關(guān)閉看門狗,否則可能因?yàn)榘嵋茣r(shí)間過(guò)長(zhǎng)導(dǎo)致DSP被不斷復(fù)位,系統(tǒng)無(wú)法正常工作;必須定義 Bootloader裝載器的入口標(biāo)簽_c_int0和出口標(biāo)簽wfc_int0,實(shí)現(xiàn)Bootloader裝載完成搬移工作后順利進(jìn)入用戶應(yīng)用程序。

考慮到DSP上電工作順序:從系統(tǒng)復(fù)位指令處跳轉(zhuǎn)至運(yùn)行時(shí)支持代碼;創(chuàng)建C語(yǔ)言運(yùn)行環(huán)境;用戶程序入口 main();完成用戶初始化及應(yīng)用代碼。因此負(fù)責(zé)從Flash將應(yīng)用程序代碼拷貝到RAM的Bootloader裝載器必須在恰當(dāng)?shù)臅r(shí)間工作,否則應(yīng)用程序不能上電自動(dòng)運(yùn)行。由DSP上電工作順序可以發(fā)現(xiàn),系統(tǒng)上電復(fù)位時(shí)的復(fù)位地址是,固定的但跳轉(zhuǎn)指令所指的地址是由用戶指定的,也就是說(shuō),可以讓該復(fù)位跳轉(zhuǎn)指令指向所設(shè)計(jì)的Bootloader裝載器的首地址完成代碼搬移工作(其工作原理見圖1),然后Bootloader裝載器將DSP的控制權(quán)交給運(yùn)行支持庫(kù),完成C語(yǔ)言環(huán)境建立并進(jìn)入用戶程序入口main()開始用戶程序。為此必須對(duì)運(yùn)行支持庫(kù)做如下修改:

從運(yùn)行支持庫(kù)rts.rc源文件中提取boot.a(chǎn)sm.將boot.a(chǎn)sm的入口地址_c_int0修改為wfc_int0地址,重新編譯boot. asm生成boot.obj文件,把boot.obj歸檔到C語(yǔ)言運(yùn)行支持庫(kù)rts.2xx.1ib。將修改后的運(yùn)行支持庫(kù)添加到工程中,實(shí)現(xiàn)Boot- loader裝載器先于運(yùn)行支持庫(kù)代碼執(zhí)行。

如何提高嵌入式應(yīng)用設(shè)計(jì)中的DSP代碼運(yùn)行性能

Bootloader裝載器利用裝載地址、運(yùn)行地址以及鏈接器提供的代碼長(zhǎng)度等信息,使用讀表指令“TBLR”將代碼從程序空間拷貝到數(shù)據(jù)空間,然后跳轉(zhuǎn)到運(yùn)行支持庫(kù)入口地址開始執(zhí)行程序。DSP的這種搬移指令特點(diǎn)僅適合將數(shù)據(jù)表從程序空間拷貝到數(shù)據(jù)空間,要實(shí)現(xiàn)全部設(shè)計(jì)功能必須配合相應(yīng)的硬件設(shè)計(jì),由 TMS320LF2407DSP的存儲(chǔ)器映射結(jié)構(gòu)可以看出程序空間與數(shù)據(jù)空間是物理分離的,即有3個(gè)獨(dú)立的空間片選信號(hào)PS、DS、CS。為實(shí)現(xiàn)RAM共享,首先必須將PS和DS信號(hào)進(jìn)行“與“操作,然后將其輸出信號(hào)作為共享RAM的片選信號(hào),實(shí)現(xiàn)程序空間與數(shù)據(jù)空間的統(tǒng)一編址。根據(jù) TMS320LF2407DSP的存儲(chǔ)器映射結(jié)構(gòu),具體的存儲(chǔ)空間配置如下:0x0000~0x7FFF片上RAM、外設(shè)寄存器和保留的地址區(qū),該區(qū)域必須作為數(shù)據(jù)地址使用;利用圖2所示的硬件結(jié)構(gòu)實(shí)現(xiàn)0x8000~0xFFFF區(qū)域程序空間和數(shù)據(jù)空間共享RAM。共享RAM配置如下:數(shù)據(jù)區(qū) 0x8000~0xBFFF;程序區(qū)0xC000~0xFFFF。

如何提高嵌入式應(yīng)用設(shè)計(jì)中的DSP代碼運(yùn)行性能

這里的硬件結(jié)構(gòu)配合Bootloader裝載器和特別設(shè)計(jì)的CMD文件實(shí)現(xiàn)了DSP運(yùn)行速度最大和上電后代碼自動(dòng)運(yùn)行,解決了在復(fù)雜應(yīng)用情況下控制系統(tǒng)響應(yīng)遲緩、通訊異常等問(wèn)題。

具體Bootloader裝載器設(shè)計(jì)代碼如下:

如何提高嵌入式應(yīng)用設(shè)計(jì)中的DSP代碼運(yùn)行性能

4 測(cè)試結(jié)果

該方案在某型防空武器火力控制分系統(tǒng)的實(shí)踐中表現(xiàn)良好。通過(guò)提高DSP程序運(yùn)行效率成功解決了因控制系統(tǒng)實(shí)時(shí)多任務(wù)所導(dǎo)致的通訊異常問(wèn)題,避免了不必要的硬件升級(jí)。經(jīng)實(shí)驗(yàn)對(duì)比發(fā)現(xiàn):當(dāng)系統(tǒng)有5個(gè)毫秒級(jí)實(shí)時(shí)任務(wù)同時(shí)工作時(shí),采用Flash運(yùn)行方式的 TTCAN通訊接口每毫秒最多可發(fā)送2幀數(shù)據(jù),而采用本設(shè)計(jì)方案每毫秒最多可發(fā)送6幀數(shù)據(jù),代碼運(yùn)行效率提高了3倍。

5 結(jié)束語(yǔ)

該設(shè)計(jì)方案不僅成功解決了程序在Flash中運(yùn)行效率低所導(dǎo)致的各種異常問(wèn)題,同時(shí)還避免了不必要的處理器升級(jí)所帶來(lái)的成本和開發(fā)風(fēng)險(xiǎn)。其設(shè)計(jì)思想可以推廣到其他類似的應(yīng)用中,從而最大限度的利用現(xiàn)有硬件基礎(chǔ)提高嵌入式系統(tǒng)的性能。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19890

    瀏覽量

    235128
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    556

    文章

    8157

    瀏覽量

    357437
  • 嵌入式
    +關(guān)注

    關(guān)注

    5150

    文章

    19665

    瀏覽量

    317455
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何提高嵌入式代碼質(zhì)量?

    的錯(cuò)誤和改進(jìn)點(diǎn),提高代碼的可讀性和健壯性。 4. 版本控制:使用版本控制系統(tǒng)如Git,可以追蹤代碼變更并輕松進(jìn)行團(tuán)隊(duì)協(xié)作,確保每個(gè)版本都是可控和可重現(xiàn)的。 優(yōu)化性能和資源利用率
    發(fā)表于 01-15 10:48

    嵌入式機(jī)器視覺(jué)系統(tǒng)有什么特性?怎么優(yōu)化?

    介紹了基于ARM+DSP架構(gòu)的嵌入式機(jī)器視覺(jué)系統(tǒng)的特性,分析了制約嵌入式機(jī)器視覺(jué)系統(tǒng)性能的因素。從操作系統(tǒng)和應(yīng)用程序方面,討論了嵌入式機(jī)器視
    發(fā)表于 03-11 06:47

    什么是嵌入式系統(tǒng)?

    綜合性嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。簡(jiǎn)單地說(shuō),嵌入式系統(tǒng)集系統(tǒng)的 應(yīng)用軟件 與硬件于 一體 ,類似于 PC BIOS 的工作方式,具有 軟件代碼 小、高度自動(dòng)化、 響應(yīng)速度 快等 特點(diǎn) ,特別適合于
    發(fā)表于 04-16 09:53

    嵌入式和通用DSP之間的差別在哪

    DSP在內(nèi)的多內(nèi)核嵌入結(jié)構(gòu)是提高整體數(shù)據(jù)處理能力的一個(gè)有效方案。如何更高速、高效地協(xié)調(diào)各個(gè)內(nèi)核之間的工作成為這項(xiàng)工作的核心,與此相關(guān)的嵌入式軟件的
    發(fā)表于 12-15 06:01

    如何調(diào)試嵌入式代碼?

    我們?cè)谶M(jìn)行嵌入式系統(tǒng)開發(fā)調(diào)試時(shí),受限于嵌入式芯片資源和性能,一般采用遠(yuǎn)程調(diào)試。在調(diào)試嵌入式底層代碼時(shí),gdbserver 無(wú)法
    發(fā)表于 12-17 06:32

    如何在嵌入式設(shè)備上運(yùn)行性能Java

    如何在嵌入式設(shè)備上運(yùn)行性能Java
    發(fā)表于 03-28 09:43 ?16次下載

    嵌入式技術(shù)設(shè)計(jì)專用DSP系統(tǒng)研究

    分析了用嵌入式技術(shù)設(shè)計(jì)專用DSP處理系統(tǒng)的一些基本問(wèn)題。分析結(jié)果指出,嵌入式技術(shù)的在專用DSP處理系統(tǒng)的應(yīng)用設(shè)計(jì)可以發(fā)揮巨大的作用,是
    發(fā)表于 05-09 14:15 ?25次下載

    提高DSP代碼運(yùn)行性能的研究

    傳統(tǒng)嵌入式應(yīng)用設(shè)計(jì)通常是將程序直接固化到DSP內(nèi)部的Flash存儲(chǔ)器運(yùn)行,程序運(yùn)行效率較低,不能充分發(fā)揮DSP
    發(fā)表于 12-27 15:34 ?25次下載

    如何優(yōu)化嵌入式DSP應(yīng)用的功耗

    如何優(yōu)化嵌入式 DSP 應(yīng)用的功耗 采用軟硬件技術(shù)可以提高電源效率,而使用內(nèi)置電源管理 API 的 DSP RTOS 更容易實(shí)現(xiàn)上述目的。 作者:Scott Gary,德州
    發(fā)表于 04-22 11:44 ?810次閱讀

    嵌入式DSP在家電的應(yīng)用

    本文將從嵌入式DSP電機(jī)控制芯片的基本特征開始,介紹一下基于DSP的磁場(chǎng)定向控制和擴(kuò)展卡爾曼濾波算法
    發(fā)表于 09-24 00:43 ?1001次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>DSP</b>在家電<b class='flag-5'>中</b>的應(yīng)用

    嵌入式DSP模塊和FPGA構(gòu)架為基礎(chǔ)的提高無(wú)線信號(hào)處理性能的子系統(tǒng)設(shè)計(jì)

    您可以顯著提高無(wú)線系統(tǒng)中信號(hào)處理功能的性能。怎樣提高呢?有效方法是利用FPGA結(jié)構(gòu)的靈活性和目前受益于并行處理的FPGA架構(gòu)嵌入式
    發(fā)表于 07-17 11:48 ?1067次閱讀
    以<b class='flag-5'>嵌入式</b><b class='flag-5'>DSP</b>模塊和FPGA構(gòu)架為基礎(chǔ)的<b class='flag-5'>提高</b>無(wú)線信號(hào)處理<b class='flag-5'>性能</b>的子系統(tǒng)設(shè)計(jì)

    關(guān)于嵌入式代碼的致命漏洞

    輸入可以被制作成“包含代碼”,并且該程序可以被欺騙來(lái)執(zhí)行該代碼代碼注入缺陷意味著黑客可以劫持現(xiàn)有進(jìn)程,并以與原始進(jìn)程相同的權(quán)限執(zhí)行任何他們喜歡的代碼。 在許多
    的頭像 發(fā)表于 01-06 15:13 ?2032次閱讀

    DSP嵌入式系統(tǒng)的應(yīng)用實(shí)例

    DSP嵌入式系統(tǒng)的應(yīng)用實(shí)例(嵌入式開發(fā)工具軟件)-該文檔為DSP嵌入式系統(tǒng)
    發(fā)表于 07-30 13:09 ?22次下載
    <b class='flag-5'>DSP</b>在<b class='flag-5'>嵌入式</b>系統(tǒng)<b class='flag-5'>中</b>的應(yīng)用實(shí)例

    DSP與MCU在嵌入式系統(tǒng)的應(yīng)用

    DSP與MCU在嵌入式系統(tǒng)的應(yīng)用(嵌入式開發(fā)解決方案)-該文檔為DSP與MCU在嵌入式系統(tǒng)
    發(fā)表于 07-30 13:11 ?12次下載
    <b class='flag-5'>DSP</b>與MCU在<b class='flag-5'>嵌入式</b>系統(tǒng)<b class='flag-5'>中</b>的應(yīng)用

    嵌入式代碼高效運(yùn)行指南

    嵌入式C語(yǔ)言之所以經(jīng)久不衰,在于它的運(yùn)行效率很高,想要高效運(yùn)行代碼,除了編譯器幫忙優(yōu)化,關(guān)鍵還要靠自己“優(yōu)化”代碼。
    的頭像 發(fā)表于 01-06 15:32 ?1247次閱讀