嵌入式C語言開發(fā)ADSP21XX系列DSP
來源:單片機(jī)及嵌入式系統(tǒng)應(yīng)用; 作者:胡 楷 潘孟春 單慶曉摘要:詳細(xì)介紹使用VisualDSP開發(fā)工具進(jìn)行ADSP21XX的C語言編程的方法;分析其C語言運(yùn)行庫的結(jié)構(gòu),并且結(jié)合實(shí)例介紹C語言工具的使用方法,包括C語言與匯編語言混合編程的方法,從C運(yùn)行庫提取代碼用于自己的匯編語言程序的方法、修改運(yùn)行庫的源代碼以適應(yīng)自己開發(fā)需要的方法等。
關(guān)鍵詞:DSP VisualDSP 嵌入式C語言 匯編語言
引言長期以來,在DSP系統(tǒng)開發(fā)中,一直把匯編語言作為主要的開發(fā)工具;但匯編語言與自然語言差距很大,不易常,而且匯編語言是依賴于處理器的,不利于軟件的可重復(fù)利用和系統(tǒng)的穩(wěn)定性,程序不易移植,給開發(fā)工作帶來了很大的困難。隨著嵌入式系統(tǒng)復(fù)雜程度的不斷提高,用匯編語言編寫一個(gè)巨大的程度將是困難,甚至是不可能的。為此,AD公司推出了針對(duì)ADSP21XX系列DSP的嵌入式C和C++語言集成開發(fā)工具,分別是VisualDSP和VisualDSP++系列,這些開發(fā)工具提供了C語言和C++語音的開發(fā)功能。以下就以筆者在實(shí)際開發(fā)中的一些經(jīng)驗(yàn),結(jié)合VisualDSP6.1版本,介紹用C語言開發(fā)VisualDSP6.1版本,介紹用C語言開發(fā)ADSP21XX的方法。VisualDSP提供了一個(gè)開放源碼軟件組織GNU的C編譯器,和一套成熟穩(wěn)定的C運(yùn)行時(shí)間庫(C Run time Library)等。GNU的編譯器一向以編譯效率高著稱,在編譯后的代碼長度和運(yùn)行速度方面非常優(yōu)秀;C運(yùn)行時(shí)間庫則把很多重復(fù)性的工作,如浮點(diǎn)運(yùn)行、三角函數(shù)、FFT等作為C語言的庫函數(shù),提供給用戶,大大提高了用戶的開發(fā)效率和程序的穩(wěn)定性,降低了開發(fā)難度,另外,由于把這些庫函數(shù)的源代碼提供給了用戶,還提高了C語言與匯編語言之間的透明性,使用戶開發(fā)的程序兼具兩者的優(yōu)點(diǎn)。
1 Visual DSP簡介VisualDSP是AD公司的DSP開發(fā)工具,主要由可執(zhí)行文件、庫文件和各種幫助文檔組成。6.1版本還帶有一個(gè)基于圖形界面,針對(duì)21XX系列DSP的軟件仿真和調(diào)試工具。
VisualDSP的可執(zhí)行文件包括匯編、編譯、鏈接工具以及可執(zhí)行文件重新格式化工具等,見表1。
表1 VisualDSP的可執(zhí)行文件及用途
可執(zhí)行文件名
用;;;;; 途
Asmpp.exe*
匯編預(yù)處理程序
Asm2.exe*
21XX系列匯編程序的匯編程序
Asm21.exe
21XX系列命令行匯編程序
Ld21.exe
21XX系列鏈接工具
G21.exe
基于GNU的21XX系列C編譯器
Bld21.exe
系統(tǒng)編譯工具,產(chǎn)生相應(yīng)于不同硬件體系的.ACH文件
Lib21.exe
21XX系列的庫管理工具
Hspl21.exe
把21XX系列可執(zhí)行文件變成HIP口可加載的格式
Spl21.exe
把21XX系列可執(zhí)行文件變成PROM可燒寫的格式