CCS安裝錯誤解決與CCS應(yīng)用教程_第1頁
CCS安裝錯誤解決與CCS應(yīng)用教程_第2頁
CCS安裝錯誤解決與CCS應(yīng)用教程_第3頁
CCS安裝錯誤解決與CCS應(yīng)用教程_第4頁
CCS安裝錯誤解決與CCS應(yīng)用教程_第5頁
已閱讀5頁,還剩94頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、CCS安裝錯誤解決與安裝錯誤解決與CCS應(yīng)應(yīng)用教程用教程 1 CCStudio 主程序安裝主程序安裝 第第1步:找步:找CCS SETUP.EXE應(yīng)用程序的圖標(biāo)。雙應(yīng)用程序的圖標(biāo)。雙擊該圖標(biāo)。擊該圖標(biāo)。 第2步步:點擊NEXT接鈕 第3步步:選擇I ACCEPT后,再點擊NEXT按鈕 第4步:選擇默認典型安裝, “Typical install”圖標(biāo), 選擇安裝路徑后,點擊Next,注意路徑不能包含中文 第5步步:點擊Install Now開始安裝 安裝結(jié)束后出現(xiàn)如下圖的告警界面,提示要求安裝Perl V5.8版本,不必擔(dān)心,點擊確定即可第7步步:安裝完成 安裝補丁版本 安裝升級補丁包SR12

2、_CCS_v3.3_SR_3.3.82.13 .exe雙擊安裝后,會出現(xiàn)以下界面,點擊Next:出現(xiàn)如下圖所示界面,選擇 ActiveState Perl58,點擊Next然后一路點擊Next,直到開始安裝。安裝補丁版本 (2)安裝浮點支持庫setup_C28XFPU_CSP_v31.3.1207 (3)安裝燒寫插件F2823x_RevA_CSP.exe (4)更新Code Gernerator,將C2000CodeGenerationTools51.1.1.exe安裝在CCStudio_v3.3C2000cgtools目錄下,安裝過程中選擇“Yes to all”全部覆蓋。覆蓋結(jié)果可在com

3、ponent manager中選擇“Build Tools”進行查看,覆蓋成功應(yīng)為“texas instruments c2000 code genertion tools ”項前面打勾 (5)安裝仿真器USB驅(qū)動和仿真器驅(qū)動。2讓讓CCS工作在軟件仿真環(huán)境工作在軟件仿真環(huán)境 (Simulator) CCS可以工作在純軟件仿真環(huán)境中,就是由CCS在PC機內(nèi)存中構(gòu)造一個虛擬的DSP環(huán)境,可以調(diào)試、運行程序。但一般軟件無法構(gòu)造DSP中的外設(shè),所以軟件仿真通常用于調(diào)試算法和進行效率分析等。在使用軟件仿真方式工作時,無需連接板卡和仿真器等硬件。 單擊桌面上“Setup CCStudio v3.3”圖標(biāo)

4、, 進入 CCS設(shè)置窗口。在設(shè)置界面的中間欄目中分別對Family和Platform項進行設(shè)置。 然后會在在設(shè)置欄的左側(cè)出現(xiàn)添加的軟件仿真平臺,選擇F2812 Device Simulator點擊右鍵會出現(xiàn)如圖所示對話框,可以設(shè)置配置文件。選擇CPU點擊右鍵會出現(xiàn)如圖所示對話框,可以設(shè)置GEL文件。點擊“Save&Quit”出現(xiàn)對話框后,選擇Yes。CCS闖關(guān)小游戲 第一關(guān) 找到“Load Program”在那個菜單欄下,以及其快捷鍵是什么?第二關(guān) 新建一個工程是通過那個菜單欄中的那一項實現(xiàn)的?第三關(guān) 在調(diào)試中所用到的“Step Into、Step over、Run”的快捷鍵是什么?第四關(guān) W

5、atch Window在那個菜單欄下,對應(yīng)著工具欄中的哪一個圖標(biāo)?第五關(guān) 打開提供的工程,回答以下問題: 工程的后綴名是什么? 工程中包含哪幾類文件? 如何編譯工程,快捷鍵及工具欄圖標(biāo)是什么?第六關(guān) 加載編譯生成的.out文件,回答以下問題: 如何設(shè)置斷點? 設(shè)置斷點后,點擊Run(運行)結(jié)果如何?3 讓讓CCS工作在硬件仿真環(huán)境工作在硬件仿真環(huán)境(Emulator) 先刪除當(dāng)前的系統(tǒng)設(shè)置先刪除當(dāng)前的系統(tǒng)設(shè)置選擇硬件仿真F2812芯片驅(qū)動 找到開發(fā)板相關(guān)找到開發(fā)板相關(guān)F2812的配置文件,的配置文件,路徑如下所示:路徑如下所示:路徑設(shè)置完之后,點擊路徑設(shè)置完之后,點擊OK即可即可添加完成。添加

6、完成。 CCS已經(jīng)被設(shè)置成Emulator的方式(用仿真器連接硬件板卡的方式),并且指定通過TDS510-USB2 仿真器連接EX-DSP-EXP III+試驗箱。 4 集成調(diào)試環(huán)境介紹集成調(diào)試環(huán)境介紹完成對系統(tǒng)的配置之后,給實驗開發(fā)板供電,雙擊完成對系統(tǒng)的配置之后,給實驗開發(fā)板供電,雙擊快捷鍵快捷鍵“CCStudio 3.3”,即可進入集成調(diào)試環(huán)境,即可進入集成調(diào)試環(huán)境。 系系統(tǒng)統(tǒng)為為未未連連接接狀狀態(tài)態(tài) 把CCS軟件和F2812芯片連接在一起,然后才能對F2812 芯片進行控制。 確認CCS和F2812連接是否成功 注意:注意: 在實驗箱使用結(jié)束后,必須按照以下步驟進行操作: 1 先斷開鏈

7、接 2 關(guān)閉CCS 3 關(guān)閉實驗箱電源集成調(diào)試環(huán)境的組成:集成調(diào)試環(huán)境的組成:1. 集成調(diào)試環(huán)境的標(biāo)題欄(集成調(diào)試環(huán)境的標(biāo)題欄(/F2812 XDS510 Emulator/CPU_1F28xxCode Composer Studio)。)。2. 菜單欄(菜單欄(File、Edit、View)。)。3. 工作窗口區(qū)(工作窗口區(qū)(Files、Diassembly、CPU)4. 系統(tǒng)連接狀態(tài)。系統(tǒng)連接狀態(tài)。 菜單及功能介紹菜單及功能介紹CCS3.3不能直接由匯編源代碼或不能直接由匯編源代碼或C語言源代碼語言源代碼文件建立(文件建立(Build)生成)生成DSP可執(zhí)行代碼,必須可執(zhí)行代碼,必須使用項

8、目(使用項目(Project)來管理整個設(shè)計過程。)來管理整個設(shè)計過程。項目文件保存在磁盤中后綴為項目文件保存在磁盤中后綴為.pjt文件。文件。 1. 項目菜單項目菜單(1)Project/New:新建一個項目,將該項目保存至新建項目文件夾里面:新建一個項目,將該項目保存至新建項目文件夾里面。(2)Project/Open : 打開一個已有的項目。打開一個已有的項目。(3)Project/Add Files to Project:添加文件到該項目中。:添加文件到該項目中。 可以添加到項目中的文件的擴展名:可以添加到項目中的文件的擴展名: *.C: C源文件,項目管理對這一類文件進行編譯和鏈源文

9、件,項目管理對這一類文件進行編譯和鏈接。接。*.ASM: 匯編源文件,項目管理對這一類文件進行匯匯編源文件,項目管理對這一類文件進行匯編和鏈接。編和鏈接。*.OBJ:目標(biāo)文件,項目管理對這一類文件進行鏈接:目標(biāo)文件,項目管理對這一類文件進行鏈接。*.LIB :庫文件,項目管理對這一類文件進行鏈接。:庫文件,項目管理對這一類文件進行鏈接。*.CMD:鏈接命令文件,項目管理在鏈接各個文件時:鏈接命令文件,項目管理在鏈接各個文件時根據(jù)此文件分配系統(tǒng)程序空間、數(shù)據(jù)空間。根據(jù)此文件分配系統(tǒng)程序空間、數(shù)據(jù)空間。注意注意 對頭文件和在程序中用包含文件(對頭文件和在程序中用包含文件(include)引用的文件

10、,項目管理程序會自動地加)引用的文件,項目管理程序會自動地加入到項目中。入到項目中。 項目管理不允許用戶添入其它類型的文件項目管理不允許用戶添入其它類型的文件。 (4)Project/Save:保存一個已打開的項目。:保存一個已打開的項目。(5)Project/Close:關(guān)閉一個已打開的項目。:關(guān)閉一個已打開的項目。(6)Project/Add Files to Project:添加所有用到:添加所有用到的文件和所需的庫文件到該項目中。的文件和所需的庫文件到該項目中。(7)Project/Compile Files:對項目中的:對項目中的C語言和匯語言和匯編語言源代碼文件進行編譯。編語言源代

11、碼文件進行編譯。(8)Project/Build:對項目進行編譯、匯編和鏈接:對項目進行編譯、匯編和鏈接,生成可執(zhí)行文件,執(zhí)行文件的后綴為,生成可執(zhí)行文件,執(zhí)行文件的后綴為.OUT。對于以前編譯過到目前為止還沒有修改過的源文件對于以前編譯過到目前為止還沒有修改過的源文件不重新編譯。不重新編譯。(9)Project/Rebuild All:對項目重新進行一次編:對項目重新進行一次編譯、匯編和鏈接,生成可執(zhí)行文件譯、匯編和鏈接,生成可執(zhí)行文件.OUT,不論是否,不論是否修改過都編譯一次。修改過都編譯一次。(10)Project/Stop Build:停止對項目的編譯、匯:停止對項目的編譯、匯編和鏈

12、接。編和鏈接。(11)Project/Show Project Dependencies:顯示該:顯示該項目中所有用到的文件和所需的庫文件。項目中所有用到的文件和所需的庫文件。(12)Project/Scan All File Dependencies:詳細查:詳細查看該項目中所有用到的文件和所需的庫文件??丛擁椖恐兴杏玫降奈募退璧膸煳募#?3)Project/Recent Project Files:顯示最近打開:顯示最近打開過的項目。過的項目。(14)Project/Build Options:對編譯器、匯編器:對編譯器、匯編器、和鏈接器的參數(shù)進行配置。、和鏈接器的參數(shù)進行配置。可

13、以配置寄存器優(yōu)先調(diào)試,特定函數(shù)優(yōu)先調(diào)試,或可以配置寄存器優(yōu)先調(diào)試,特定函數(shù)優(yōu)先調(diào)試,或某個子程序優(yōu)先調(diào)試等選項。某個子程序優(yōu)先調(diào)試等選項。編編譯譯器器設(shè)設(shè)置置對對話話框框2. 觀察菜單觀察菜單(1)View/Disassembly:觀察反匯編程序窗口。:觀察反匯編程序窗口。當(dāng)當(dāng)DSP可執(zhí)行程序可執(zhí)行程序COFF文件載入目標(biāo)系統(tǒng)后,文件載入目標(biāo)系統(tǒng)后,CCS將自動打開一個反匯編窗口,反匯編窗口根據(jù)將自動打開一個反匯編窗口,反匯編窗口根據(jù)存儲器的內(nèi)容顯示反匯編指令和符號信息。存儲器的內(nèi)容顯示反匯編指令和符號信息。(2)View/Memory:觀察存儲器窗口。:觀察存儲器窗口。 Address:輸入

14、需要觀察的存儲器的起始地址;:輸入需要觀察的存儲器的起始地址;QValue):填):填0,出現(xiàn)的存儲器窗口中的顯示值,出現(xiàn)的存儲器窗口中的顯示值就是實際值;若填其它數(shù),出現(xiàn)的存儲器窗口中的就是實際值;若填其它數(shù),出現(xiàn)的存儲器窗口中的顯示值不是實際值;顯示值不是實際值;Format:下拉菜單中有不同的格式;:下拉菜單中有不同的格式;存儲器的顯示格式:存儲器的顯示格式:16進制、進制、2進制等進制等IEEE浮點格式顯示時,則選中使用浮點格式顯示時,則選中使用IEEE浮點格式浮點格式“Use IEEE Float”;Page:下拉菜單中,可以選擇顯示的存儲器的類:下拉菜單中,可以選擇顯示的存儲器的類

15、型:如程序存儲器(型:如程序存儲器(Program)、數(shù)據(jù)存儲器)、數(shù)據(jù)存儲器(Data) 和和I/O空間;空間;(3)View/Registers:包含:包含“CPU”、“Status”兩兩個選項,點擊相應(yīng)的選項可以觀察調(diào)試過程中個選項,點擊相應(yīng)的選項可以觀察調(diào)試過程中CPU寄存器和狀態(tài)(寄存器和狀態(tài)(Status)寄存器各個狀態(tài)位的)寄存器各個狀態(tài)位的變化情況。變化情況。(4)View/Peripherals:點擊可以觀察調(diào)試過程中:點擊可以觀察調(diào)試過程中外設(shè)模塊寄存器的變化情況。外設(shè)模塊寄存器的變化情況。(5)View/Mixed Source:選擇此選項則能同時顯:選擇此選項則能同時顯

16、示示C語言代碼及與之關(guān)聯(lián)的反匯編代碼(反匯編代語言代碼及與之關(guān)聯(lián)的反匯編代碼(反匯編代碼位于碼位于C語言代碼下方)。語言代碼下方)。若需要取消此功能,只要再次點擊此選項即可。若需要取消此功能,只要再次點擊此選項即可。(6)View/Watch Window:觀察調(diào)試過程中的變:觀察調(diào)試過程中的變量,量,C表達式的值,地址空間和寄存器的值。表達式的值,地址空間和寄存器的值。 Watch Window:加入一個新的表達式:加入一個新的表達式:在觀察窗中的名字(在觀察窗中的名字(Name)中直接輸入要觀察的變量)中直接輸入要觀察的變量名,或者在程序窗口中選中要觀察的變量名,然后點名,或者在程序窗口中

17、選中要觀察的變量名,然后點擊右鍵,再點擊加到觀察窗(擊右鍵,再點擊加到觀察窗(Add to Watch Window)即可。即可。刪除一個表達式:刪除一個表達式:用鼠標(biāo)點擊要刪除的表達式,單擊鼠標(biāo)右鍵,在彈出用鼠標(biāo)點擊要刪除的表達式,單擊鼠標(biāo)右鍵,在彈出的對話框中選擇刪除選擇項(的對話框中選擇刪除選擇項(Delete Selected Item(s)。)。如果添加變量時,在如果添加變量時,在“添加變量對話框添加變量對話框”的文本欄中的文本欄中只是輸入變量名,則在觀察窗中只顯示出該變量的地只是輸入變量名,則在觀察窗中只顯示出該變量的地址;址;如果需要顯示該變量的值,則需要在變量名前加如果需要顯示

18、該變量的值,則需要在變量名前加*號。號。3.調(diào)試菜單調(diào)試菜單(1)Debug/Breakpoints:斷點設(shè)置。:斷點設(shè)置。設(shè)置斷點:設(shè)置斷點:最簡單的方法是用鼠標(biāo)左鍵點擊需要設(shè)置斷點的程序最簡單的方法是用鼠標(biāo)左鍵點擊需要設(shè)置斷點的程序處,再點擊鼠標(biāo)右鍵,從彈出的對話框中選擇處,再點擊鼠標(biāo)右鍵,從彈出的對話框中選擇“Toggle breakpoint”即可;即可;去掉斷點:去掉斷點:用鼠標(biāo)左鍵點擊相應(yīng)的斷點處,再點擊鼠標(biāo)右鍵,從用鼠標(biāo)左鍵點擊相應(yīng)的斷點處,再點擊鼠標(biāo)右鍵,從彈出的對話框中再次選擇彈出的對話框中再次選擇“Toggle breakpoint”即可。即可。(1)Debug/Probe

19、 Points:探測點設(shè)置。:探測點設(shè)置。在設(shè)置探測點的地方,可以將主機文件的數(shù)據(jù)讀到在設(shè)置探測點的地方,可以將主機文件的數(shù)據(jù)讀到DSP目標(biāo)系統(tǒng)的存儲器,或?qū)⒛繕?biāo)系統(tǒng)的存儲器,或?qū)SP目標(biāo)系統(tǒng)存儲器的目標(biāo)系統(tǒng)存儲器的數(shù)據(jù)寫入主機的文件中。數(shù)據(jù)寫入主機的文件中。(2)Debug/Step Into (快捷鍵為快捷鍵為F8):單步執(zhí)行。:單步執(zhí)行。單步執(zhí)行程序,如果運行到調(diào)用函數(shù)處,則跳入調(diào)用單步執(zhí)行程序,如果運行到調(diào)用函數(shù)處,則跳入調(diào)用的程序繼續(xù)單步執(zhí)行。的程序繼續(xù)單步執(zhí)行。(3)Debug/Step Over(快捷鍵為快捷鍵為F10):單步執(zhí)行。:單步執(zhí)行。單步執(zhí)行程序,但與單步執(zhí)行程序,但

20、與Step Into不同的是,不進入調(diào)用不同的是,不進入調(diào)用的程序(子程序、中斷服務(wù)程序),即該命令一步執(zhí)的程序(子程序、中斷服務(wù)程序),即該命令一步執(zhí)行完被調(diào)用的程序。行完被調(diào)用的程序。(4)Debug/Step Out:跳出子程序。:跳出子程序。當(dāng)使用當(dāng)使用Step Into或或Step Over單步執(zhí)行指令時,如果程單步執(zhí)行指令時,如果程序運行到一個子程序中,執(zhí)行該命令將使程序執(zhí)行完序運行到一個子程序中,執(zhí)行該命令將使程序執(zhí)行完函數(shù)或子程序后,回到調(diào)用的地方。函數(shù)或子程序后,回到調(diào)用的地方。(5)Debug/Run(快捷鍵為快捷鍵為F5):執(zhí)行程序到斷點、:執(zhí)行程序到斷點、探測點或用戶中

21、斷(按系統(tǒng)機鍵盤上的探測點或用戶中斷(按系統(tǒng)機鍵盤上的ESC鍵中斷)鍵中斷)。(6)Debug/Halt(快捷鍵為快捷鍵為Shift + F5):當(dāng)執(zhí)行:當(dāng)執(zhí)行Run時,用時,用Halt來暫停程序的執(zhí)行。來暫停程序的執(zhí)行。(7)Debug/Reset CPU:對:對DSP進行復(fù)位。也復(fù)位進行復(fù)位。也復(fù)位DSP的目標(biāo)系統(tǒng),停止程序的執(zhí)行,初始化所有的寄的目標(biāo)系統(tǒng),停止程序的執(zhí)行,初始化所有的寄存器。存器。(8)Debug/Restart:將程序指針(:將程序指針(PC)指向程序的)指向程序的起始地址。起始地址。(9)Debug/Reset Emulator:對仿真器進行復(fù)位。:對仿真器進行復(fù)位。

22、4 工作窗口區(qū)介紹工作窗口區(qū)介紹常用工作窗口有:常用工作窗口有:1. 文件(文件(Files)窗口;)窗口;2. 反匯編程序(反匯編程序(Disassembly)窗口;)窗口;3. CPU寄存器窗口;寄存器窗口;4. 存儲器(存儲器(Memory)窗口;)窗口;5. 觀察(觀察(Watch)窗口等。)窗口等。 1. 文件窗口文件窗口 文件(文件(Files)窗口包括:當(dāng)前系統(tǒng)用到的)窗口包括:當(dāng)前系統(tǒng)用到的GEL文文件和項目。件和項目。 GEL文件:包括缺省的文件:包括缺省的f2812.gel文件。文件。 項目:包括用戶用到的頭文件、用項目:包括用戶用到的頭文件、用include定義的定義的引

23、用文件和用戶建立或添加的引用文件和用戶建立或添加的C源文件源文件*.C、匯編、匯編源文件源文件*.ASM、目標(biāo)文件、目標(biāo)文件*.OBJ、庫文件、庫文件*.LIB和和鏈接命令文件鏈接命令文件*.CMD。 2. 反匯編程序窗口反匯編程序窗口 反匯編程序(反匯編程序(Disassembly)窗口:用來顯示程序)窗口:用來顯示程序的反匯編代碼和程序存儲器的內(nèi)容。的反匯編代碼和程序存儲器的內(nèi)容。在這個窗口中,用一反顯高亮條來表示當(dāng)前程序在這個窗口中,用一反顯高亮條來表示當(dāng)前程序指針。指針。可用鼠標(biāo)點擊匯編語句的方法來設(shè)置斷點,再點可用鼠標(biāo)點擊匯編語句的方法來設(shè)置斷點,再點擊一次,則取消斷點。擊一次,則取

24、消斷點。3. CPU寄存器窗口寄存器窗口CPU寄存器窗口:顯示在程序調(diào)試過程中寄存器窗口:顯示在程序調(diào)試過程中CPU寄存器(程序指針寄存器(程序指針PC、累加器、累加器ACC、狀態(tài)寄存、狀態(tài)寄存器器ST0和和ST1、重復(fù)計數(shù)器、重復(fù)計數(shù)器RTC、輔助寄存器、輔助寄存器XAR0XAR7、中斷使能寄存器、中斷使能寄存器IER和中斷標(biāo)和中斷標(biāo)志寄存器志寄存器IFR等)的內(nèi)容。等)的內(nèi)容。若要改變寄存器的內(nèi)容,用鼠標(biāo)點擊要改變的寄若要改變寄存器的內(nèi)容,用鼠標(biāo)點擊要改變的寄存器,輸入值后回車即可。存器,輸入值后回車即可。4. 狀態(tài)寄存器窗口狀態(tài)寄存器窗口狀態(tài)寄存器窗口:顯示狀態(tài)寄存器中的各個狀態(tài)狀態(tài)寄存

25、器窗口:顯示狀態(tài)寄存器中的各個狀態(tài)位:位:SXM、OVM、TC、C、Z、N、V、PM、OVC、INTM、DBGM、PAGE0、VMAP、SPA、LOOP、EALLOW、IDLESTAT、AMODE、OBJMODE、CNT、M0M1MAP、XF、ARP的狀的狀態(tài)。態(tài)。若要改變狀態(tài)位內(nèi)容,用鼠標(biāo)點擊需改變的狀態(tài)若要改變狀態(tài)位內(nèi)容,用鼠標(biāo)點擊需改變的狀態(tài)位,輸入值后回車即可。位,輸入值后回車即可。5. 存儲器窗口存儲器窗口存儲器(存儲器(Memory)窗口:顯示存儲器的內(nèi)容。)窗口:顯示存儲器的內(nèi)容。存儲器可為程序存儲器、數(shù)據(jù)存儲器和存儲器可為程序存儲器、數(shù)據(jù)存儲器和I/O空間空間。若要改變存儲器內(nèi)

26、容,用鼠標(biāo)點擊需改變的存儲若要改變存儲器內(nèi)容,用鼠標(biāo)點擊需改變的存儲器地址,輸入值后回車即可。器地址,輸入值后回車即可。注意:某些存儲器的內(nèi)容是不能改變。注意:某些存儲器的內(nèi)容是不能改變。 6. 觀察窗口觀察窗口 觀察(觀察(Watch)窗口:顯示所選擇的變量、寄存器)窗口:顯示所選擇的變量、寄存器和存儲器的內(nèi)容。和存儲器的內(nèi)容。7. 建立狀態(tài)窗口建立狀態(tài)窗口建立狀態(tài)(建立狀態(tài)(Build)窗口:顯示一些狀態(tài)信息,如)窗口:顯示一些狀態(tài)信息,如果在編譯、匯編和連接過程中發(fā)現(xiàn)錯誤,則該窗口果在編譯、匯編和連接過程中發(fā)現(xiàn)錯誤,則該窗口顯示出錯誤類型和錯誤的位置。顯示出錯誤類型和錯誤的位置。用戶可根

27、據(jù)此信息對發(fā)生錯誤的地方進行修改。點用戶可根據(jù)此信息對發(fā)生錯誤的地方進行修改。點擊錯誤信息處,光標(biāo)就跳到程序中出錯地方的對應(yīng)擊錯誤信息處,光標(biāo)就跳到程序中出錯地方的對應(yīng)位置。位置。5 用用C編譯器開發(fā)應(yīng)用程序編譯器開發(fā)應(yīng)用程序的步驟的步驟1. 書寫書寫4種類型的文件種類型的文件開發(fā)一個開發(fā)一個DSP的的C語言應(yīng)用程序,需要以下語言應(yīng)用程序,需要以下4種類型種類型的文件:的文件: C/C+語言文件;語言文件; 匯編語言文件;匯編語言文件; 頭文件;頭文件; 命令文件。命令文件。 注意注意 4種類型的文件必須存儲在同一個文件夾中。種類型的文件必須存儲在同一個文件夾中。 還需要把一個還需要把一個“r

28、ts2800 . lib”的庫文件復(fù)制到該的庫文件復(fù)制到該目錄中。目錄中。 在默認情況下,在默認情況下, rts2800 . lib文件可以在目錄文件可以在目錄“C:CCStudio_v3.1C2000cgtoolslib”中找到中找到。 5.5 頭文件和命令文件頭文件和命令文件5.5.1 頭文件頭文件頭文件中定義:頭文件中定義:DSP系統(tǒng)用到的寄存器映射地址系統(tǒng)用到的寄存器映射地址,用戶用到的常量和用戶自定義的寄存器,文件,用戶用到的常量和用戶自定義的寄存器,文件名的后綴為名的后綴為.H。 5.5.2 命令文件命令文件.CMD命令文件:指定存儲區(qū)域的分配。命令文件:指定存儲區(qū)域的分配。文件擴

29、展名為文件擴展名為 .CMD。 文件文件DSP28_Adc.h DSP28_Adc.h#ifndef DSP28_ADC_H#define DSP28_ADC_H/ ADC 專用寄存器的位定義:專用寄存器的位定義:struct ADCTRL1_BITS / 位描述位描述 Uint16 rsvd1:4; / 位位 30 保留位保留位 Uint16 SEQ_CASC:1; / 位位 4 級連排序器工作模式選擇位級連排序器工作模式選擇位 Uint16 rsvd2:1; / 位位 5 保留位保留位 Uint16 CONT_RUN:1; / 位位 6 連續(xù)轉(zhuǎn)換位連續(xù)轉(zhuǎn)換位 Uint16 CPS:1; /

30、 位位 7 模數(shù)轉(zhuǎn)換時鐘預(yù)分頻位模數(shù)轉(zhuǎn)換時鐘預(yù)分頻位 Uint16 ACQ_PS:4; / 位位 118 采樣時間選擇位采樣時間選擇位 Uint16 SUSMOD:2; / 位位 1312 仿真懸掛工作模式選擇位仿真懸掛工作模式選擇位 Uint16 RESET:1; / 位位 14 模數(shù)轉(zhuǎn)換復(fù)位位模數(shù)轉(zhuǎn)換復(fù)位位 Uint16 rsvd3:1; / 位位 15 保留位保留位;union ADCTRL1_REG Uint16 all; struct ADCTRL1_BITS bit;struct ADCTRL2_BITS / 位描述位描述 Uint16 EVB_SOC_SEQ2:1; / 位位 0

31、 事件管理事件管理EVB對對SEQ2產(chǎn)生產(chǎn)生SOC的屏蔽位的屏蔽位 Uint16 rsvd1:1; / 位位 1 保留位保留位 Uint16 INT_MOD_SEQ2:1; / 位位 2 SEQ2中斷模式位中斷模式位 Uint16 INT_ENA_SEQ2:1; / 位位 3 SEQ2 中斷使能位中斷使能位 Uint16 rsvd2:1; / 位位 4 保留位保留位 Uint16 SOC_SEQ2:1; / 位位 5 啟動啟動SEQ2的轉(zhuǎn)換位的轉(zhuǎn)換位 Uint16 RST_SEQ2:1; / 位位 6 復(fù)位復(fù)位SEQ2 Uint16 EXT_SOC_SEQ1:1; / 位位 7 外部信號對外部

32、信號對SEQ1的啟動轉(zhuǎn)換位的啟動轉(zhuǎn)換位 Uint16 EVA_SOC_SEQ1:1; / 位位 8 事件管理事件管理EVA對對SEQ1產(chǎn)生產(chǎn)生SOC的屏蔽位的屏蔽位 Uint16 rsvd3:1; / 位位 9 保留位保留位 Uint16 INT_MOD_SEQ1:1; / 位位 10 SEQ1 中斷模式位中斷模式位 Uint16 INT_ENA_SEQ1:1; / 位位 11 SEQ1 中斷使能位中斷使能位 Uint16 rsvd4:1; / 位位 12 保留位保留位 Uint16 SOC_SEQ1:1; / 位位 13 啟動啟動SEQ1的轉(zhuǎn)換位的轉(zhuǎn)換位 Uint16 RST_SEQ1:1;

33、 / 位位 14 復(fù)位復(fù)位SEQ 1 Uint16 EVB_SOC_SEQ:1; / 位位 15 EVB SOC 使能位使能位;union ADCTRL2_REG Uint16 all; struct ADCTRL2_BITS bit;struct ADCCASEQSR_BITS / 位描述位描述 Uint16 SEQ1_STATE:4; / 位位30 SEQ1狀狀態(tài)態(tài) Uint16 SEQ2_STATE:3; / 位位62 SEQ2狀狀態(tài)態(tài) Uint16 rsvd1:1; / 位位7 保留位保留位 Uint16 SEQ_CNTR:4; / 位位118 排序計數(shù)排序計數(shù)器狀態(tài)位器狀態(tài)位 Uin

34、t16 rsvd2:4; / 位位1512 保留位保留位 ;union ADCCASEQSR_REG Uint16 all; struct ADCCASEQSR_BITS bit;struct ADCMAXCONV_BITS Uint16 MAX_CONV:7; / 位位60 最大轉(zhuǎn)化通道數(shù)位最大轉(zhuǎn)化通道數(shù)位 Uint16 rsvd1:9; / 位位157 保留位保留位;union ADCMAXCONV_REG Uint16 all; struct ADCMAXCONV_BITS bit;struct ADCCHSELSEQ1_BITS Uint16 CONV00:4; Uint16 CONV

35、01:4; Uint16 CONV02:4; Uint16 CONV03:4;union ADCCHSELSEQ1_REG Uint16 all; struct ADCCHSELSEQ1_BITS bit;struct ADCCHSELSEQ2_BITS Uint16 CONV04:4; Uint16 CONV05:4; Uint16 CONV06:4; Uint16 CONV07:4;union ADCCHSELSEQ2_REG Uint16 all; struct ADCCHSELSEQ2_BITS bit;struct ADCCHSELSEQ3_BITS Uint16 CONV08:4;

36、 Uint16 CONV09:4; Uint16 CONV10:4; Uint16 CONV11:4;union ADCCHSELSEQ3_REG Uint16 all; struct ADCCHSELSEQ3_BITS bit;struct ADCCHSELSEQ4_BITS Uint16 CONV12:4; Uint16 CONV13:4; Uint16 CONV14:4; Uint16 CONV15:4;union ADCCHSELSEQ4_REG Uint16 all; struct ADCCHSELSEQ4_BITS bit;struct ADCTRL3_BITS Uint16 SM

37、ODE_SEL:1; / 位位 0 采樣模式選擇位采樣模式選擇位 Uint16 ADCCLKPS:4; / 位位 41 模數(shù)轉(zhuǎn)換時鐘分頻器模數(shù)轉(zhuǎn)換時鐘分頻器 Uint16 ADCPWDN:1; / 位位 5 模數(shù)轉(zhuǎn)換掉電位模數(shù)轉(zhuǎn)換掉電位 Uint16 ADCBGRFDN:2; / 位位 76 模數(shù)轉(zhuǎn)換內(nèi)部參考電模數(shù)轉(zhuǎn)換內(nèi)部參考電壓源電源選擇位壓源電源選擇位 Uint16 rsvd1:8; / 位位 158 保留位保留位; union ADCTRL3_REG Uint16 all; struct ADCTRL3_BITS bit;struct ADCST_BITS Uint16 INT_SEQ1

38、:1; / 位位 0 SEQ1 中斷標(biāo)志中斷標(biāo)志 Uint16 INT_SEQ2:1; / 位位 1 SEQ2 中斷標(biāo)志中斷標(biāo)志 Uint16 SEQ1_BSY:1; / 位位 2 SEQ1 忙狀態(tài)位忙狀態(tài)位 Uint16 SEQ2_BSY:1; / 位位 3 SEQ2 忙狀態(tài)位忙狀態(tài)位s Uint16 INT_SEQ1_CLR:1; / 位位 4 SEQ1 中斷清零位中斷清零位 Uint16 INT_SEQ2_CLR:1; / 位位 5 SEQ2中斷清零位中斷清零位 Uint16 EOS_BUF1:1; / 位位 6 排序緩沖器排序緩沖器1的的末尾的的末尾 Uint16 EOS_BUF2:1

39、; / 位位 7 排序緩沖器排序緩沖器1的的末尾的的末尾 Uint16 rsvd1:8; / 位位 158 保留位保留位;union ADCST_REG Uint16 all; struct ADCST_BITS bit;struct ADC_REGS union ADCTRL1_REG ADCTRL1; / 模數(shù)轉(zhuǎn)換控制寄存器模數(shù)轉(zhuǎn)換控制寄存器1 union ADCTRL2_REG ADCTRL2; / 模數(shù)轉(zhuǎn)換控制寄存器模數(shù)轉(zhuǎn)換控制寄存器2 union ADCMAXCONV_REG ADCMAXCONV; / 最大轉(zhuǎn)換通道樹寄存器最大轉(zhuǎn)換通道樹寄存器 union ADCCHSELSEQ1_

40、REG ADCCHSELSEQ1; / 通道選擇排序控制寄存器通道選擇排序控制寄存器l union ADCCHSELSEQ2_REG ADCCHSELSEQ2; union ADCCHSELSEQ3_REG ADCCHSELSEQ3; union ADCCHSELSEQ4_REG ADCCHSELSEQ4; union ADCCASEQSR_REG ADCASEQSR; / 自動排序狀態(tài)寄存器自動排序狀態(tài)寄存器 Uint16 ADCRESULT0; / 轉(zhuǎn)換結(jié)果緩沖寄存器轉(zhuǎn)換結(jié)果緩沖寄存器 015 Uint16 ADCRESULT1; Uint16 ADCRESULT2; Uint16 ADC

41、RESULT3; Uint16 ADCRESULT4; Uint16 ADCRESULT5; Uint16 ADCRESULT6; Uint16 ADCRESULT7; Uint16 ADCRESULT8; Uint16 ADCRESULT9; Uint16 ADCRESULT10; Uint16 ADCRESULT11; Uint16 ADCRESULT12; Uint16 ADCRESULT13; Uint16 ADCRESULT14; Uint16 ADCRESULT15; union ADCTRL3_REG ADCTRL3; / 模數(shù)轉(zhuǎn)換控制寄存器模數(shù)轉(zhuǎn)換控制寄存器3 union AD

42、CST_REG ADCST; / 模數(shù)轉(zhuǎn)換狀態(tài)寄存器模數(shù)轉(zhuǎn)換狀態(tài)寄存器;/ 模數(shù)轉(zhuǎn)換外部參數(shù)函數(shù)聲明模數(shù)轉(zhuǎn)換外部參數(shù)函數(shù)聲明extern volatile struct ADC_REGS AdcRegs;#endif / DSP28_ADC_H 定義結(jié)束定義結(jié)束說明說明上述形式定義后,如果要對上述形式定義后,如果要對ADCTRL1付值付值value,則,則表達式為:表達式為:AdcRegs.ADCTRL1.allvalue;如果要對如果要對ADCTRL1的某一位進行操作,如對的某一位進行操作,如對ADCTRL1的復(fù)位位寫入的復(fù)位位寫入1,使,使ADC模塊復(fù)位,則表模塊復(fù)位,則表達式為:達式為:

43、AdcRegs.ADCTRL1.bit.RESET1; 1.命令文件常用的幾種偽指令。命令文件常用的幾種偽指令。段:編譯器產(chǎn)生幾個可以重新分配的代碼塊和數(shù)據(jù)段:編譯器產(chǎn)生幾個可以重新分配的代碼塊和數(shù)據(jù)塊。它可以以各種模式分配到存儲器中以符合多種塊。它可以以各種模式分配到存儲器中以符合多種系統(tǒng)配置。系統(tǒng)配置。有兩種基本的段類型:已初始化段和未初始化段。有兩種基本的段類型:已初始化段和未初始化段。 已初始化段:包含數(shù)據(jù)表或可執(zhí)行的代碼。已初始化段:包含數(shù)據(jù)表或可執(zhí)行的代碼。編譯器產(chǎn)生以下已初始化段:編譯器產(chǎn)生以下已初始化段:.text,.cinit,.const,.econst,.pinit 和和

44、.switch。 .text包含所有可執(zhí)行的代碼和常量。包含所有可執(zhí)行的代碼和常量。.cinit 包含全局變量和靜態(tài)變量的包含全局變量和靜態(tài)變量的C初始化紀(jì)初始化紀(jì)錄。錄。.pinit 包含全局構(gòu)造器(包含全局構(gòu)造器(C+)程序列表。)程序列表。.const 包含字符串常量和明確初始化了的全局包含字符串常量和明確初始化了的全局和靜態(tài)變量(由和靜態(tài)變量(由const限定了的)的初始化和說明限定了的)的初始化和說明。.econst 包含字符串常量和明確初始化了的全局包含字符串常量和明確初始化了的全局和靜態(tài)變量(由和靜態(tài)變量(由far const限定了的)的初始化和說限定了的)的初始化和說明。明。.

45、switch 包含轉(zhuǎn)換語句聲明的列表。包含轉(zhuǎn)換語句聲明的列表。未初始化段:在存儲器(通常是未初始化段:在存儲器(通常是RAM)中保留了)中保留了空間。這些段在目標(biāo)文件中沒有實際內(nèi)容,僅僅空間。這些段在目標(biāo)文件中沒有實際內(nèi)容,僅僅保留存儲空間而已。保留存儲空間而已。在程序運行時,創(chuàng)建和存儲變量可以使用這些空在程序運行時,創(chuàng)建和存儲變量可以使用這些空間。間。編譯器產(chǎn)生未被初始化段包括:編譯器產(chǎn)生未被初始化段包括:.bss, ebss,.stack,.sysmem 和和.esysmem。 .bss 為全局和靜態(tài)變量保留的空間。在程序為全局和靜態(tài)變量保留的空間。在程序啟動時,啟動時,C引導(dǎo)程序?qū)⒁龑?dǎo)程

46、序?qū)?cinit空間(可以在空間(可以在ROM中)中)中的數(shù)據(jù)復(fù)制出來并存儲在中的數(shù)據(jù)復(fù)制出來并存儲在.bss空間中。空間中。.ebss 為由為由far限定的全局和靜態(tài)變量或者使用限定的全局和靜態(tài)變量或者使用大存儲器模式時的全局和靜態(tài)變量保留的空間。在大存儲器模式時的全局和靜態(tài)變量保留的空間。在程序啟動時,程序啟動時,C引導(dǎo)程序?qū)⒁龑?dǎo)程序?qū)?cinit空間(可以在空間(可以在ROM中)中的數(shù)據(jù)復(fù)制出來并存儲在中)中的數(shù)據(jù)復(fù)制出來并存儲在.ebss空間中。空間中。.stack 為為C系統(tǒng)堆棧保留的空間。這個存儲區(qū)用系統(tǒng)堆棧保留的空間。這個存儲區(qū)用于給函數(shù)傳遞變量和為局部變量分配空間。于給函數(shù)傳遞

47、變量和為局部變量分配空間。.sysmem 為動態(tài)存儲分配保留的空間。保留的空間為動態(tài)存儲分配保留的空間。保留的空間被宏函數(shù)所用。如沒有使用宏函數(shù),該空間大小保被宏函數(shù)所用。如沒有使用宏函數(shù),該空間大小保留為留為0。.esysmem 為動態(tài)存儲分配保留空間。保留的空間為動態(tài)存儲分配保留空間。保留的空間被被far宏函數(shù)所用。如沒有使用宏函數(shù)所用。如沒有使用far宏函數(shù),該空間大宏函數(shù),該空間大小保留為小保留為0。說明說明 鏈接器從不同的模塊中取出每個段并將這些段用同一鏈接器從不同的模塊中取出每個段并將這些段用同一個名稱聯(lián)合起來產(chǎn)生輸出段。個名稱聯(lián)合起來產(chǎn)生輸出段。 全部的程序都是由這些輸出段組成的

48、。全部的程序都是由這些輸出段組成的。 可以根據(jù)需要將這些輸出段放置到地址空間的任何位可以根據(jù)需要將這些輸出段放置到地址空間的任何位置,以滿足系統(tǒng)的要求。置,以滿足系統(tǒng)的要求。 .text, .cinit和和.switch段通常鏈接到段通常鏈接到ROM和和RAM中,中,且必須鏈接到程序存儲器中(且必須鏈接到程序存儲器中(page 0)。)。 .const段也可以鏈接到段也可以鏈接到ROM和和RAM中,但必須在數(shù)中,但必須在數(shù)據(jù)空間(據(jù)空間(page 1)。)。 .bss/.ebss,.stack和和.sysmem/.esysmem段必須鏈接到段必須鏈接到RAM中且必須在數(shù)據(jù)存儲器中。中且必須在數(shù)

49、據(jù)存儲器中。 每個段所需要的存儲器類型每個段所需要的存儲器類型 段段存儲器類型存儲器類型頁頁.textROM or RAM0.cinitROM or RAM0.pinitROM or RAM0.switchROM or RAM0,1.constROM or RAM1.econstROM or RAM1.bssRAM1.ebssRAM1.stackRAM1.sysmemRAM1.esysmemRAM1MEMORY偽指令:用來標(biāo)示實際存在目標(biāo)系統(tǒng)偽指令:用來標(biāo)示實際存在目標(biāo)系統(tǒng)中可以使用的存儲器范圍,每個存儲器范圍具有中可以使用的存儲器范圍,每個存儲器范圍具有名字、起始地址和長度;名字、起始地址和

50、長度;SECTIONS偽指令:描述輸入段是如何組合到輸偽指令:描述輸入段是如何組合到輸出段內(nèi)的。出段內(nèi)的。命令文件可以把程序下載到命令文件可以把程序下載到F28x片內(nèi)片內(nèi)RAM中。中。 / 文件:文件:EzDSP_RAM_lnk.cmd/ 標(biāo)題:標(biāo)題:該命令文件假設(shè)用戶在導(dǎo)入時跳到該命令文件假設(shè)用戶在導(dǎo)入時跳到H0模式模式MEMORYPAGE 0: /* SARAM H0 在在PAGE 0 和和PAGE 1之間分配之間分配 */ PRAMH0 : origin = 0 x3F8000, length = 0 x001000 /* 僅當(dāng)從僅當(dāng)從XINTF Zone 7導(dǎo)入時,該存儲模塊與復(fù)位矢量

51、一起下載;否則復(fù)位矢量導(dǎo)入時,該存儲模塊與復(fù)位矢量一起下載;否則復(fù)位矢量從導(dǎo)入從導(dǎo)入ROM獲取。查看以下的部分獲取。查看以下的部分*/ RESET : origin = 0 x3FFFC0, length = 0 x000002 PAGE 1: /* SARAM */ RAMM0 : origin = 0 x000000, length = 0 x000400 RAMM1 : origin = 0 x000400, length = 0 x000400 /*外設(shè)模塊組外設(shè)模塊組0: */ DEV_EMU : origin = 0 x000880, length = 0 x000180 FLAS

52、H_REGS: origin = 0 x000A80, length = 0 x000060 CSM : origin = 0 x000AE0, length = 0 x000010 XINTF : origin = 0 x000B20, length = 0 x000020CPU_TIMER0: origin = 0 x000C00, length = 0 x000008 CPU_TIMER1: origin = 0 x000C08, length = 0 x000008 CPU_TIMER2: origin = 0 x000C10, length = 0 x000008 PIE_CTRL

53、: origin = 0 x000CE0, length = 0 x000020 PIE_VECT : origin = 0 x000D00, length = 0 x000100 /*外設(shè)模塊組外設(shè)模塊組1: */ ECAN_A : origin = 0 x006000, length = 0 x000100 ECAN_AMBOX: origin = 0 x006100, length = 0 x000100 /*外設(shè)模塊組外設(shè)模塊組2: */ SYSTEM : origin = 0 x007010, length = 0 x000020 SPI_A : origin = 0 x007040

54、, length = 0 x000010 SCI_A : origin = 0 x007050, length = 0 x000010 XINTRUPT : origin = 0 x007070, length = 0 x000010 GPIOMUX : origin = 0 x0070C0, length = 0 x000020 GPIODAT : origin = 0 x0070E0, length = 0 x000020 ADC : origin = 0 x007100, length = 0 x000020 EV_A : origin = 0 x007400, length = 0 x000040 EV_B : origin = 0 x007500, length = 0 x000040 SPI_B : origin = 0 x007740, length = 0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論