DSPF28335學習之(2)CCS5.5新建工程、編譯除錯及燒寫至FLASH
目錄
準備:1.CCS5.5;2.F28335核心板;3.XDS100V3模擬器
1.程式燒寫至RAM
在程式除錯階段,程式燒寫至RAM,配合模擬器對程式進行除錯。在Properties→General中
- ① 在Manage Configurations中設定Debug為Active;
- ② 在Linker command file中選擇28335_RAM_lnk.cmd。
(1)準備
在Workspace新建資料夾Project,在資料夾下拷入檔案“DSP2833x_common
(2)新建工程
Project → New CCS Project,新建工程名Exam_F28335_ADC_SeqModeTest,
從DSP2833x_headers\cmd中拷貝DSP2833x_Headers_nonBIOS.cmd到Exam_F28335_ADC_SeqModeTest資料夾下,並新建一個Source
(3)設定標頭檔案索引路徑
右鍵點選工程名,選擇Properties,在C2000 Complier下的Include Options,新增
"${PROJECT_ROOT}\..\DSP2833x_headers\include"
"${PROJECT_ROOT}\..\DSP2833x_common\include"
點選OK後,工程檔案的Include欄中有新增的索引路徑,如下圖說明新增成功(失敗,則為灰色)
(4)配置模擬器
右鍵點選工程名,選擇NEW → Target Configuration File,設定File Name
點選Finish出現如下介面,選擇模擬器型號XDS100V3,器件型號選擇TMS320F28335,點選右側Save,儲存配置。
可以點選Test Connection測試模擬器是否連線成功,見除錯部分。
(5)新增原始檔
複製需要的.c及.asm檔案到source資料夾,複製到資料夾中後會自動出現在工程列表中。
一般有DSP2833x_common\source中的
DSP2833x_ADC_cal.asm DSP2833x_CodeStartBranch.asm
DSP2833x_DefaultIsr.c DSP2833x_Gpio.c
DSP2833x_SysCtrl.c DSP2833x_usDelay.asm
以及DSP2833x_headers\source中的DSP2833x_GlobalVariableDefs.c
如果用到定時器,需要新增DSP2833x_CpuTimers.c
如果用到ADC,則需要新增DSP2833x_Adc.c
如果用到中斷,需要新增DSP2833x_PieCtrl.c、 DSP2833x_PieVect.c
如果用到SCI,需要新增DSP2833x_Sci.c
其他的類推。
(6)新增庫
如果程式中有三角函式或者開根號等運算,推薦只用fastPTS或IQmath庫來計算,在C2000 Linker下的Flie Search Path中新增。(官網下載)
在主函式中,需要新增標頭檔案:
#include “math.h”
#include “C28x_FPU_FastPTS.h”
具體可參考連結
在Include library flie or command file中新增
”rts2800_fpu32.lib”
在Add <dir> to library search path中新增索引路徑
"${PROJECT_ROOT}\..\DSP2833x_common\lib"
然後將最下面的Disable automatic RTS selection選中,如下圖
點選Build,在Link Order中,點選Add新增庫檔案。
(7)其他說明
- ① cmd檔案的選擇則根據執行模式選擇:
線上模擬模式: 28335_RAM_link.cmd
Flash燒寫模式:F28335.cmd
- ② 在main.c檔案中需要引用標頭檔案
#include “DSP28x_Project.h” //包含所有的外設標頭檔案及巨集定義
(8)編譯及除錯
A.編譯
點選 或選擇Build Project,編譯工程檔案,編譯成功後工程列表中出現Binaries(包含.out檔案)和Debug資料夾。(驗證程式)
B.除錯
- ① 通斷電順序:
通電:將模擬器連線電腦,然後接通電源,最後開啟模擬軟體。
斷電:模擬軟體內部斷開連線,關閉軟體,斷開電源,最後拔掉模擬器。
模擬器不為開發板/核心板供電
- ② 將模擬器連線電腦。CCS軟體自身整合模擬器驅動,因此插上模擬器後會自動安裝驅動。檢視:右鍵“我的電腦”→“管理”→“裝置管理器”
- ③ 連線電源,板上有燈亮起。連線成功後,點選.ccxml檔案中的Test Connection,出現下圖介面,介面中各項最後均為succeed則連線成功。
- ④ 點選 ,進入下圖Debug介面,表示連線成功,進入除錯介面
變數觀察:選中該變數,然後右鍵“Add Watch Expression”
2.程式燒寫至Flash
在程式除錯完成後,需要將程式燒寫至Flash,這樣可去掉模擬器,直接上電即可執行程式。
首先按照1中提到的步驟建立工程並完成程式的除錯,除錯完成後,對工程進行如下修改,將程式燒寫至Flash:
(1)設定Properties→General
- ① 在Manage Configurations中設定Release為Active;
- ② 在Linker command file中選擇F28335.cmd
在Predefined Symbols中新增預定義FLASH,如下圖
根據板子的實際情況,如有需要,則要改變晶振設定等,一般採用預設值,如下圖所示
設定完成後,點選OK,最終工程中原有的28335_RAM_lnk.cmd檔案變成”Exclude from Build”模式 ,新添加了檔案F28335.cmd。
(2)新增原始檔及修改主函式
在原工程的“Source”資料夾中新增原始檔DSP2833x_MemCopy.c(路徑DSP2833x_common\source)。
在主函式初始化部分InitPieVectTable();後新增:
#ifdef FLASH
MemCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);
InitFlash(); //初始化Flash
#endif
(3)設定標頭檔案索引路徑
按照1中方式新增標頭檔案索引路徑和庫函式及其索引路徑
(4)編譯及下載
- ① 點選 或選擇Build Project,編譯工程檔案,編譯成功後工程列表中新增Release資料夾。
- ②點選 下載程式,將出現如下介面,將程式下載至FLASH中,中間不能出現間斷。
下載成功後,點選下圖中紅色按鈕,退出Debug介面
斷開供電電源→斷開模擬器,需要拔下JTAG插頭,而不是僅斷開模擬器的USB端,否則程式會出錯→重新對板子供電
則程式燒寫至FLASH,上電後即可使用。