當前位置:首頁 » 編程軟體 » dsp免費編譯器

dsp免費編譯器

發布時間: 2022-05-30 18:01:58

1. 關於DSP開發軟體CCS

其實差別不太大,都是TI自帶的,應該是跟你的CCS編譯器版本有關系,如果你想用c2812.gel,你可以把原來的f2812.gel去掉,再手動將c2812.gel添加進來就好了,gel文件在CCS的安裝目錄下,如:C:\CCStudio_v3.3PLA\cc\gel,其實對於一般用戶而言,gel文件用處不太大,關鍵看你調試中用不用的到,用不到完全可以不用加的。

2. 請問有沒有DSP晶元的免費編譯器

有啊,各晶元公司都自己提供。
比如TI公司的CCS,這些都是不收費的。

3. 在DSP的TMS320F2812編程中c編譯器の作用是什麼。在連鏈接器中使用的cmd文件的作用是什

DSP晶元以其極高的精度,性能及運算速度等無與倫比的優點使它得到了十分廣泛的應用,TMS320F2812是TI公司生產的到目前為止用於數字控制領域的最好的DSP晶元,在對它的模擬開發過程中,編譯器生成的代碼和數據要由鏈接器分配到合適的存儲空間,通常鏈接器的命令文件.cmd文件是由用戶自己編寫的,編寫不當,就會使模擬開發不能進行,TI公司雖然在《TMS320C28x Optimizing C/C++ Compiler User』s Guide 6》和《TMS320C28x Assembly Language Tools User』s Guide 6》做了介紹,但內容卻比較散亂而且要求讀者對整個開發系統要有較全面的認識,這對於初學者來說是比較困難的。下面以TMS320F2812晶元為例,結合具體的模擬調試實例加以說明使大家能夠既快速又准確的掌握.cmd文件的分配方法。

1存儲空間的配置
TMS320F2812的DSP存儲器分為三個獨立選擇的空間-程序空間、數據空間和I/O空間,其中程序存儲器存放待執行的指令和執行中所用的系數(常數),可使用片內或片外的RAM、ROM或EPROM等來構成;數據存儲器存放指令執行中產生的數據,可使用片內或片外
的RAM和ROM來構成;I/O存儲器存放與映象外圍介面相關的數據,也可以作為附加的數據存儲空間使用。表1是TMS320F2812的存儲空間分布。

2CMD文件的分配方法
TI公司新的匯編器和鏈接器創建的目標文件採用一種COFF(通用目標文件格式),該目標文件格式更利於模塊化編程,為管理代碼段和目標系統存儲器提供了強有力和靈活的編程方法。用戶可以通過編寫鏈接命令文件(.cmd文件)將鏈接信息放在一個文件中,以便在多次使用同樣的鏈接信息時調用。在命令文件中使用兩個十分有用的偽指令MEMORY和SECTIONS,來指定實際應用中的存儲器結構和進行地址的映射。Memory用來指定目標存儲器結構,Memory下可以通過PAGE選項配置地址空間,鏈接器把每一頁都當作一個獨立的存儲空間。通常情況下,PAGE0代表程序存儲器用來存放程序,PAGE1代表數據存儲器,用來存放數據。由編譯器生成的可重定位的代碼和數據塊叫做「SECTIONS」(段),SECTIONS用來控制段的構成與地址分配。對於不同的系統配置,「SECTION」的分配方式也不相同,鏈接器通過「SECTIONS」來控制地址的分配,所以「SECTIONS」的分配就成了配置.cmd文件的重要環節。以下是對「SECTIONS」的定義及分配的詳細介紹。
(1)
被初始化的「SECTIONS」(包括數據表和可執行代碼)
.text它包括所有的可執行代碼和常數,必須放在程序頁;
.cinit它包括初始化的變數和常量表,要求放在程序頁;
.pinit它包括全局構造器(C++)初始化的變數和常量表,要求放在程序頁;
.const它包括字元串、聲明、以及被明確初始化過的全局和靜態變數,要求放在低地址的數據頁;
.econst它是在使用大存儲器模式時使用的,包括字元串、聲明、以及被明確初始化過的全局變數和靜態變數,可以放在數據頁的任何地方。
.switch它包括為轉換聲明設置的表格,可以放在程序頁也可以放在低地址的數據頁。
(2)未被初始化的「SECTIONS」(為程序運行中創建和存放的變數在存儲器中保留空間)
.bss它為全局變數和靜態變數保留空間。在程序開始運行時,C導入路徑把數據從.cinit節復制出去然後存在.bss節中,要求放在低地址的數據頁;
.ebss它是在遠(far)訪問(只用於C)和大存儲模式下使用,它為全局變數和靜態變數保留空間。在程序開始運行時,C導入路徑把數據從.cinit段復制出去然後存在.ebss節中,可以放在數據頁的任何地方;
.stack為C系統堆棧保留空間,這部分存儲器為用來將聲明傳給函數及為局部變數留出空間,要求放在低地址的數據頁;
.system動態存儲器分配保留空間。這個空間用於malloc函數,如果不使用malloc函數,這個段的大小就是0,要求放在低地址的數據頁;
.esystem動態存儲器分配保留空間,這個空間用於外部malloc函數,如果不使用外部malloc函數,這個段的大小就是0,可以放在數據頁的任何地方。

3舉例說明.cmd文件的分配方法
以下是模擬調試串列通信介面SCI時的.cmd文件的分配,已經在TMS320F2812模擬調試中得到了很好的應用。
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

/*:*/

.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區分成兩部分,一部分用做存放程序放在PAGE0里,一部分用做存放數據放在PAGE1中以達到合理的分配;對實際模擬調試過程中的外圍幀frame0,frame1,frame2等的分配因為篇幅問題就不做具體介紹了。
4查看段的分配及使用情況
在cmd文件中包括各種各樣的鏈接器選項,每種選項代表不同的含義。其中,使用-m選項可以創建一個擴展名為.map的鏈接器(存儲器)分配映射文件,其語法為:-m filename(文件名)。鏈接器的map文件描述以下內容:
存儲器結構輸入和輸出段的定位在重新定位後外部符號的地址
通過map文件可以查看各段的分配情況,包括段的起始地址,使用的位元組數等配合cmd文件的使用,可確定各個段的使用情況,從而保證程序的正常運行和最小的空間使用。
5 VisualLinker可視化鏈接器
TI公司出品的DSP軟體開發環境CCS還提供了一種可視化生成存儲器配置文件的工具:VisualLinker可視化鏈接器。如果程序原來包含了一個鏈接器命令文件(.cmd文件),則當創
建可視化鏈接文件的時候,原來cmd文件中的內存配置仍然會被使用。如果讀者想修改內存配置,雙擊.rcp文件就會在CCS中打開可視化鏈接器的圖形界面,調整每個內存模塊的大小,直到認為合適,然後只需要重新連編,程序即可生成新的輸出文件,重復上面的步驟,直到出現滿意的結果。

4. 如何在DSP的編譯器CCS中使用位操作像<<、>>這種符號在CCS都會報錯。怎麼辦

請貼出具體代碼和報錯信息,CCS肯定是支持移位操作的。

5. 使用DSP編譯器ccs時,如何通過函數的調用處,快速找到函數的定義處。

CCS有這個功能啊!把滑鼠移動到一個函數上面,就顯示一個淡黃色的框,其中顯示函數名稱,點第一行的f符號就跳轉到函數的原型,即函數的正文,點第二行的fx符號就跳轉到這函數在頭文件中的聲明。

6. DSP編譯器如何進行優化

優化是一個很大的學問,c6000的編程工具指南(清華出版)大部分講的是這個,可以看看,貌似這本書不好買

7. DSP的編譯器什麼時候支持C++呢

錯啦,這對DSP來說並不需要,匯編、C語言完全夠用了,這個關鍵是要和硬體直接關聯,需要編寫類似於底層驅動程序,處理大量數據自然需要選擇有操作系統的處理器,那時候C++就可以用了,目前為止,沒有發現有哪個單片機或者DSP用C++,也沒有發現業內有這個呼聲

8. 基於DSP的嵌入式系統的軟體可以用什麼語言編程相應的開發工具有哪些

一般來說以C為主,匯編當然可以的,C++一般的編譯器也支持。其他語言很少見了。

9. DSP編譯問題

先看CCS設置
再看鏈接庫是否添加正確
還有CMD文件是否正確,有的實驗箱用了兩個CMD,頭文件一個,用戶代碼一個。一般開發板一個。
實在不行就把源碼發上來,包括你的包含文件,以及設置選項。
CCS編譯器報錯有很多種情況。

10. 如果要學習DSP和matlab前是不是要學C如果要的話該用那些C語言編譯器vc++6.0

不需要。完全是兩回事。
matlab和dsp都可以直接學,不需要學C

另外如果你學c的話,最好先不要用IDE,用虛擬機裝一個linux系統,用記事本編寫,用命令行編譯運行,這樣學基礎比較扎實,IDE太方便了,掩蓋了很多細節。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:646
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:937
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:633
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:822
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:732
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1067
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:300
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:161
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:853
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:764