1、一個完整的工程包含的文件
CCS建立一個完整的工程,至少需要以下4個文件:
1)存儲器分配cmd文件:cmd命令文件是用來分配存儲空間的。
2)C語言系統庫rts2xx.lib:rts2xx.lib是C語言系統庫,包含了編譯器提供的所有功能:①初始化C語言環境(入口地址是_c_int0),②設置堆棧,③提供標準的c語言函數庫。
3)包含main函數的c源文件:有且只有一個包含main函數的c源文件,系統庫初始化完畢後就把控制權交給main()函數了。
4)矢量跳轉表asm彙編文件:矢量跳轉表文件,通常是彙編文件(asm)形式,此文件需要準確的定位在程序的起始地址,其內容是彙編語句中的無條件跳轉語句“B”。
2、DSP啓動過程理解
入口函數地址最終跳到code_start函數(參見DSP280X_Codestartbranch.asm文件)。
--------------------------------------------------------------------------
|.sect"codestart" |
| |
|code_start: |
|.ifWD_DISABLE == 1 |
| LB wd_disable ;Branch to watchdog disable code |
| .else |
| LB_c_int00 ;Branch to start ofboot.asm in RTS library |
|.endif |
|;end codestart section |
---------------------------------------------------------------------------
上述這個段,根據引導空間不同,被cmd分配在不同的地址:
ram引導:
BEGIN : origin = 0x000000, length =0x000002
flash引導:
BEGIN : origin = 0x3f7ff6, length = 0x000002
而_c_int00這個函數,具體代碼找不到,該函數應該放在rts這個庫中,這個函數_c_int00應該是C初始化代碼的入口地址,在你用C編程的時候,DSP需要執行一段C運行支持庫代碼以完成C運行環境的初始化,_c_int00就是這段初始化代碼的入口地址。執行完初始化代碼後,庫代碼會自動跳到main函數繼續運行。
完成的內容有:c_int0函數進行以下工作以建立C運行環境:爲系統堆棧產生.stack塊,並初始化堆棧指針。
從.cinit塊將初始化數據拷貝到.bss塊中相應的變量。調用main函數,開始運行C程序。
3、創建一個完整的工程(以F28335爲例)
3.1、創建工程前的準備
打開Setup CCStudio v3.3,配置配置相應型號的板子芯片。這裏以F28335爲例。
單擊F28335 XD510 Emulator,添加該型號仿真器,然後在右側出現的F28335 XD510 Emulator仿真器右鍵單擊,選中屬性:
按照下圖進行配置:
配置好後,點擊NEXT,在出現的頁面,點擊Finsh。
到這裏,仿真器配置完畢。
點擊Save&Quit,保存並退出,啓動CCS。
在創建新工程前,先在建立存放工程的文件夾Demo,將TI例程包中DSP2833x文件夾下的DSP2833x_common文件夾、DSP2833x_headers文件夾複製到Demo文件夾下。完畢後,目錄樹如下:
3.2、打開CCS,點擊菜單欄裏的Project,點擊New,會跳出新工程設置的對話框,如下圖所示:
在Project欄內填寫工程名字:Demo。設置工程存儲路徑,確認沒有問題後點擊Finish。CCS中出現剛剛創建的Demo.pjt
3.3、創建主函數文件main.c。
點擊菜單欄中的File——>New——>Source File,在編輯區域內出現一個新的Untitled1文件,
然後,點擊File——>Save,會出現保存文件的對話框。文件名填寫“main.c”,關鍵要注意保存類型,因爲我們現在要建立的是原文件,所以選擇“C/C++ Source File(*.c*)”,點擊保存。
3.4、添加源文件到工程。
右擊Demo工程中Source文件夾,選擇添加文件到工程,添加的文件在DSP2833x_common文件夾、DSP2833x_headers文件中的Source文件夾中,以及編寫的main.c文件。添加的文件如下圖所示:
右擊Demo.pjt,添加.cmd文件,分別位於DSP2833x_common文件夾、DSP2833x_headers文件中的cmd文件夾中。
注意:頭文件不用手動添加,在添加好*.c文件後,在配置頭文件路徑後,系統會自動添加頭文件到Include文件下。、
否則,手動添加的頭文件會被添加到Document文件下。
3.5、工程相關配置。
添加好文件後,右擊Demo.pjt,選擇編譯選項:
在彈出的選項卡中,選擇Compile選項頁進行如下配置:
頭文件的路徑,這裏是D:\DSP_Demo\DSP2833x_common\include、D:\DSP_Demo\DSP2833x_headers\include。
選擇Linker選項頁,配置如下:
最後,不要忘記鏈接Jtag.
整個工程創建和配置已經完成,可以進行編譯。
由於剛開始接觸DSP,在開始時遇到很多問題,對最基本的創建工程都不是很清楚,故藉此機會記錄下來。可能當中過程存在某些問題,希望大家指正。同時也希望能夠幫助到那些像我一樣剛接觸DSP的朋友們。