徐 哲,王中秀,全奎旺沈陽(yáng)理工大學(xué),遼寧沈陽(yáng) 100168
?
嵌入式DSP系統(tǒng)C語(yǔ)言硬件編程技術(shù)探討
徐哲,王中秀,全奎旺
沈陽(yáng)理工大學(xué),遼寧沈陽(yáng)100168
摘要隨著科技的不斷發(fā)展,嵌入式系統(tǒng)被廣泛應(yīng)用于各處,現(xiàn)階段,最具有代表性的嵌入式系統(tǒng)為DSP。因此,本文將從嵌入式DSP系統(tǒng)基本硬件入手,結(jié)合C語(yǔ)言程序最常用調(diào)試方法與硬件編程技術(shù),并研究將C語(yǔ)言轉(zhuǎn)化為DSP代碼的過(guò)程。
關(guān)鍵詞嵌入式DSP系統(tǒng);C語(yǔ)言;硬件編程技術(shù)
以便獲得適用于人們使用的信號(hào)形式,而嵌入式DSP系統(tǒng)則是將DSP作為中央處理器,將硬件與軟件組合在一起,該系統(tǒng)體積較小,可以很快完成信號(hào)處理,其算法也較為靈活,性能也很穩(wěn)定,所以在儀器研制與電子產(chǎn)品中應(yīng)用較多。C語(yǔ)言是嵌入式DSP系統(tǒng)的重要組成部分,其硬件編程技術(shù)也是現(xiàn)代研究重點(diǎn),因此,有必要了解C語(yǔ)言硬件程序開(kāi)發(fā)、調(diào)試以及代碼轉(zhuǎn)化。
1.1DSP基本結(jié)構(gòu)
一般來(lái)講,嵌入式DSP系統(tǒng)硬件編制過(guò)程是有一定規(guī)律可循的,通常是根據(jù)時(shí)間進(jìn)行排列,其主要構(gòu)成部分有以下幾種:A/D轉(zhuǎn)換、DSP芯片、D/A轉(zhuǎn)換、通信板塊以及顯示板塊,此外還有一些輔助板塊,如電源管理等[1]。
1.2DSP芯片內(nèi)部結(jié)構(gòu)
盡管DSP芯片內(nèi)部結(jié)構(gòu)較為復(fù)雜,但開(kāi)發(fā)者并不需要全面了解其結(jié)構(gòu),只要簡(jiǎn)單了解即可,以便在編程時(shí)使用。在DSP芯片中主要由兩部分構(gòu)成,一部分是以中央處理器為主的內(nèi)核,另一部分是以外部輔助設(shè)備為主的外部設(shè)備。將各個(gè)模塊組合在一起,就成為了嵌入式DSP系統(tǒng),通常將這一結(jié)構(gòu)稱之為哈弗結(jié)構(gòu)。在該系統(tǒng)中,數(shù)據(jù)存儲(chǔ)與程序存儲(chǔ)具有獨(dú)立性,與兩者對(duì)應(yīng)的硬件總線也就兩種。外部設(shè)備主要指芯片以外的硬件設(shè)備,其功能也多種多樣,經(jīng)過(guò)相互配合以后就可以使這些應(yīng)用功能得以完善,之所以其功能能夠完善主要在于系統(tǒng)中應(yīng)用了這些外部設(shè)備,使得芯片運(yùn)行速度得以顯著提升,DSP功能也隨之增強(qiáng)。
1.3DSP芯片存儲(chǔ)器圖及其編制方式
要編寫(xiě)DSP程序就一定要了解DSP芯片存儲(chǔ)器及其編制方式,它們都有助于DSP編程。DSP存儲(chǔ)空間有兩種,一種是RAM,另一種是ROM,這些存儲(chǔ)方式不僅有數(shù)據(jù)空間與程序空間,還有I/O空間,而I/O空間又由數(shù)據(jù)空間與程序空間兩部分構(gòu)成,且它們是相互獨(dú)立的,兩者的編制是相同的,唯一不同的是兩者的地址代表不同,程序空間的每個(gè)地址代表的是一個(gè)字節(jié),而存儲(chǔ)空間每個(gè)地址所代表的則是16bit字[2]。
現(xiàn)階段,硬件編程最常用的編程方式有3種,分別為C語(yǔ)言、匯編語(yǔ)言以及可視化編程[3]。其中與DSP代碼最為相似的應(yīng)匯編語(yǔ)言,但它也有很多缺陷存在,最大的不足就是難以被人們理解,由于芯片系列的不同也就意味著需要使用不同的匯編指令,由此開(kāi)發(fā)而來(lái)的程序更是無(wú)法被應(yīng)用到各處,可見(jiàn),匯編語(yǔ)言只能被應(yīng)用于部分程序編寫(xiě)中,并不能應(yīng)用于硬件控制大量使用中。而可視化編程則是最近幾年才能研發(fā)并使用的編程模式,一般用于大規(guī)模程序開(kāi)發(fā)中,要學(xué)習(xí)該編程依然存在很大困難,并不適用于初學(xué)者使用。C語(yǔ)言則綜合了以上兩種編程方式的優(yōu)缺點(diǎn),靈活性較好,也就意味著它能夠被應(yīng)用到多種硬件編程中,這與C語(yǔ)言自身特點(diǎn)有很大關(guān)系。C語(yǔ)言屬于高級(jí)語(yǔ)言,便于初學(xué)者學(xué)習(xí)使用,其編程模式為從上至下,可移植性也很強(qiáng),加之其較為靈活更是方便讀寫(xiě)硬件寄存器中的數(shù)值。
在CCS系統(tǒng)中運(yùn)行C語(yǔ)言程序一定要經(jīng)過(guò)程序調(diào)試才可以,主要步驟由以下幾部分構(gòu)成:第一,將編制好的可執(zhí)行文件調(diào)入進(jìn)來(lái);第二,將部分程序分成幾段,一邊運(yùn)行程序一邊觀察各個(gè)斷點(diǎn)值;第三,由于這些值一般分布在存儲(chǔ)器中,就要細(xì)致分析該數(shù)據(jù),并多次重復(fù)進(jìn)行這項(xiàng)工作,直至程序預(yù)期功能完成。
C語(yǔ)言程序最常用的調(diào)試方法有兩種:首先,通過(guò)Watch Window查看C語(yǔ)言程序變量。在利用CCS時(shí),可以通過(guò)點(diǎn)擊其集成開(kāi)發(fā)環(huán)境中的View-Watch Window開(kāi)啟觀察窗,其中的第一個(gè)標(biāo)簽就是watch locals,這里就可以將程序光標(biāo)所在位置中的函數(shù)變量名稱與數(shù)值顯示出來(lái);其次,借助Memory Window了解I/O空間中寄存器值。雖然Watch Window也可以看到變量,但卻看不到I/O空間,如果要觀察值,就需要點(diǎn)擊Viewmemory,當(dāng)窗口彈出以后,就可以選擇滿足自身要求的存儲(chǔ)空間地址,選定以后點(diǎn)擊OK便會(huì)彈出用于觀看存儲(chǔ)空間的小窗口,一旦值發(fā)生變化,就會(huì)以紅色字體方式顯示出來(lái)。
對(duì)于C語(yǔ)言程序來(lái)說(shuō),它是一種較為通用的語(yǔ)言,能夠被應(yīng)用到各種處理器中,但在處理器運(yùn)行期間一定要有規(guī)定代碼才可以保證芯片始終處于正常運(yùn)行狀態(tài),所以,但C語(yǔ)言編程完成以后,應(yīng)實(shí)現(xiàn)轉(zhuǎn)碼,但轉(zhuǎn)換過(guò)程應(yīng)滿足規(guī)定軟件才可以。如在DSP系統(tǒng)中多用CCS轉(zhuǎn)換代碼,CCS是軟件開(kāi)發(fā)者最常用的軟件。在轉(zhuǎn)換DSP應(yīng)用時(shí),軟件開(kāi)發(fā)者需要利用集成開(kāi)放環(huán)境生成項(xiàng)目,該項(xiàng)目一般由以下幾部分構(gòu)成,主要有頭文件、庫(kù)文件以及源文件等內(nèi)容,后兩種文件與其他編程軟件中所包括的文件相同。如DSP基本歷程多數(shù)都與源文件有一定關(guān)系,而以結(jié)構(gòu)語(yǔ)句為代表的程序具體語(yǔ)句則以頭文件為主。庫(kù)文件屬于廠家自定義程序,是廠家依照自己所生產(chǎn)的芯片硬件性能編制而成的,以TMs32oC55xDSp芯片為例,廠家參照芯片型號(hào)制定出了庫(kù)文件,由于其處于DSP程序中,就需要將DSP作為開(kāi)頭,并將rts55x. ilb庫(kù)文件包括在內(nèi),這主要是由于其已經(jīng)成為連接C語(yǔ)言與DSP代碼的重要方式,如在CCS文件中原本就涵蓋庫(kù)文件,在編程時(shí)只需在開(kāi)頭使用即可,一般來(lái)講,main()為C語(yǔ)言程序默認(rèn)入口,在編寫(xiě)DSP程序階段也一定要將該庫(kù)文件囊括進(jìn)來(lái),這都是為了滿足rts55x. ilb所制定的要求。而鏈接文件則是由開(kāi)發(fā)者自行編寫(xiě)的文件,其作用相對(duì)較為獨(dú)特,一般由定位程序塊與數(shù)據(jù)塊兩部分構(gòu)成[4]。但編寫(xiě)鏈接文件十分困難,不僅需要掌握一定的軟件知識(shí),還要對(duì)硬件知識(shí)有全面了解,這樣一來(lái)也就提升了對(duì)開(kāi)發(fā)者能力的需求。
將C語(yǔ)言轉(zhuǎn)化為DSP代碼的過(guò)程可以參照以下內(nèi)容:1)在源文件中需要由編輯器與匯編器應(yīng)用其中完成編譯,并構(gòu)建屬于兩者的“中間文件”;2)在中間文件處理后,新建.out與.map文件;3)利用CCS將.out下載并存儲(chǔ)在DSP芯片中,用于仿真測(cè)試;4)仿真測(cè)試完成后借助響應(yīng)軟件將.out轉(zhuǎn)化為.hex。
通過(guò)以上研究了解到,C語(yǔ)言十分靈活,所應(yīng)用范圍也很廣,之所以能夠被應(yīng)用到各處主要是由于C語(yǔ)言不僅具有靈活性,還具有便于讀取與操作的特點(diǎn)。本文研究了嵌入式DSP系統(tǒng)與C語(yǔ)言硬件編程技術(shù)與過(guò)程,希望能為相關(guān)人士帶來(lái)有效參考,進(jìn)一步開(kāi)發(fā)與利用C語(yǔ)言硬件編程技術(shù)。
參考文獻(xiàn)
[1]宋敏.基于DSP和嵌入式平臺(tái)的在線電能質(zhì)量監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[D].上海交通大學(xué),2012.
[2]金麗娟.基于DSP的嵌入式PLC運(yùn)動(dòng)控制模塊的研究與實(shí)現(xiàn)[D].杭州電子科技大學(xué),2013.
[3]張凱.嵌入式車牌定位與分割系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京郵電大學(xué),2011.
[4]佟吉鋼.高性能嵌入式系統(tǒng)技術(shù)及應(yīng)用的若干問(wèn)題研究[D].南開(kāi)大學(xué),2010.
作者簡(jiǎn)介:徐哲,所在院校為沈陽(yáng)理工大學(xué),研究方向?yàn)樽詣?dòng)化DSP就是利用數(shù)字形式完成信號(hào)采集、變換等工作,
中圖分類號(hào)TP39
文獻(xiàn)標(biāo)識(shí)碼A
文章編號(hào)1674-6708(2015)155-0153-02