1. 程式人生 > >關於DSP的CCS6.0平臺下的工程搭建(完全可移植)

關於DSP的CCS6.0平臺下的工程搭建(完全可移植)

本工程以CCS6.0下新建TMS320F28335工程為例,其他系列處理器工程搭建類似,參考本例即可。

     所建工程能夠實現完全可移植,即任意拷貝到其他位置或電腦都能直接編譯(需匯入工程)。之後就可以延續使用此工程,只需更改Project工程名,按自己的需要新增部分檔案或庫。(具體參考下面的詳細說明)

1.      首先點選project->New CCS Project 

2.      選擇器件和建立工程名(路徑為預設工作空間,可根據自己的實際情況更改)

點選finish,得到工程列表如下:

工程資料夾下的檔案如下:

3.      接下來,在工程資料夾下建立幾個資料夾(給各檔案分類儲存,便於管理)

            Cmd資料夾:用來儲存所必須的cmd的檔案,cmd檔案是編譯完成之後連結各個目標檔案時,用來指

                                 示各個資料、符號等是如何劃分到各個段,以及每個段所使用的儲存空間的。

             FWlib資料夾:    韌體庫資料夾,再在其中建立兩個子資料夾:Include資料夾和Source資料夾

             Include資料夾: 用於存放TI官方的寫好的標頭檔案

             Source資料夾:  用於存放TI官方寫好的原始檔

             Libraries資料夾:用於存放處理器所用到的庫檔案

             USER 資料夾:    用於存放使用者自己寫的標頭檔案,原始檔以及main.c檔案

完成後如下:

4.      新增檔案到工程:

接下來,我們需要拷貝以下檔案或資料夾備用:(為了以後方便使用,我們把它都放在自己新建的一個資料夾“TI官方庫檔案”中備用)

注:首先確保自己的電腦上安裝了ControlSUTE軟體或C2000Ware(這兩個軟體TI官網都可免費下載,其中C2000Ware較新,更新到2017,我們一下工程的搭建所需的檔案都來自C2000Ware軟體中所帶的庫

首先我們按照以下路徑標註路徑(具體根據自己軟體的安裝路徑,標註路徑是相同的),找到下面兩個資料夾拷貝到“TI官方庫檔案”資料夾中備用:

然後按下面路徑,拷貝下面兩個檔案到“TI官方庫檔案/lib資料夾下”

其中:

rts2800_ml.lib庫檔案:C/C++大記憶體模式執行支援庫,中有大量浮點運算處理的函式而rts2800.lib沒有,rts2800_ml.librts2800.lib對應,rts2800_ml.lib用的是大儲存模式,在需要燒寫FLASH時必須用這個庫.

rts2800_fpu32.lib庫檔案:用於FPU目標的C / C ++執行時物件庫,(F28335中支援FPU浮點運算)

 

如果程式中有三角函式或開根號等運算,推薦用fastRTS庫或者IQmath庫來計算,所以我們把FPUfastRTS資料夾和IQmath資料夾也拷貝過來備用。(注:此工程暫時用不到,故沒有新增進工程,如以後需要,從“TI官方庫檔案”資料夾中新增進工程即可,新增方式和和上面兩個庫rts2800_ml.librts2800_fpu32.lib一樣,下面將會介紹)

接下來新增檔案到工程,首先我們把“TI官方庫檔案/commonheaders/include”資料夾下所有檔案都拷貝到我們所搭建工程的“Fwlib/Include”資料夾下,然後把庫檔案rts2800_ml.librts2800_fpu32.lib拷貝到Libraries資料夾下。最後再把搭建工程下的28335_RAM_lnk.cmd檔案和“TI官方庫檔案/commonheaders/cmd”資料夾中的F28335.cmdDSP2833x_Headers_nonBIOS.cmd檔案拷貝到工程Cmd資料夾下。完成之後CCS6.0會自動將新新增的檔案加到專案瀏覽器中,效果如下圖:

檔案功能說明:

cmd檔案的選擇則根據執行模式選擇:

線上模擬模式:使用28335_RAM_lnk.cmd檔案

Flsah燒寫模式:使用F28335.cmd檔案

DSP2833x_Headers_nonBIOS.cmd:無作業系統時使用

DSP2833x_Headers_BIOS.cmd  :有作業系統時使用

到此,基本檔案的新增就完成了。

5.      完成工程檔案的新增,先不要編譯。此時編譯的話會出現很多錯誤,因為我們工程下的Include資料夾下的標頭檔案,以及Libraries資料夾下庫檔案還需要新增索引路徑。

首先右鍵點選專案瀏覽器中的專案名,開啟Properties(屬性)

上述第(4)步Workspace選項是相對路徑,File sysem..是絕對路徑,如果選擇File sysem..來確定路徑,當工程移植到非此時預設的workplace工作空間,就又會提示錯誤,故此最好選擇Workspace選項。然後選中Include資料夾,點選確定,效果如下:

然後可以看到工程瀏覽器中工程Includes下多出了剛才新增的路徑:

  

接下來我們新增庫檔案的路徑,同樣右鍵點選專案瀏覽器中的專案名,開啟Properties(屬性)

第(3)步新增我們工程“Libraries”資料夾下的庫檔案,第(4)步把“Libraries”資料夾路徑也新增進來,同樣選擇Workspace相對路徑。

6.      配置模擬器:

右鍵點選工程名,選擇New>TargetConfiguration FileFile name取名任意,這裡取為F28335.ccxml,點選Finish

然後我們選擇自己配套所使用的模擬器,這裡使用的是TIDSP-XDS100V2型號模擬器,

板子及裝置選擇:TMS320F28335,完成後點選Save儲存。

7.      為了是工程層次更清晰以及便於管理,我們對一些檔案的位置進行調整:

以程式模組化的思想,我們把使用者自己寫的原始檔,標頭檔案以及main.c檔案放在我們事先建立的“USER”資料夾裡,首先是main.c檔案,直接在工程瀏覽器下,拖動main.c檔案到“USER”資料夾,然後右鍵點選工程下的“USER”資料夾新建LED.cLED.h檔案到“USER”資料夾中。

接下來,我們把模擬資料夾直接拖動到TargeConfigs”資料夾下

到此,我們的工程搭建就基本完成了。

8.      完成最後調整與配置:

現在讓我們編譯一下工程,在工程瀏覽器下右鍵點選工程名,選中Build Project,編譯工程

(說明:工程第一次編譯時,可以用Build Project,等同於工具欄上的“小錘子圖示”,但只能在工程進行了實際更改的情況下才能編譯,也就是隻編譯更改的部分檔案,否則不會編譯成功。Clean Project主要作用就是把編譯好的Output等檔案刪除,啟用eclipse的自動編譯。Rebuild Project作用,重新編譯整個工程)

工程編譯完成後,“Console”以及“Problems”視窗提示很多錯誤

在上圖中看到幾乎提示的都是重定義錯誤,找到重定義檔案,分別為:

DSP2833x_SWPrioritizedPieVect.c  :軟體中斷優先順序設定

DSP2833x_SWPrioritizedDefaultIsr.c :軟體中斷優先順序預設值(即設定失效)

這些我們暫時也用不到,刪除這兩個檔案即可。

還有F28335.cmd檔案中的提示:記憶體已經被指定。

我們在前面也已經提到28335_RAM_lnk.cmd檔案用於線上模擬,F28335.cmd檔案用於Flsah燒寫,兩個檔案功能不同,同時只能存在一個,但我們還是放在Cmd資料夾下,因為程式進行燒錄固化時必須要用,但留著又提示錯誤,怎麼辦呢?此時我們可以暫時在編譯時忽略此檔案,在工程瀏覽器Cmd資料夾下選中F28335.cmd檔案右鍵點選,選擇“Exclude for Build”(即忽略編譯此檔案)操作

 
然後重新進行編譯,0錯誤,0警告,工程搭建完成。

9.      最後說明:

搭建可移植工程的目的是什麼,一是增強我們對工程框架以及各個檔案功能的理解,二就是方便以後我們使用——不用以後每次都要重新建立工程。著實節約開發時間。CSS3.3中我們把工程拷貝到“MyProjects”資料夾下改個資料夾名就行了,可是CCS6.0中工程與檔案都與路徑有關,而且CCS6.0識別的不是工程資料夾的名字,而是具體的工程檔案.Project,而這個檔名是不可以直接重新命名的。這下我們怎麼辦呢?其實,CCS6.0工程下,移植建立新工程更加方便,不止資料夾的名字可以更改回來,連工程名也可以更改。想要實現你的要求,你可以在CCS工程瀏覽器下選擇你的工程,右鍵—>copy,然後再工程瀏覽器空白處點選—>Paste(貼上)在彈出的Copy Project對話方塊中填寫你的新工程名和儲存路徑就可以了。


而如果你要移植到別的電腦或工作空間,就必須要匯入工程了,然後又可以按上一個方法方便的建立新的工程了。點選工具欄—>Project>Import CCS Project..,選擇好要匯入的工程,點選確定即可。