摘 要:目前很多嵌入式的系統核心構建都以DSP為主,利用匯編語言對DSP系統進行開發存在很多問題,其開發周期較長、可植入性較差、調試困難,維護也很困難。所以,很多DSP的系統開發人員都希望能夠利用C語言進行軟件開發,但是到目前來來說,關于DSP嵌入式系統的C語言開發的資料較少,不能更好地參考,本文將主要針對DSP嵌入式系統下的C語言開發方面的內容做出簡要的分析和探討,希望所得結果能夠引起大家的關注和重視,也希望本研究能夠為相關領域提供可行的參考。
關鍵詞:DSP嵌入式系統;C語言;軟件開發
中圖分類號:TP368.12 文獻標識碼:A 文章編號:1674-7712 (2014) 06-0000-01
隨著社會的不斷發展,技術的發展速度也在不斷飛躍,在通信領域、電子信息領域、自動控制領域、軟件無線電領域和信息家電領域等,DSP都取得了較為廣泛的發展和應用。按照以往的經驗來說,在對DSP嵌入式產品進行開發的時候往往都采用控制器的匯編語言來進行編寫,但是到目前來說,很多領域都認為采用C語言進行DSP嵌入式的語言開發更加方便。
一、DSP嵌入式系統下的C語言開發過程
本研究采用TMS320F240芯片進行研究,其整個開發過程可分為五步。
(一)對C語言的源程序進行編輯
在對該系統軟件進行編寫的時候可以采用任何的編輯器進行源程序的書寫,比如NOTEPAD、EDIT等,需要注意的是,程序的命名需要以“.C”為后綴進行存盤。而程序的源代碼既可以寫在一個“C文件”里,也可以寫在多個“C”文件里面,但是對于一些函數的原型聲明或者是預定義變量則可以集中地放置在一個頭文件里面。要特別注意,一定要在C程序的前面用#include“c240.h”將寄存器的文件包括在其中。
(二)對源程序進行編譯
編輯好C語言的源程序以后就可以采用DSPCL編譯程序對其進行編譯,最終生成OBJ文件。
在編譯的時候所采用的格式:DSPCL 源文件名 參數
舉例來說:DSPCL EX1.C -V2XX -GK -MN
其常用參數的意義是:V2XX表示C編譯器選擇的處理器是2XX系列;GK代表的是保留編譯所生成的匯編文件,也就是(.ASM)文件;MN表示正在進行的正常優化。而其他的參數則需要參考DSP的編譯器手冊,假如存在多個源文件,那么需要對其分別進行編譯,每一個源文件在編譯之后都會生成一個ASM文件和OBJ文件[1]。
(三)目標文件的鏈接
IT公司的匯編器和編譯器所創建的目標文件采用的是COFF的格式文件,這種格式能夠更好地進行模塊化的編程,能夠使代碼段的管理和對目標系統存儲器的管理更加的方便和靈活。給COFF格式進行C語言或者匯編程序的編寫的時候,不需要對變量目標地址和程序代碼進行指定,這也為程度的移植和程序的編寫提供了很大的方便。而鏈接器對塊的處理主要有兩種功能,一種功能是對COFF目標文件當中的塊進行利用,用其建立數據塊和程序,再將這些塊組合起來,就能夠成為被DSP芯片執行COFF輸出的模塊,而第二種就是鏈接器為輸出的塊指定存儲的位置[2]。因此鏈接器需要為上述兩個功能提供指令,分別是MEMORY、SECTTONS。MEMORY命令對目標系統的存儲器進行定義,程序員可以選擇對每一塊存儲器的長度和起始地址做出定義,而SECTIONS命令則是用來對輸入塊組合以及輸出塊放置在存儲器當中的位置進行定義的。加入在具體的編寫當中不采用以上兩種命令的話,也可以使鏈接器以缺省的分配算法進行,筆者建議使用者兩種命令,但是在使用的時候需要注意這兩個命令要在CMD文件當中使用。
(四)程度的仿真
EMURST仿真器會對命令做出復位,EMU2XXW EX1.OUT將COFF格式的二進制代碼載入并進行仿真運行,而有關調節器則按照規定使用即可。
(五)程序的固化
等到程序仿真運行通過之后,就需要將其固化到FLASH ROM當中,TMS320F240內有16k字的FLASH ROM可以用來對程序進行固化,在其程序不大于16k的時候,它不需要外擴EPROM。接下來將主要采用JTAG口的固化方法來對進行分析說明。
先要采用EMURST命令對調試器進行復位,然后在對三個批處理文件做出執行。第一個是執行BC0.BAT批處理文件,對FLASH ROM的(CLEAR)進行清除,使其全部為“0”;接下來是執行BE0.BAT批處理文件,對FLASH ROM的(ERASE)進行擦除,使其全部為“1”。這兩步對于軟件包當中自帶的這個兩個BAT文件不需要做出修改。下面是第三步,對BP16K.BAT批處理文件做出執行,需要將自己的OUT文件加入到DSP內部的FROM當中,在此之前需要先對BP16K.BATJ進行修改,對待寫入的OUT文件做出替換,替換成自己的OUT文件。需要注意的是,在對程序進行固化的時候,一定要將CPU控制在20MHz的頻率之下,然后在SRC目錄當中配置一個C240_CFG.I的文件。
二、結束語
在本研究當中,筆者主要以TMS320F240芯片為例,針對DSP嵌入式系統下的C語言開發的開發過程作出了簡要分析,文中筆者也根據自身理解和自身經驗提出了一些主觀意見。希望本篇文字能夠對讀者有所啟發,也希望相關的工作人員再接再厲,進行不懈的努力,爭取開發出更新的語言來服務DSP嵌入式系統,為系統開發作出更多的貢獻。
參考文獻:
[1]瞿新吉.嵌入式系統的BootLoader技術淺析[J].科技經濟市場,2010(10):28.
[2]童世華,付蔚.嵌入式發展之我見[J].科技創新導報,2012(05):324-325.