




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1嵌入式DSP軟件開發(fā)第五章:集成開發(fā)環(huán)境(CCS)目標(biāo):本章旨在向?qū)W員介紹DSP的集成開發(fā)環(huán)境(Code ComposerStudio),內(nèi)容如下:1) CCS的安裝及配置2) CCS的基本操作,文件的編輯,工程項(xiàng)目的建立和構(gòu)建3)工程項(xiàng)目的調(diào)試2時(shí)間:2.5學(xué)時(shí)教學(xué)方法:講授PPT+練習(xí)35.1 CCS概述5.1.1集成開發(fā)環(huán)境CCS概述針對(duì)TMS320系列DSP工作于Windows操作系統(tǒng)下,采用圖形接口界面提供有環(huán)境配置、源文件編輯、程序調(diào)試、跟蹤和分析等工具45.1.1集成開發(fā)環(huán)境CCS概述1.CCS兩種工作模式軟件仿真器模式可以脫離DSP芯片,在PC機(jī)上模擬DSP的指令集和工作機(jī)制
2、,主要用于前期算法實(shí)現(xiàn)和調(diào)試。硬件在線編程模式可以實(shí)時(shí)運(yùn)行在DSP芯片上,與硬件開發(fā)板相結(jié)合在線編程和調(diào)試應(yīng)用程序。55.1.1集成開發(fā)環(huán)境CCS概述2.主要構(gòu)成C55x集成代碼產(chǎn)生工具用來對(duì)C語言、匯編語言或混合語言編程的DSP源程序進(jìn)行編譯匯編,并鏈接成為可執(zhí)行的DSP程序主要包括匯編器、鏈接器、C/C+編譯器和建庫(kù)工具等集成開發(fā)環(huán)境集編輯、編譯、鏈接、軟件仿真、硬件調(diào)試和實(shí)時(shí)跟蹤等功能于一體包括編輯工具、工程管理工具和調(diào)試工具等DSP/BIOS實(shí)時(shí)內(nèi)核插件及其應(yīng)用程序接口API,主要為實(shí)時(shí)信號(hào)處理應(yīng)用而設(shè)計(jì),包括DSP/BIOS的配置工具、實(shí)時(shí)分析工具等65.1.1集成開發(fā)環(huán)境CCS概述
3、實(shí)時(shí)數(shù)據(jù)交換的RTDX插件以及相應(yīng)的程序接口API,可對(duì)目標(biāo)系統(tǒng)數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)視,實(shí)現(xiàn)DSP與其他應(yīng)用程序的數(shù)據(jù)交換由IT公司以外的第三方提供的各種應(yīng)用模塊插件75.1.1集成開發(fā)環(huán)境CCS概述3.CCS的主要功能具有集成可視化代碼編輯界面,用戶可通過其界面直接編寫C、匯編、.cmd文件等含有集成代碼生成工具,包括匯編器、優(yōu)化C編譯器、鏈接器等,將代碼的編輯、編譯、鏈接和調(diào)試等諸多功能集成到一個(gè)軟件環(huán)境中高性能編輯器支持匯編文件的動(dòng)態(tài)語法加亮顯示,使用戶很容易閱讀代碼,發(fā)現(xiàn)語法錯(cuò)誤工程項(xiàng)目管理工具可對(duì)用戶程序?qū)嵭许?xiàng)目管理。在生成目標(biāo)程序和程序庫(kù)的過程中,建立不同程序的跟蹤信息,通過跟蹤信息對(duì)不
4、同的程序進(jìn)行分類管理5.1.1集成開發(fā)環(huán)境CCS概述基本調(diào)試工具具有裝入執(zhí)行代碼、查看寄存器、存儲(chǔ)器、反匯編、變量窗口等功能,并支持C源代碼級(jí)調(diào)試斷點(diǎn)工具,能在調(diào)試程序的過程中,完成硬件斷點(diǎn)、軟件斷點(diǎn)和條件斷點(diǎn)的設(shè)置探測(cè)點(diǎn)工具,可用于算法的仿真,數(shù)據(jù)的實(shí)時(shí)監(jiān)視等分析工具,包括模擬器和仿真器分析,可用于模擬和監(jiān)視硬件的功能、評(píng)價(jià)代碼執(zhí)行的時(shí)鐘數(shù)據(jù)的圖形顯示工具,可以將運(yùn)算結(jié)果用圖形顯示,包括顯示時(shí)域/頻域波形、眼圖、星座圖、圖像等,并能進(jìn)行自動(dòng)刷新895.1.1集成開發(fā)環(huán)境CCS概述提供GEL工具。利用GEL擴(kuò)展語言,用戶可以編寫自己的控制面板/菜單,設(shè)置GEL菜單選項(xiàng),方便直觀地修改變量,配置
5、參數(shù)等支持多DSP的調(diào)試支持RTDX技術(shù),可在不中斷目標(biāo)系統(tǒng)運(yùn)行的情況下,實(shí)現(xiàn)DSP與其他應(yīng)用程序的數(shù)據(jù)交換提供DSP/BIOS工具,增強(qiáng)對(duì)代碼的實(shí)時(shí)分析能力5.1.2CCS軟件的安裝1.系統(tǒng)配置要求操作系統(tǒng):Windows2000/XP/NTPC :32MB以上RAM,500MB以上的剩余硬盤空間,Pentium133以上的微處理器,分辨率在800600以上的顯示器10115.1.2CCS軟件的安裝2.安裝過程包括兩個(gè)階段(1)安裝CCS系統(tǒng)軟件將CCS的安裝光盤放入CD-ROM驅(qū)動(dòng)器中,運(yùn)行光盤根目錄下的setup.exe,按照安裝向?qū)У奶崾緦CS安裝到指定目錄中(默認(rèn)安裝目錄為C:ti
6、)安裝完畢后,桌面出現(xiàn)“CCS2(C5000)”和“Setup CCS2(C5000)”兩個(gè)快捷方式圖標(biāo)圖51 CCS2快捷方式圖標(biāo)(2)安裝仿真器驅(qū)動(dòng)程序根據(jù)不同的仿真器,按照說明書的提示進(jìn)行安裝5.1.3 配置CCSCCS是一個(gè)開放的開發(fā)環(huán)境,必須設(shè)置不同的系統(tǒng)配置才能實(shí)現(xiàn)對(duì)不同環(huán)境的支持系統(tǒng)配置(System Configuration)定義用戶將要使用的目標(biāo)板(Target Board)或者軟件仿真器(Simulator)配置方法如下:(1)雙擊桌面上的“Setup CCS2(C5000)”快捷方式圖標(biāo),屏幕上將出現(xiàn)“Import Configuration”對(duì)話框1213圖52 Im
7、port Configuration對(duì)話框145.1.3配置CCS(2)在”Available Configuration(可用配置)”中列出了包含的所有可用系統(tǒng)配置,如:C54xx、C55xx等系列,有Simulator、Emulator,DSK等平臺(tái)供選擇(3)選擇合適的配置(在“Filters”選項(xiàng)中進(jìn)行設(shè)置可以幫助更快地在可用配置找到所用的配置),點(diǎn)擊“Import”按鈕,所選的系統(tǒng)配置就被添加進(jìn)“System Configuration”中了(4)點(diǎn)擊“Save and Quit”按鈕,保存系統(tǒng)配置(5)退出“Setup CCS2(C5000)”,即可完成CCS系統(tǒng)配置155.2 C
8、CS的基本操作進(jìn)入CCS主界面源文件的建立、打開、關(guān)閉與編輯工程項(xiàng)目的創(chuàng)建、關(guān)閉和打開工程中文件的添加或刪除工程的構(gòu)建(編譯、鏈接)165.2.1進(jìn)入CCS主界面圖形顯示窗口示窗口寄存器顯示窗口工程顯示窗口反匯編顯示窗口源程序編輯窗口主菜單工具條內(nèi)存顯圖53 CCS的主界面175.2.1 進(jìn)入CCS主界面1.窗口工程窗口編輯窗口反匯編窗口內(nèi)存顯示窗口寄存器顯示窗口圖形顯示窗口設(shè)置斷點(diǎn)、探測(cè)點(diǎn),完成單步執(zhí)行、復(fù)位等言擴(kuò)展功能菜單幫助2. 主菜單文件管理,載入執(zhí)行程序、符號(hào)及數(shù)據(jù)、文件輸入/輸出等文字及變量編輯。如剪貼、查找替換、內(nèi)存變量和寄存器編輯等工具條顯示設(shè)置。包括內(nèi)存、寄存器和圖形顯示等工
9、程項(xiàng)目管理、工程項(xiàng)目編譯和構(gòu)建工程項(xiàng)目等文 編 查 工 調(diào) 性 擴(kuò) 選件 輯 看 程 試 能 展 項(xiàng)分 功析 能性能菜單。包括設(shè)置時(shí)鐘 選項(xiàng)設(shè)置。設(shè)置字體、顏和性能斷點(diǎn)等 色、鍵盤屬性、動(dòng)畫速度、內(nèi)存映射等利用通用擴(kuò)展語工具菜單。包括管腳連接、端口連接、命令窗口、鏈接配置等工 DSP/ 窗具 BIOS 口核幫助菜單。為用戶提供在線幫助信息窗口管理。包括窗口排列、窗口列表等DSP/BIOS核。包括DSP/BIOS配置工具、實(shí)時(shí)分析工具、DSP/BIOS核、芯片支持庫(kù)等圖54 CCS的主菜單18(1) 標(biāo)準(zhǔn)工具條打打開已有的文件。3. 常用工具條創(chuàng)建文件按鈕。用來創(chuàng)建新文件。開文件按鈕。用來保存文
10、件按鈕。用來保存當(dāng)前窗口的文件。剪切按鈕。用來剪切文本,將標(biāo)記文本放入剪切板。復(fù)制按鈕。用來復(fù)制文本,將標(biāo)記文本放入剪切板。粘貼按鈕。用來粘貼文本,將剪切板中的文本粘貼在光標(biāo)處。撤消按鈕。用于撤消最后的編輯活動(dòng)。向上搜索按鈕。用來查找光標(biāo)所在處前一個(gè)要搜索的字符串。搜索多個(gè)文件按鈕。在多個(gè)文件中搜索指定的文本段。打印文件按鈕。用來打印當(dāng)前窗口源文件?;謴?fù)按鈕。用于恢復(fù)最后撤消的活動(dòng)。向下搜索按鈕。用來查找光標(biāo) 搜索文本段按鈕。將加亮顯示的文本所在處下一個(gè)要搜索的字符串。 段作為搜索文本,單擊該按鈕,窗口 幫助按鈕。為用戶提供上下文相關(guān)的幫助。圖55 標(biāo)準(zhǔn)工具條19查找下一個(gè)開括號(hào)對(duì),標(biāo)記與之對(duì)
11、應(yīng)的括號(hào)對(duì)內(nèi)的文本。查找匹配括號(hào)按鈕。查找下一個(gè)開括號(hào)按鈕。把選中的文本塊左移一個(gè)制表站。把選中的文本塊右移一個(gè)制表格。設(shè)置或取消書簽。查找下一個(gè)書簽。查找上一個(gè)書簽。編輯書簽。圖56 編輯工具條20把光標(biāo)放置在某括號(hào)前,按此按鈕即查找自光標(biāo)所在處開始的括號(hào),并標(biāo)記括號(hào)對(duì)中的文本。(2)編輯工具條(3)工程項(xiàng)目工具條編譯當(dāng)前的源文件,生成目標(biāo)(.obj)文件對(duì)上次 操作以后改變了的文件進(jìn)行編譯,并鏈接生成輸出(.out)文件重新編譯并鏈接當(dāng)前工程項(xiàng)目中的所有文件,生成輸出(.out)文件在編輯窗口中的源文件或反匯編指令中設(shè)置斷點(diǎn)設(shè)置探測(cè)點(diǎn)刪除全部探測(cè)點(diǎn)21刪除全部斷點(diǎn)圖57 項(xiàng)目工具條(4)調(diào)
12、試工具條單步運(yùn)行,遇到函數(shù)或子程序時(shí)全速完成,不進(jìn)入函數(shù)內(nèi)部或子程序。匯編語言調(diào)試 。單步運(yùn)行,遇到函數(shù)或子程序,則進(jìn)入函數(shù)內(nèi)部或子程序。C語言調(diào)試 。單步運(yùn)行,遇到函數(shù)或子程序時(shí)全速完成,不進(jìn)入函數(shù)內(nèi)部或子程序。C語言調(diào)試 。單步跳出,從當(dāng)前子程序的位置全速執(zhí)行后續(xù)子程序,返回到調(diào)用該子程序的指令。單步運(yùn)行,遇到函數(shù)或子程序,則進(jìn)入函數(shù)內(nèi)部或子程序。匯編語言調(diào)試 。程序從上次運(yùn)行停止處,全速運(yùn)行到當(dāng)前光標(biāo)處。從當(dāng)前PC位置開始執(zhí)行程序,直到遇到斷點(diǎn)后停止。在執(zhí)行前先設(shè)置好各斷點(diǎn),每按一次該按鈕,就會(huì)從當(dāng)前程序位置執(zhí)行到下一個(gè)斷點(diǎn)處。連續(xù)按該按鈕可以實(shí)現(xiàn)動(dòng)畫運(yùn)行。暫停正在執(zhí)行的程序。用來顯示寄
13、存器觀察窗口,觀察和修改寄存器。用來打開存儲(chǔ)器窗口選項(xiàng),顯示存儲(chǔ)器觀察窗口。用來打開調(diào)用堆棧觀察窗口。 用來打開反匯編窗口。22用來打開觀察窗口,監(jiān)視局部變量和全局變量的值。用來打開快速觀察窗口,查看和修改變量。圖58 調(diào)試工具條235.2.2 源文件的建立、打開、關(guān)閉與編輯以音頻增益處理程序(volume)為例,在CCS環(huán)境下講述源程序文件的建立和編輯,工程文件的建立,工程項(xiàng)目的編譯、鏈接,程序的運(yùn)行控制、變量觀察等CCS的基本使用方法。5.2.2 源文件的建立、打開、關(guān)閉與編輯例5-1,建立3個(gè)新的文本格式源程序文件,文件內(nèi)容如下:(1)C語言源程序volume.c:/-相關(guān)頭文件-/#i
14、nclude volume.h/-工作變量定義-/int inp_bufferBUF_SIZE;int out_bufferBUF_SIZE;/ 輸入緩沖區(qū)/ 輸出緩/ BUF_SIZE的定義見volume.hint *input;int *output;int volume = 2;struct PARMS str = 2934, 9432, 213, 9432, &str;24/-調(diào)用子程序規(guī)則-/int read_signals(int *input);int write_buffer(int *input,int *output,int count);int output_signal
15、s(int *output);main()int num = BUF_SIZE;int i0;input=inp_buffer;output=out_buffer;while ( TRUE )read_signals(inp_buffer);/ 加軟件斷點(diǎn)和探針write_buffer(inp_buffer, out_buffer, num);output_signals(output);i+; 2526/ 讀取輸入信號(hào)int read_signals(int *input)return(TRUE); / 在此讀取采集數(shù)據(jù)信號(hào)放到輸入緩沖區(qū)input/ 將數(shù)據(jù)進(jìn)行處理后搬移到輸出緩沖區(qū)int
16、write_buffer(int *input,int *output,int count)int i;for ( i=0;i DARAM.vectors: VECT.trcinit: DARAM.gblinit: DARAMfrt: DARAM.cinit: DARAM.pinit: DARAM.29.sysinit: DARAM.bss:.far: DARAM2 DARAM2.const: DARAM2.switch: DARAM2.sysmem: DARAM2.cio: DARAM2.MEM$obj: DARAM2.sysheap: DARAM2.sysstack: DARAM2.sta
17、ck: DARAM230315.2.3工程項(xiàng)目的創(chuàng)建、關(guān)閉和打開1.創(chuàng)建一個(gè)新的工程項(xiàng)目選擇菜單“Project - New”,打開“Project Creation”對(duì)話框在“Project”填入工程名,在“Location”中會(huì)自動(dòng)補(bǔ)全存儲(chǔ)路徑,也可以自由選擇存儲(chǔ)路徑 在“Project Type”中選擇“Executable(.out)”,這表示生成一個(gè).out類型的可執(zhí)行的文件在“Target”中填入平臺(tái)名稱選擇工程所在目錄為5.2.3工程項(xiàng)目的創(chuàng)建、關(guān)閉和打開例5-2,創(chuàng)建一個(gè)名為“volume.pjt”的工程文件。輸入新建工程名 volume選擇Executable(.out)E:
18、DSP_C55examvolume選擇TMS320c55x單擊完成設(shè)置32335.2.3 工程項(xiàng)目的創(chuàng)建、關(guān)閉和打開2.工程項(xiàng)目的關(guān)閉選擇菜單“Project - Close”即可關(guān)閉當(dāng)前工程項(xiàng)目。3.工程項(xiàng)目的打開選擇項(xiàng)目菜單“Project”中的“Open”命令,彈出“Project Open”對(duì)話框在對(duì)話框中,選擇要打開的工程項(xiàng)目文件,單擊“打開”按鈕。說明:打開另一個(gè)工程項(xiàng)目后,以前打開的工程項(xiàng)目將自動(dòng)關(guān)閉345.2.4工程中文件的添加或刪除1.向工程中添加文件單擊“Project -Add File to Projects”,選擇添加的文件或在項(xiàng)目管理器(Project View)中
19、單擊右鍵或?qū)⑽募线M(jìn)項(xiàng)目管理器的窗口中來完成添加文件任務(wù)2.從工程中刪除文件在工程項(xiàng)目清單中,用右鍵單擊所要?jiǎng)h除的文件,彈出關(guān)聯(lián)菜單,選擇“Remove from Project”選項(xiàng)即可刪除該文件工程項(xiàng)目的構(gòu)建: 對(duì)工程有關(guān)文件進(jìn)行編譯鏈接,生成可執(zhí)行文件CCS的構(gòu)建工程項(xiàng)目提供了4種操作,即編譯文件增加性構(gòu)建全部重新構(gòu)建停止構(gòu)建355.2.5工程的構(gòu)建(編譯、鏈接)1.編譯文件編譯文件僅完成對(duì)當(dāng)前源文件的編譯,不進(jìn)行鏈接。具體操作如下:在工程項(xiàng)目清單中,右擊要編譯的源文件名,選擇關(guān)聯(lián)菜單中的“Open”選項(xiàng),打開要編譯的源文件。也可雙擊文件名,打開源文件在菜單“Project”中選擇“Co
20、mpile File”,或單擊項(xiàng)目工具條中的編譯文件按鈕,對(duì)打開的文件進(jìn)行編譯在對(duì)當(dāng)前文件進(jìn)行編譯的過程中,工作界面的底部出現(xiàn)“Output”窗口,顯示編譯信息365.2.5工程的構(gòu)建(編譯、鏈接)2.增加性構(gòu)建僅對(duì)修改過的源文件進(jìn)行編譯,先前編譯過、沒有修改的文件不再進(jìn)行編譯以下方法都可以完成工程項(xiàng)目的增加性構(gòu)建選擇項(xiàng)目菜單“Project”中的“Build”命令單擊項(xiàng)目工具條中的增加性構(gòu)建按鈕在工程項(xiàng)目窗口中,右擊工程項(xiàng)目文件,選擇關(guān)聯(lián)菜單中的“Build”選項(xiàng)375.2.5工程的構(gòu)建(編譯、鏈接)3.全部重新構(gòu)建對(duì)當(dāng)前工程項(xiàng)目中的所有文件進(jìn)行重新編譯、重新鏈接,形成輸出文件以下方法都可以
21、完成工程項(xiàng)目的增加性構(gòu)建選擇“Project”菜單中的“RebuildAll”單擊項(xiàng)目工具條中的全部重新構(gòu)建按鈕385.2.5工程的構(gòu)建(編譯、鏈接)4.停止構(gòu)建停止當(dāng)前的構(gòu)建進(jìn)程選擇“Project”菜單中的“Stop Build”或單擊項(xiàng)目工具條中的停止構(gòu)建按鈕395.2.5工程的構(gòu)建(編譯、鏈接)5.工程項(xiàng)目選項(xiàng)工程項(xiàng)目選項(xiàng)的類型:C編譯器選項(xiàng)匯編器選項(xiàng)鏈接器選項(xiàng)工程項(xiàng)目選項(xiàng)類型的設(shè)定可通過工程項(xiàng)目選項(xiàng)對(duì)話框來設(shè)定也可以在工程項(xiàng)目命令文件中設(shè)定,參考第4章有關(guān)內(nèi)容405.2.5工程的構(gòu)建(編譯、鏈接)例5-2,構(gòu)建“volume.pjt”工程打開“volume.pjt”,點(diǎn)擊項(xiàng)目工具條中
22、的按鈕,即可完成該工程的全部重新構(gòu)建生成的可執(zhí)行代碼文件為“volume.out”,放在目錄e:DSP_C55examvolumedebug下415.3 工程項(xiàng)目的調(diào)試當(dāng)完成工程項(xiàng)目構(gòu)建,生成目標(biāo)文件后,就可以進(jìn)行程序的調(diào)試一般的調(diào)試步驟為:裝入構(gòu)建好的目標(biāo)文件設(shè)置程序斷點(diǎn)、探測(cè)點(diǎn)和評(píng)價(jià)點(diǎn)執(zhí)行程序程序停留在斷點(diǎn)處,查看寄存器和內(nèi)存單元的數(shù)據(jù),并對(duì)中間數(shù)據(jù)進(jìn)行在線(或輸出)分析425.3.1程序的運(yùn)行控制程序運(yùn)行控制在調(diào)試程序過程中的復(fù)位、執(zhí)行、單步執(zhí)行等操作CCS開發(fā)環(huán)境提供了多種調(diào)試程序的運(yùn)行操作。使用調(diào)試工具條或使用調(diào)試菜單“Debug”中的相應(yīng)命令435.3.1程序的運(yùn)行控制1.加載程序
23、裝載程序在進(jìn)行程序運(yùn)行之前,需將.out目標(biāo)文件裝入目標(biāo)系統(tǒng)選擇菜單“File-Load Program”,彈出“Load Program”對(duì)話框中,選擇所要裝載的.out文件,即可將程序加載到目標(biāo)系統(tǒng)重新裝載程序在調(diào)試程序的過程中,經(jīng)常會(huì)出現(xiàn)程序被破壞的情況??蛇x擇“File”菜單中的“Reload Program”命令,向目標(biāo)系統(tǒng)重新裝載文件445.3.1程序的運(yùn)行控制2.復(fù)位目標(biāo)處理器CPU復(fù)位命令在“Debug”調(diào)試菜單中,選擇“Reset CPU”該命令是將目標(biāo)處理器CPU恢復(fù)到上電初始狀態(tài),初始化所有寄存器的內(nèi)容,并停止當(dāng)前所執(zhí)行的用戶程序重新開始命令在“Debug”調(diào)試菜單中,選
24、擇“Restart”該命令是將CCS的程序指針PC恢復(fù)到用戶程序的入口地址,但不能開始執(zhí)行程序455.3.1程序的運(yùn)行控制2.復(fù)位目標(biāo)處理器進(jìn)入主程序命令在“Debug”調(diào)試菜單中,選擇“Go Main”該命令用于調(diào)試C語言用戶程序其功能是將一個(gè)臨時(shí)斷點(diǎn)設(shè)置在用戶程序關(guān)鍵字“main”處,并從此處開始執(zhí)行用戶程序,直到遇到用戶設(shè)置的斷點(diǎn)或執(zhí)行“Halt”命令時(shí),停止執(zhí)行程序,撤銷臨時(shí)斷點(diǎn)當(dāng)執(zhí)行的用戶程序停止在“main()”處時(shí),相關(guān)的一些源文件被自動(dòng)裝載465.3.1程序的運(yùn)行控制3.單步運(yùn)行(1)單步進(jìn)入(快捷鍵F8)若源程序采用匯編指令,則該命令完成一條匯編指令的執(zhí)行若采用的是C程序,則
25、這一命令將執(zhí)行一條C指令,可進(jìn)入語句內(nèi)部(如子程序或軟件中斷等)調(diào)試475.3.1程序的運(yùn)行控制3.單步運(yùn)行(1)單步進(jìn)入(快捷鍵F8)若源程序采用匯編指令,則該命令完成一條匯編指令的執(zhí)行若采用的是C程序,則這一命令將執(zhí)行一條C指令,可進(jìn)入語句內(nèi)部(如子程序或軟件中斷等)調(diào)試5.3.1程序的運(yùn)行控制(2)單步執(zhí)行(快捷鍵F10)在菜單“Debug”中,選擇“Step Over”命令或單擊調(diào)試工具條上的按鈕單步執(zhí)行操作該操作是每發(fā)出一條操作命令,執(zhí)行一條或一段程序?qū)τ谝话愠绦?,該命令僅執(zhí)行一條程序指令(一條匯編指令或C語句)若所執(zhí)行的是一條程序調(diào)用語句,則該命令是將所調(diào)用的程序作為一條指令來完成
26、,即把調(diào)用指令和調(diào)用程序作為一條指令來執(zhí)行485.3.1程序的運(yùn)行控制(3)單步跳出(快捷鍵Shift+F7)執(zhí)行菜單“Debug”中的“Step Out”命令或單擊調(diào)試工具條上的按鈕,即可完成單步跳出操作此命令可完成從子程序中跳出,即從當(dāng)前子程序的位置開始,自動(dòng)執(zhí)行后續(xù)的程序,直到返回到調(diào)用該子程序的指令為止495.3.1程序的運(yùn)行控制(4)執(zhí)行到當(dāng)前光標(biāo)處(快捷鍵Ctrl+F10)可以通過選擇菜單“Debug”中的“Run to Cursor”命令或單擊調(diào)試工具條中的按鈕來完成操作在程序的調(diào)試過程中,此項(xiàng)操作可以提供方便的調(diào)試方法,只要在反匯編窗口中設(shè)置一個(gè)光標(biāo)(單擊設(shè)定指令的所在行),就
27、可以使程序從當(dāng)前位置開始,一直執(zhí)行到光標(biāo)所在處為止505.3.1程序的運(yùn)行控制4.多步執(zhí)行操作Operations”命令,彈選擇調(diào)試菜單“Debug”中的“Multiple出“Multiple Operation”對(duì)話框在對(duì)話框的下拉菜單中選擇相應(yīng)的單步操作類型,在對(duì)話框的“Count”選項(xiàng)中設(shè)定相應(yīng)的操作次數(shù),單擊“OK”按鈕即可完成多步操作51525.3.1程序的運(yùn)行控制5.實(shí)時(shí)運(yùn)行執(zhí)行程序選擇調(diào)試菜單“Debug”中的“Run”命令,或單擊調(diào)試工具條上的運(yùn)行程序按鈕,程序運(yùn)行直到遇見斷點(diǎn)為止暫停執(zhí)行在調(diào)試菜單“Debug”中,選擇“Halt”命令,或單擊調(diào)試工具條上的暫停程序按鈕,暫停程
28、序的運(yùn)行535.3.1程序的運(yùn)行控制5.實(shí)時(shí)運(yùn)行(續(xù))動(dòng)畫執(zhí)行使用調(diào)試菜單“Debug”中的 “Animate”命令,或單擊調(diào)試工具條上的動(dòng)畫執(zhí)行按鈕,可以實(shí)現(xiàn)動(dòng)畫操作在執(zhí)行前先設(shè)置好各斷點(diǎn),然后,每執(zhí)行一次操作命令,就會(huì)從當(dāng)前程序位置執(zhí)行到下一個(gè)斷點(diǎn)處動(dòng)畫執(zhí)行速度可通過設(shè)置選項(xiàng)設(shè)定545.3.1程序的運(yùn)行控制5.實(shí)時(shí)運(yùn)行(續(xù))自由運(yùn)行在調(diào)試菜單“Debug”中的“Run Free”命令,實(shí)現(xiàn)用戶程序的自由運(yùn)行這是一種全速執(zhí)行用戶程序的操作。從當(dāng)前的PC位置開始,忽略所有的斷點(diǎn)、探測(cè)點(diǎn)和評(píng)價(jià)點(diǎn),全速執(zhí)行用戶程序若要停止自由運(yùn)行,可使用“Halt(暫停)”命令或?qū)δ繕?biāo)處理器進(jìn)行硬件復(fù)位555.3
29、.2 斷點(diǎn)斷點(diǎn)的作用暫停程序的運(yùn)行,以便觀察程序的狀態(tài),檢查或修正變量,查看調(diào)用的堆棧、存儲(chǔ)器和寄存器的內(nèi)容等斷點(diǎn)可以設(shè)置在編輯窗口中源代碼行上,也可以設(shè)置在反匯編窗口中的反匯編指令上設(shè)置斷點(diǎn)時(shí)應(yīng)當(dāng)避免以下兩種情形:將斷點(diǎn)設(shè)置在屬于分支或調(diào)用的語句上將斷點(diǎn)設(shè)置在塊重復(fù)操作的倒數(shù)第一或第二條語句上565.3.2 斷點(diǎn)1.斷點(diǎn)的設(shè)置方法在反匯編窗口或含有C源代碼的編輯窗口中,將光標(biāo)移到需要設(shè)置斷點(diǎn)的語句行上,單擊項(xiàng)目工具條上的設(shè)置斷點(diǎn)按鈕,則在該行語句設(shè)置一個(gè)斷點(diǎn)或:通過菜單“Debug”中“Breakpoints”命令,彈出“Breakpoints /Probe Points”對(duì)話框。然后在對(duì)話
30、框中選擇斷點(diǎn)類型、位置5.3.2 斷點(diǎn)2.斷點(diǎn)的刪除單擊項(xiàng)目工具條上的刪除斷點(diǎn)按鈕,可以刪除全部斷點(diǎn)如果只想刪除部分?jǐn)帱c(diǎn),可以打開“Breakpoints /ProbePoints”對(duì)話框,在斷點(diǎn)窗口的清單中,選擇要?jiǎng)h除的斷點(diǎn),單擊“delete”按鈕,可以刪除該斷點(diǎn)57585.3.2 斷點(diǎn)3.斷點(diǎn)的允許和禁止禁止斷點(diǎn)打開“Breakpoints /Probe Points”對(duì)話框。在斷點(diǎn)窗口的清單中,選擇要?jiǎng)h除的斷點(diǎn),單擊該斷點(diǎn)的標(biāo)記框,清除“”號(hào)標(biāo)記,使該斷點(diǎn)處于禁止?fàn)顟B(tài)??梢詣h除部分?jǐn)帱c(diǎn)允許斷點(diǎn)打開“Breakpoints /Probe Points”對(duì)話框,在斷點(diǎn)窗口的清單中,選擇要允
31、許的斷點(diǎn),單擊該斷點(diǎn)的標(biāo)記框,設(shè)置“”號(hào)標(biāo)記,使該斷點(diǎn)處于允許狀態(tài)595.3.3 反匯編窗口的使用反匯編窗口主要用來顯示反匯編后的指令和調(diào)試所需的符號(hào)信息,包括反匯編指令、指令所存放的地址和相應(yīng)的操作碼(機(jī)器碼)。605.3.3 反匯編窗口的使用1.打開反匯編窗口當(dāng)程序裝入目標(biāo)處理器或仿真器后,CCS會(huì)自動(dòng)打開反匯編窗口用戶可以使用“View”菜單中的“Dis-Assembly”選項(xiàng),或調(diào)試工具條中的觀察反匯編按鈕,打開多個(gè)反匯編窗口61圖 59 反匯編窗口625.3.3 反匯編窗口的使用2. 修改程序當(dāng)前地址在調(diào)試程序時(shí),經(jīng)常需要修改執(zhí)行程序的當(dāng)前地址,可在反匯編窗口中完成在反匯編窗口中,把
32、光標(biāo)移至某程序行,選擇菜單“Debug”的“Set PC to Cursor”選項(xiàng),即可把執(zhí)行程序的當(dāng)前地址設(shè)置在光標(biāo)處5.3.3 反匯編窗口的使用3.觀看C源程序與匯編程序的混合代碼利用反匯編窗口可以觀看C源程序和匯編程序的混合代碼。選擇“View-Mixed Source/ASM”,則會(huì)同時(shí)顯示匯編語言語句和C語言語句,如圖5-15所示。635.3.3 反匯編窗口的使用3.觀看C源程序與匯編程序的混合代碼利用反匯編窗口可以觀看C源程序和匯編程序的混合代碼。選擇“View-Mixed Source/ASM”,則會(huì)同時(shí)顯示匯編語言語句和C語言語句,如圖5-10所示。6465說明:?jiǎn)螕裟硞€(gè)指令或
33、寄存器,再按“F1”鍵,將出現(xiàn)關(guān)于這個(gè)指令和寄存器的詳細(xì)解釋。這是一個(gè)學(xué)習(xí)匯編語言的好方法。圖510 源文件窗口665.3.4 存儲(chǔ)器窗口的使用存儲(chǔ)器窗口可以直接顯示存儲(chǔ)器的內(nèi)容。在調(diào)試程序的過程中,可直接觀察存儲(chǔ)器的內(nèi)容來判斷程序的正確性。675.3.4 存儲(chǔ)器窗口的使用1.觀察存儲(chǔ)器的內(nèi)容(1)點(diǎn)擊調(diào)試工具條中的觀察存儲(chǔ)器按鈕,或選擇“View”菜單中的“Memory”選項(xiàng),可以打開“Memory WindowOptions”對(duì)話框。圖511 存儲(chǔ)器選項(xiàng)窗口685.3.4 存儲(chǔ)器窗口的使用(2)輸入各選項(xiàng)參量,確定窗口的特征。Address:地址。Q-Value:Q值表示所觀察數(shù)據(jù)的小數(shù)點(diǎn)
34、位置,其值可選擇031之間的整數(shù)。Format:數(shù)據(jù)格式,從下拉菜單中選擇。Use IEEE Float:數(shù)據(jù)以IEEE浮點(diǎn)格式顯示。Page:頁(yè)面選擇顯示的存儲(chǔ)器空間類型。可選擇的類型有Program(程序)、Data(數(shù)據(jù))和I/O。Enable Reference Buffer:使能參考緩沖器StartAddress:表示所要觀察的存儲(chǔ)器起始地址,注意必須以0 x開頭。EndAddress:存儲(chǔ)器結(jié)束地址。Update Refrence BufferAutomat:自動(dòng)更新參考緩沖器。695.3.4 存儲(chǔ)器窗口的使用(3)單擊“OK”按鈕,出現(xiàn)存儲(chǔ)器窗口.圖512 存儲(chǔ)器窗口5.3.4
35、存儲(chǔ)器窗口的使用2.編輯存儲(chǔ)器(1)快速編輯打開存儲(chǔ)器窗口,找到要編輯的存儲(chǔ)器位置。左鍵雙擊要編輯的存儲(chǔ)器所在行,彈出“Edit Memory”對(duì)話框。在編輯對(duì)話框的“Data”欄中,輸入要編輯的數(shù)據(jù)。點(diǎn)擊“Done”按鈕,完成存儲(chǔ)器的編輯。(2)采用命令菜單編輯打開“Edit”菜單,選擇“Memory”中的“Edit”命令,彈出“EditMemory”對(duì)話框。在“Address”和“Data”欄中,輸入地址和數(shù)。點(diǎn)擊“Done”按鈕,完成存儲(chǔ)器的編輯。70715.3.4 存儲(chǔ)器窗口的使用3. 存儲(chǔ)器塊操作拷貝數(shù)據(jù)塊,用來將存儲(chǔ)器中某一區(qū)域的數(shù)據(jù)塊復(fù)制到另一個(gè)區(qū)域。在主菜單“Edit”中,選擇
36、“Memory”中的“Copy”命令,打開“Setup for Copying”對(duì)話框。輸入源數(shù)據(jù)塊的首地址、數(shù)據(jù)長(zhǎng)度和存儲(chǔ)空間類型,輸入目標(biāo)數(shù)據(jù)塊首地址和存儲(chǔ)空間類型,點(diǎn)擊“OK”按鈕,即完成數(shù)據(jù)塊拷貝。填充數(shù)據(jù)塊,用特定的數(shù)據(jù)填充存儲(chǔ)器某一段區(qū)域。在主菜單“Edit”中,選擇“Memory”中的“Fill”命令。打開“Setup Fill Memory”對(duì)話框,輸入數(shù)據(jù)塊首地址、數(shù)據(jù)長(zhǎng)度、填充數(shù)據(jù)內(nèi)容和存儲(chǔ)空間類。點(diǎn)擊“OK”按鈕,完成數(shù)據(jù)塊填充。725.3.5 寄存器窗口的使用寄存器窗口的作用用來觀察目標(biāo)處理器的CPU寄存器和外設(shè)寄存器。CPU寄存器的內(nèi)容還可以通過寄存器編輯對(duì)話框進(jìn)行編
37、輯修改。735.3.5 寄存器窗口的使用1.啟動(dòng)寄存器窗口點(diǎn)擊調(diào)試工具條中的觀察寄存器按鈕,或選擇菜單“View”中的“Registers - CPURegisters”選項(xiàng),可以打開寄存器窗口。圖513 寄存器窗口745.3.5 寄存器窗口的使用2.編輯寄存器有三種方法可以打開編輯寄存器對(duì)話框在打開的寄存器窗口中,雙擊某寄存器名即可打開編輯對(duì)話框。選擇“Edit”菜單中的“Edit Register”命令,可打開編輯對(duì)話框。從寄存器窗口中,右擊窗口打開關(guān)聯(lián)菜單,選擇“EditRegister”命令,可打開編輯對(duì)話框。755.3.6 觀察窗口的使用觀察窗口(Watch Window)用于實(shí)時(shí)地
38、觀察和修改局部變量和全局變量的值。圖514 觀察窗口5.3.6 觀察窗口的使用1.打開觀察窗口使用調(diào)試工具條中的打開觀察窗口按鈕,或采用“View”菜單中的“Watch Window”命令都可以打開觀察窗口。在“Watch Locals”標(biāo)簽中,調(diào)試器自動(dòng)顯示局部變量的名字、大小、類型。局部變量的值可以被改變,但是名字不能改變。在“Watch”標(biāo)簽中,調(diào)試器顯示局部和全局變量以及指定表達(dá)式的名字、大小、類型。在“Watch Locals”窗口中不能添加或刪除變量,而添加變量或表達(dá)式需要在“Watch”窗口中進(jìn)行。76775.3.6 觀察窗口的使用2.在觀察窗口中加入觀察變量將光標(biāo)移到所選定的觀
39、察窗口中,單擊圖標(biāo),或按鍵盤上的“Insert”鍵,在出現(xiàn)的框內(nèi)輸入變量符號(hào),即把該變量加入到觀察窗口中。3.刪除觀察變量有兩種方法可以從觀察窗口中刪去某變量:在當(dāng)前觀察窗口中,雙擊某變量。按鍵盤中的“Delete”鍵,從窗口列表中刪除此變量。選中某變量后,右鍵單擊該變量,打開關(guān)聯(lián)菜單,選擇“Delete Selected Items”選項(xiàng),即可刪除該變量。785.3.6 觀察窗口的使用4.編輯變量有兩種方法可以完成變量的編輯:在觀察窗口中找到所要編輯的變量;左鍵雙擊要編輯的變量,在“Value”欄中,輸入要編輯的數(shù)據(jù)。選擇菜單“Edit”中的編輯變量命令“Edit Variable”,彈出編
40、輯變量對(duì)話框。在對(duì)話框中輸入信息:要編輯的變量名和新的變量值。點(diǎn)擊“OK”按鈕完成編輯。795.3.7 圖形顯示工具CCS開發(fā)環(huán)境提供了多種強(qiáng)大功能的圖形顯示工具,可以將內(nèi)存中的數(shù)據(jù)以各種圖形的方式顯示給用戶,幫助用戶直觀了解數(shù)據(jù)的意義。圖形工具在數(shù)字信號(hào)處理中非常有用,可以從總體上分析處理前和處理后的數(shù)據(jù),以觀察程序運(yùn)行的效果。在菜單“View”中選擇“Graph”選項(xiàng),即可進(jìn)入圖形顯示功能子菜單。805.3.7 圖形顯示工具表51 圖形顯示功能顯 示 類 型單時(shí)域 (Single Time)曲線雙時(shí)域 (Dual Time) 曲線描 述 內(nèi) 容顯示緩沖區(qū)信號(hào)的幅度-時(shí)間曲線在一幅圖形中顯示
41、兩條信號(hào)的幅度-時(shí)間曲線時(shí)頻圖FFT 幅度(FFT Magnitude)復(fù)數(shù) FFT(Complex FFT)FFT 幅度和相位(FFT Magnitude andPhase)FFT 多幀顯示(FFT Waterfall)星座圖(Constellation)眼圖(Eye Diagram)圖像顯示(Image)對(duì)顯示緩沖區(qū)信號(hào)進(jìn)行 FFT 變換,顯示幅度-頻率曲線對(duì)復(fù)數(shù)數(shù)據(jù)的實(shí)部和虛部分別進(jìn)行 FFT 變換,在一幅圖形中顯示兩條幅度-頻率曲線在一幅圖形中顯示幅度-頻率曲線和相位-頻率曲線對(duì)顯示緩沖區(qū)數(shù)據(jù)(實(shí)數(shù))進(jìn)行 FFT 變換,其幅度-頻率曲線構(gòu)成一幀。這些幀按時(shí)間順序構(gòu)成 FFT 多幀顯示圖
42、顯示信號(hào)的相位分布顯示信號(hào)碼間的干擾情況顯示 YUV 或 RGB 圖像815.3.8 探測(cè)點(diǎn)探測(cè)點(diǎn)是一種設(shè)置在源文件某條語句上的特殊斷點(diǎn),主要用來與一個(gè)外部文件的讀/寫相關(guān)聯(lián)。當(dāng)用戶程序運(yùn)行到探測(cè)點(diǎn)時(shí),自動(dòng)地從與該探測(cè)點(diǎn)連接的外部文件中讀入數(shù)據(jù)或?qū)⒋鎯?chǔ)器內(nèi)容輸出給外部文件。完成數(shù)據(jù)的傳輸后,自動(dòng)恢復(fù)程序的運(yùn)行。探測(cè)點(diǎn)在算法開發(fā)過程中是一個(gè)有用的工具,可用來與PC主機(jī)進(jìn)行數(shù)據(jù)通信。825.3.8 探測(cè)點(diǎn)1.探測(cè)點(diǎn)的設(shè)置探測(cè)點(diǎn)可以在編輯窗口的源文件中設(shè)置,也可以在反匯編窗口的反匯編指令中設(shè)置。在編輯窗口或反匯編窗口中,將光標(biāo)移到主函數(shù)要加入探測(cè)點(diǎn)的行上,單擊項(xiàng)目工具條上的設(shè)置探測(cè)點(diǎn)按鈕 ,即可完成探測(cè)點(diǎn)的設(shè)置。也可以使用設(shè)置探測(cè)點(diǎn)對(duì)話框完成探測(cè)點(diǎn)的設(shè)置。5.3.8 探測(cè)點(diǎn)2.探測(cè)點(diǎn)的刪除單擊項(xiàng)目工具條上的按鈕,可刪除所有探測(cè)點(diǎn)。打開設(shè)置探測(cè)點(diǎn)對(duì)話框從“Probe Point”窗口列表中選擇要?jiǎng)h除的探測(cè)點(diǎn),單擊“Delete”按鈕,即可刪除此探測(cè)點(diǎn)。若單擊“DeleteAll”按鈕,可刪除所有探測(cè)點(diǎn)。83禁止探測(cè)點(diǎn)允許探測(cè)點(diǎn)禁止所有探測(cè)點(diǎn)允許所
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 10萬噸煤礦合同范本
- 單位只交社保合同范本
- 公司銷售代理合同范本
- 出售機(jī)械板車合同范本
- 醫(yī)藥培訓(xùn)銷售合同范本
- 個(gè)人精裝房租賃合同范例
- 保潔大掃除合同范本
- 買汽車有沒有三包合同范本
- 加工基地 合同范本
- 勞務(wù)用工合同范本
- 部隊(duì)安全教育教案大全
- 交易商協(xié)會(huì)非金融企業(yè)債務(wù)融資工具發(fā)行注冊(cè)工作介紹
- 《人與環(huán)境》課程教學(xué)大綱
- 班組長(zhǎng)管理能力提升培訓(xùn)(PPT96張)課件
- 深圳市城市用地分類表
- 法蘭蝶閥螺栓配用表
- 垃圾中轉(zhuǎn)站施工方案及施工方法
- 內(nèi)蒙古自治區(qū)小額貸款公司試點(diǎn)管理實(shí)施細(xì)則
- 勞務(wù)分包入住生活區(qū)承諾書
- 直系親屬關(guān)系證明(存根)(共1頁(yè))
- 南充物業(yè)服務(wù)收費(fèi)管理實(shí)施細(xì)則
評(píng)論
0/150
提交評(píng)論