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