日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TI公司dsp的cmd配置文件的说明

發(fā)布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TI公司dsp的cmd配置文件的说明 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

hit2015spring風(fēng)歡迎關(guān)注我的博客晨鳧追風(fēng)

本文為原創(chuàng)作品,未經(jīng)本人同意,禁止轉(zhuǎn)載,禁止用于商業(yè)用途!

這篇文章主要是兩年前用TMS320C6748的時候遇到的一點問題做的一些筆記,分享一下:

cmd文件主要是:

規(guī)定內(nèi)存分配的文件,其中malloc函數(shù)分配內(nèi)存,在堆中,在cmd文件中分配堆的空間,使得堆足夠大,存的下需要分配的空間。

1 CMD文件的分配方法

TI公司新的匯編器和鏈接器創(chuàng)建的目標文件采用一種COFF(通用目標文件格式),該目標文件格式更利于模塊化編程,為管理代碼段和目標系統(tǒng)存儲器提供了強有力和靈活的編程方法。用戶可以通過編寫鏈接命令文件(.cmd文件)將鏈接信息放在一個文件中,以便在多次使用同樣的鏈接信息時調(diào)用。在命令文件中使用兩個十分有用的偽指令MEMORY和SECTIONS,來指定實際應(yīng)用中的存儲器結(jié)構(gòu)和進行地址的映射。

Memory用來指定目標存儲器結(jié)構(gòu),Memory下可以通過PAGE選項配置地址空間,鏈接器把每一頁都當(dāng)作一個獨立的存儲空間。通常情況下,PAGE0代表程序存儲器用來存放程序,PAGE1代表數(shù)據(jù)存儲器,用來存放數(shù)據(jù)。

由編譯器生成的可重定位的代碼和數(shù)據(jù)塊叫做“SECTIONS”(段),SECTIONS用來控制段的構(gòu)成與地址分配。對于不同的系統(tǒng)配置,“SECTION”的分配方式也不相同,鏈接器通過“SECTIONS”來控制地址的分配,所以“SECTIONS”的分配就成了配置.cmd文件的重要環(huán)節(jié)。

以下是對“SECTIONS”的定義及分配的詳細介紹。

(1) 被初始化的“SECTIONS”(包括數(shù)據(jù)表和可執(zhí)行代碼)

.text 它包括所有的可執(zhí)行代碼和常數(shù),必須放在程序頁;

.cinit  它包括初始化的變量和常量表,要求放在程序頁;

.pinit 它包括全局構(gòu)造器(C++)初始化的變量和常量表,要求放在程序頁;

.const 它包括字符串、聲明、以及被明確初始化過的全局和靜態(tài)變量,要求放在低地址的數(shù)據(jù)頁;

.econst 它是在使用大存儲器模式時使用的,包括字符串、聲明、以及被明確初始化過的全局變量和靜態(tài)變量,可以放在數(shù)據(jù)頁的任何地方。

.switch 它包括為轉(zhuǎn)換聲明設(shè)置的表格,可以放在程序頁也可以放在低地址的數(shù)據(jù)頁。

(2)未被初始化的“SECTIONS”(為程序運行中創(chuàng)建和存放的變量在存儲器中保留空間)

.bss 它為全局變量和靜態(tài)變量保留空間。在程序開始運行時,C導(dǎo)入路徑把數(shù)據(jù)從.cinit節(jié)復(fù)制出去然后存在.bss節(jié)中,要求放在低地址的數(shù)據(jù)頁;

.ebss 它是在遠(far)訪問(只用于C)和大存儲模式下使用,它為全局變量和靜態(tài)變量保留空間。在程序開始運行時,C導(dǎo)入路徑把數(shù)據(jù)從.cinit段復(fù)制出去然后存在.ebss節(jié)中,可以放在數(shù)據(jù)頁的任何地方;

.stack 為C系統(tǒng)堆棧保留空間,這部分存儲器為用來將聲明傳給函數(shù)及為局部變量留出空間,要求放在低地址的數(shù)據(jù)頁;

.system 動態(tài)存儲器分配保留空間。這個空間用于malloc函數(shù),如果不使用malloc函數(shù),這個段的大小就是0,要求放在低地址的數(shù)據(jù)頁;

.esystem 動態(tài)存儲器分配保留空間,這個空間用于外部malloc函數(shù),如果不使用外部malloc函數(shù),這個段的大小就是0,可以放在數(shù)據(jù)頁的任何地方。

2 舉例說明.cmd文件的分配方法

以下是仿真調(diào)試串行通信接口SCI時的.cmd文件的分配,已經(jīng)在TMS320F2812仿真調(diào)試中得到了很好的應(yīng)用。

MEMORY

{PAGE0: /ProgramMemory/

RAMH0:origin=0x3F8000,length=0x001000

RAML0:origin=0x008000,length=0x001000

RAML1:origin=0x009000,length=0x001000

ROM:

origin=0x3FF000,length=0x000FC0

RESET: origin=0x3FFFC0,length=0x000002M

VECTORS:origin=0x3FFFC2,length=0x00003EM

PAGE1:/DataMemory/

RAMM0:origin=0x000000,length=0x000400

RAMM1:origin=0x000400,length=0x000400

RAMH0:origin=0x3F9000,length=0x001000

,,,

}

SECTIONS

{/Allocateprogramareas:/

.cinit :>RAMH0 PAGE=0

.pinit :>RAMH0 PAGE=0

.text :>RAMH0 PAGE=0

.reset :>RESET,PAGE=0,TYPE=DSECT

Vectors :>VECTORS,PAGE=0,TYPE=DSEC

/Allocateuninitalizeddatasections:/

.stack :>RAMM0 PAGE=1

.ebss :>RAMH0 PAGE=1

.esysmem :>RAMH0 PAGE=1

.econst :>RAMM1 PAGE=1

.switch :>RAMM1 PAGE=1

,,,

}

為充分利用18k×16位的SARAM,本例將高地址的8k×16位的H0 SARAM區(qū)分成兩部分,一部分用做存放程序放在PAGE0里,一部分用做存放數(shù)據(jù)放在PAGE1中以達到合理的分配;對實際仿真調(diào)試過程中的外圍幀frame0,frame1,frame2等的分配因為篇幅問題就不做具體介紹了。

3 查看段的分配及使用情況

在cmd文件中包括各種各樣的鏈接器選項,每種選項代表不同的含義。其中,使用-m選項可以創(chuàng)建一個擴展名為.map的鏈接器(存儲器)分配映射文件,其語法為:-m filename(文件名)。鏈接器的map文件描述以下內(nèi)容:

存儲器結(jié)構(gòu)

輸入和輸出段的定位

在重新定位后外部符號的地址

通過map文件可以查看各段的分配情況,包括段的起始地址,使用的字節(jié)數(shù)等配合cmd文件的使用,可確定各個段的使用情況,從而保證程序的正常運行和最小的空間使用。

4 VisualLinker可視化鏈接器

TI公司出品的DSP軟件環(huán)境CCS還提供了一種可視化生成存儲器配置文件的工具:VisualLinker可視化鏈接器。

如果程序原來包含了一個鏈接器命令文件(.cmd文件),則當(dāng)創(chuàng) 建可視化鏈接文件的時候,原來cmd文件中的內(nèi)存配置仍然會被使用。如果讀者想修改內(nèi)存配置,雙擊.rcp文件就會在CCS中打開可視化鏈接器的圖形界面,調(diào)整每個內(nèi)存模塊的大小,直到認為合適,然后只需要重新連編,程序即可生成新的輸出文件,重復(fù)上面的步驟,直到出現(xiàn)滿意的結(jié)果。

5 總結(jié)

不同的DSP芯片內(nèi)集成的存儲器大小各異,但其配置方式是類似的。大家可通過查閱DSP芯片的數(shù)據(jù)手冊,了解芯片內(nèi)部存儲空間大小。在實際的配置過程中,可根據(jù)開發(fā)程序的實際代碼,正確的劃分程序和數(shù)據(jù)空間中各段的大小,使其空間配置達到最優(yōu)。

福利答謝大家!

感謝您閱讀本篇文章,對此特別發(fā)放一個無門檻的現(xiàn)金紅包,打開支付寶掃碼領(lǐng)取,可以領(lǐng)到錢的哦!

總結(jié)

以上是生活随笔為你收集整理的TI公司dsp的cmd配置文件的说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。