第4章 Keil MDK-ARM集成開(kāi)發(fā)環(huán)境_第1頁(yè)
第4章 Keil MDK-ARM集成開(kāi)發(fā)環(huán)境_第2頁(yè)
第4章 Keil MDK-ARM集成開(kāi)發(fā)環(huán)境_第3頁(yè)
第4章 Keil MDK-ARM集成開(kāi)發(fā)環(huán)境_第4頁(yè)
第4章 Keil MDK-ARM集成開(kāi)發(fā)環(huán)境_第5頁(yè)
已閱讀5頁(yè),還剩99頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Embedded System DevelopmentEmbedded System Development嵌入式系統(tǒng)與應(yīng)用嵌入式系統(tǒng)與應(yīng)用 第第4 4章章 Keil MDK-ARMKeil MDK-ARM集成開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境F3.1 Keil MDK-ARM3.1 Keil MDK-ARM簡(jiǎn)介簡(jiǎn)介F3.2 Keil MDK-ARM3.2 Keil MDK-ARM安裝安裝F3.3 Keil MDK-ARM3.3 Keil MDK-ARM集成開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境F3.4 3.4 新建新建ThumbThumb匯編程序項(xiàng)目匯編程序項(xiàng)目F3.5 Thumb3.5 Thumb匯編程序編譯與調(diào)試匯編程

2、序編譯與調(diào)試3.1 Keil MDK-ARM3.1 Keil MDK-ARM簡(jiǎn)介簡(jiǎn)介FKeil MDK-ARMKeil MDK-ARM ( (Microcontroller Development KitMicrocontroller Development Kit) )開(kāi)開(kāi)發(fā)工具源自德國(guó)發(fā)工具源自德國(guó)Keil()Keil(),被全球超過(guò),被全球超過(guò)1010萬(wàn)的萬(wàn)的嵌入式開(kāi)發(fā)工程師使用。嵌入式開(kāi)發(fā)工程師使用。F支持支持 1200 1200 多種基于多種基于 ARM CortexARM Cortex-M -M 系列、系列、ARM7ARM7、ARM9ARM9 和和 Cortex-R4 Cortex

3、-R4 處理器的設(shè)備。處理器的設(shè)備。F它包含眾多示例、項(xiàng)目模板和中間件庫(kù),具有廣泛的它包含眾多示例、項(xiàng)目模板和中間件庫(kù),具有廣泛的 TCP/IP TCP/IP 軟件堆棧、軟件堆棧、Flash Flash 文件系統(tǒng)、文件系統(tǒng)、USB USB 主機(jī)和設(shè)備堆主機(jī)和設(shè)備堆棧、棧、CAN CAN 訪問(wèn)以及舒適的圖形用戶(hù)界面解決方案。訪問(wèn)以及舒適的圖形用戶(hù)界面解決方案。F易于使用的易于使用的 IDE IDE 和帶有高級(jí)分析功能的全功能調(diào)試器可和帶有高級(jí)分析功能的全功能調(diào)試器可幫助開(kāi)發(fā)人員快速啟動(dòng)項(xiàng)目,并集中精力實(shí)現(xiàn)其應(yīng)用程序幫助開(kāi)發(fā)人員快速啟動(dòng)項(xiàng)目,并集中精力實(shí)現(xiàn)其應(yīng)用程序的差異功能。的差異功能。FMDK

4、-ARMMDK-ARM四種版本:四種版本:MDK-LiteMDK-Lite、基礎(chǔ)版、標(biāo)準(zhǔn)版和專(zhuān)業(yè)版、基礎(chǔ)版、標(biāo)準(zhǔn)版和專(zhuān)業(yè)版。都提供。都提供C/C+C/C+開(kāi)發(fā)環(huán)境,專(zhuān)業(yè)版包括豐富的中間件庫(kù)。開(kāi)發(fā)環(huán)境,專(zhuān)業(yè)版包括豐富的中間件庫(kù)。Keil MDK-ARMKeil MDK-ARM簡(jiǎn)介簡(jiǎn)介FPCPC、IDEIDE開(kāi)發(fā)環(huán)境、仿真器、開(kāi)發(fā)板開(kāi)發(fā)環(huán)境、仿真器、開(kāi)發(fā)板宿主機(jī)仿真器開(kāi)發(fā)板IDE開(kāi)發(fā)環(huán)境邏輯分析儀邏輯分析儀示波器示波器Keil MDK-ARMKeil MDK-ARMKeil MDK-ARMKeil MDK-ARM簡(jiǎn)介簡(jiǎn)介F支持支持 Cortex-MCortex-M、Cortex-R4Cortex-

5、R4、ARM7 ARM7 和和 ARM9 ARM9 設(shè)備設(shè)備F行業(yè)領(lǐng)先的行業(yè)領(lǐng)先的 ARM ARM 、C/C+ C/C+ 編譯工具鏈編譯工具鏈F采用采用VisionVision4 4 IDEIDE、調(diào)試器和模擬環(huán)境、調(diào)試器和模擬環(huán)境FKeil RTXKeil RTX 占用空間小的實(shí)時(shí)操作系統(tǒng)(具有源代碼)占用空間小的實(shí)時(shí)操作系統(tǒng)(具有源代碼)FTCP/IP TCP/IP 網(wǎng)絡(luò)套件提供多個(gè)協(xié)議和各種應(yīng)用程序網(wǎng)絡(luò)套件提供多個(gè)協(xié)議和各種應(yīng)用程序FUSB USB 設(shè)備和設(shè)備和 USB USB 主機(jī)堆棧配備標(biāo)準(zhǔn)驅(qū)動(dòng)程序類(lèi)主機(jī)堆棧配備標(biāo)準(zhǔn)驅(qū)動(dòng)程序類(lèi)FULINKULINKpropro 支持對(duì)正在運(yùn)行的應(yīng)用程

6、序進(jìn)行即時(shí)分析并記支持對(duì)正在運(yùn)行的應(yīng)用程序進(jìn)行即時(shí)分析并記錄執(zhí)行的每條錄執(zhí)行的每條 Cortex-M Cortex-M 指令指令Keil MDK-ARMKeil MDK-ARM簡(jiǎn)介簡(jiǎn)介F有關(guān)程序執(zhí)行的完整代碼覆蓋率信息有關(guān)程序執(zhí)行的完整代碼覆蓋率信息F執(zhí)行性能分析器和性能分析器支持程序優(yōu)化執(zhí)行性能分析器和性能分析器支持程序優(yōu)化F大量示例項(xiàng)目可幫您快速熟悉大量示例項(xiàng)目可幫您快速熟悉 MDK-ARM MDK-ARM 強(qiáng)大的內(nèi)置功能強(qiáng)大的內(nèi)置功能F符合符合CMSISCMSIS,CortexCortex微控制器軟件接口標(biāo)準(zhǔn)微控制器軟件接口標(biāo)準(zhǔn)F在在ARMARM公司的網(wǎng)站公司的網(wǎng)站( (http:/ht

7、tp:/) )注冊(cè)、下載最新注冊(cè)、下載最新的的Keil MDK-ARMKeil MDK-ARM開(kāi)發(fā)工具軟件,開(kāi)發(fā)工具軟件, MDK-Lite MDK-Lite版:受限制的版:受限制的32K32K編譯、鏈接、部分模塊功能。編譯、鏈接、部分模塊功能。Keil MDK-ARMKeil MDK-ARM簡(jiǎn)介簡(jiǎn)介FMDK-LiteMDK-Lite版:版: mdk_514.exe mdk_514.exe,約,約280M280M,下載后直接安裝。,下載后直接安裝。第三章第三章 Keil MDK-ARMKeil MDK-ARM集成開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境F3.1 Keil MDK-ARM3.1 Keil MDK-A

8、RM簡(jiǎn)介簡(jiǎn)介F3.2 Keil MDK-ARM3.2 Keil MDK-ARM安裝安裝F3.3 Keil MDK-ARM3.3 Keil MDK-ARM集成開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境F3.4 3.4 新建新建ThumbThumb匯編程序項(xiàng)目匯編程序項(xiàng)目F3.5 Thumb3.5 Thumb匯編程序編譯與調(diào)試匯編程序編譯與調(diào)試3.2 Keil MDK-ARM3.2 Keil MDK-ARM安裝安裝Keil MDK-ARMKeil MDK-ARM安裝安裝F軟件安裝后,會(huì)自動(dòng)打開(kāi)軟件安裝后,會(huì)自動(dòng)打開(kāi)Pack InstallerPack Installer包安裝向?qū)Вx包安裝向?qū)?,選擇相應(yīng)芯片的驅(qū)動(dòng)包進(jìn)行

9、在線安裝、或下載包離線安裝。擇相應(yīng)芯片的驅(qū)動(dòng)包進(jìn)行在線安裝、或下載包離線安裝。F包含了軟件包、例子、接口驅(qū)動(dòng)、板子驅(qū)動(dòng)等。包含了軟件包、例子、接口驅(qū)動(dòng)、板子驅(qū)動(dòng)等。Keil MDK-ARMKeil MDK-ARM安裝安裝F在線安裝在線安裝packpack或或exampleexample:先從右側(cè):先從右側(cè)DeviceDevice欄篩選某芯片欄篩選某芯片型號(hào),左邊型號(hào),左邊Packs(Packs(或或Example)Example)欄就會(huì)出現(xiàn)相應(yīng)的欄就會(huì)出現(xiàn)相應(yīng)的pack(pack(或或example)example),再點(diǎn)擊,再點(diǎn)擊installinstall等待即可。等待即可。F離線安裝包:

10、在離線安裝包:在SummarySummary欄可跳轉(zhuǎn)到對(duì)應(yīng)頁(yè)面下載安裝包欄可跳轉(zhuǎn)到對(duì)應(yīng)頁(yè)面下載安裝包DFPDFP文件。文件。下載后的下載后的DFPDFP文件,可直接安裝到開(kāi)發(fā)環(huán)境內(nèi)文件,可直接安裝到開(kāi)發(fā)環(huán)境內(nèi)。Keil MDK-ARMKeil MDK-ARM安裝安裝下載后的下載后的DFPDFP文件,可直文件,可直接安裝到開(kāi)發(fā)環(huán)境內(nèi)。接安裝到開(kāi)發(fā)環(huán)境內(nèi)。Keil MDK-ARMKeil MDK-ARM安裝安裝F本課程后續(xù)學(xué)習(xí),根據(jù)你的開(kāi)發(fā)板選擇下載安裝包:本課程后續(xù)學(xué)習(xí),根據(jù)你的開(kāi)發(fā)板選擇下載安裝包:FCMSIS (Cortex Microcontroller Software Interfac

11、e CMSIS (Cortex Microcontroller Software Interface Standard)Standard):ARM.CMSIS.4.2.0.packARM.CMSIS.4.2.0.packF芯片型號(hào)選擇包如:芯片型號(hào)選擇包如:STMicroelectronics STM32F1 STMicroelectronics STM32F1 Series Device Support, Drivers and ExamplesSeries Device Support, Drivers and Examples:Keil.STM32F1xx_DFP.1.1.0.packK

12、eil.STM32F1xx_DFP.1.1.0.packF在安裝后目錄下可找到幫助文件:在安裝后目錄下可找到幫助文件:uv4.chmuv4.chm第第3 3章章 Keil MDK-ARMKeil MDK-ARM集成開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境F3.1 Keil MDK-ARM3.1 Keil MDK-ARM簡(jiǎn)介簡(jiǎn)介F3.2 Keil MDK-ARM3.2 Keil MDK-ARM安裝安裝F3.3 Keil MDK-ARM3.3 Keil MDK-ARM集成開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境F3.4 3.4 新建新建ThumbThumb匯編程序項(xiàng)目匯編程序項(xiàng)目F3.5 Thumb3.5 Thumb匯編程序編譯與調(diào)試匯

13、編程序編譯與調(diào)試3.3 Keil MDK-ARM3.3 Keil MDK-ARM集成開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境F安裝后在桌面快捷圖標(biāo),或開(kāi)始菜單啟動(dòng)即可。安裝后在桌面快捷圖標(biāo),或開(kāi)始菜單啟動(dòng)即可。ToolbarsWatchWindowMemoryWindowLogic AnalyzerEditorWorkspaceMenu BarProjectWorkspaceOutputWindowToolboxPage TabsPeripheralDialog1 1、 FileFile 菜單菜單芯片數(shù)據(jù)庫(kù)LicensesLicenses注冊(cè)管理注冊(cè)管理新建、保存源程序文件新建、保存源程序文件2 2、 EditE

14、dit 菜單菜單 EditEdit菜單菜單-Configuration-Configuration編輯器設(shè)置菜單:編輯器設(shè)置菜單:代碼編輯器設(shè)置顏色與字體設(shè)置用戶(hù)關(guān)鍵字快捷鍵代碼模板3 3、 ViewView 菜單菜單顯示或隱藏狀態(tài)欄顯示或隱藏文件工具條顯示或隱藏編譯工具條顯示或隱藏調(diào)試工具條顯示或隱藏工程空間顯示或隱藏輸出窗口顯示或隱藏瀏覽窗口顯示或隱藏反匯編窗口顯示或隱藏Watch & Call Stack 窗口顯示或隱藏存儲(chǔ)器窗口顯示或隱藏代碼覆蓋窗口顯示或隱藏性能分析窗口顯示或隱藏邏輯分析儀窗口顯示或隱藏符號(hào)窗口顯示或隱藏Call Stack顯示或隱藏Trace顯示窗口顯示或隱

15、藏串行窗口顯示或隱藏SFR寄存器顯示或隱藏工具箱運(yùn)行時(shí)更新調(diào)試窗口顯示或隱藏源文件中的頭文件4 4、ProjectProject菜單菜單創(chuàng)建一個(gè)新項(xiàng)目創(chuàng)建一個(gè)新工作區(qū)導(dǎo)入一個(gè)項(xiàng)目打開(kāi)一個(gè)項(xiàng)目關(guān)閉當(dāng)前項(xiàng)目維護(hù)工程組件、配置環(huán)境及管理書(shū)從設(shè)備庫(kù)中選擇CPU改變目標(biāo)、組、文件的工具選項(xiàng)清除編譯生成的文件編譯已修改的文件批處理編譯編譯當(dāng)前文件停止編譯重新編譯所有的源文件打開(kāi)最近使用的項(xiàng)目文件5 5、FlashFlash 菜單菜單擦除Flash配置Flash工具下載程序映象到Flash中6 6、DebugDebug 菜單菜單運(yùn)行到下一個(gè)活動(dòng)斷點(diǎn)單步運(yùn)行進(jìn)入一個(gè)函數(shù)單步運(yùn)行跳過(guò)一個(gè)函數(shù)從當(dāng)前函數(shù)跳出運(yùn)行到

16、當(dāng)前行光標(biāo)處啟動(dòng)或停止Vision3調(diào)試模式停止運(yùn)行打開(kāi)斷點(diǎn)對(duì)話框在當(dāng)前行設(shè)置斷點(diǎn)Enable/disable當(dāng)前行的斷點(diǎn)使程序中的所有斷點(diǎn)無(wú)效去除程序中的所有斷點(diǎn)顯示下一條要執(zhí)行的指令DEBUG設(shè)置使能Trace跟蹤查看Trace結(jié)果記錄代碼執(zhí)行次數(shù)或時(shí)間打開(kāi)邏輯分析儀對(duì)話框打開(kāi)存儲(chǔ)器映射對(duì)話框打開(kāi)性能分析儀對(duì)話框打開(kāi)在線匯編對(duì)話框編輯調(diào)試函數(shù)及調(diào)試初始化文件其他菜單其他菜單F7 7、PeripheralsPeripherals 外設(shè)菜單外設(shè)菜單F8 8、ToolsTools 菜單菜單F9 9、SVCS SVCS 菜單菜單F1010、WindowsWindows菜單菜單F1111、Help

17、Help 菜單菜單第第3 3章章 Keil MDK-ARMKeil MDK-ARM集成開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境F3.1 Keil MDK-ARM3.1 Keil MDK-ARM簡(jiǎn)介簡(jiǎn)介F3.2 Keil MDK-ARM3.2 Keil MDK-ARM安裝安裝F3.3 Keil MDK-ARM3.3 Keil MDK-ARM集成開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境F3.4 3.4 新建新建ThumbThumb匯編程序項(xiàng)目匯編程序項(xiàng)目F3.5 Thumb3.5 Thumb匯編程序編譯與調(diào)試匯編程序編譯與調(diào)試3.4 3.4 新建新建ThumbThumb匯編程序項(xiàng)目匯編程序項(xiàng)目F第一步:打開(kāi)第一步:打開(kāi)Vision5Vi

18、sion5集成開(kāi)發(fā)環(huán)境,在集成開(kāi)發(fā)環(huán)境,在ProjectProject菜單中菜單中新建項(xiàng)目,在彈出框中選擇項(xiàng)目存放路徑、填寫(xiě)項(xiàng)目名稱(chēng)新建項(xiàng)目,在彈出框中選擇項(xiàng)目存放路徑、填寫(xiě)項(xiàng)目名稱(chēng)新建新建ThumbThumb匯編程序項(xiàng)目匯編程序項(xiàng)目F第二步:進(jìn)入第二步:進(jìn)入Select Device for Target Select Device for Target 選項(xiàng)卡,選擇選項(xiàng)卡,選擇CPUCPU芯片型號(hào),如芯片型號(hào),如ARMCM4 ARMCM4 :新建新建ThumbThumb匯編程序項(xiàng)目匯編程序項(xiàng)目F第三步:彈出第三步:彈出Manage Run-Time EnvironmentManage Ru

19、n-Time Environment選項(xiàng)卡,管選項(xiàng)卡,管理運(yùn)行時(shí)環(huán)境,選擇已安裝的軟件包(軟件組件)。理運(yùn)行時(shí)環(huán)境,選擇已安裝的軟件包(軟件組件)。F設(shè)置匯編程序時(shí)直接點(diǎn)擊設(shè)置匯編程序時(shí)直接點(diǎn)擊OKOK跳過(guò)即可完成項(xiàng)目設(shè)置。跳過(guò)即可完成項(xiàng)目設(shè)置。第四步:第四步:Options for Target -1Options for Target -1F第四步:第四步:Options for TargetOptions for Target,目標(biāo)板硬件和開(kāi)發(fā)環(huán)境配置。,目標(biāo)板硬件和開(kāi)發(fā)環(huán)境配置。 FDebug Debug 設(shè)置調(diào)試器,選擇設(shè)置調(diào)試器,選擇Use SimulatorUse Simulat

20、or使用模擬器。使用模擬器。Options for Target -2Options for Target -2F其余選項(xiàng)卡默認(rèn)即可其余選項(xiàng)卡默認(rèn)即可Device Device 選擇芯片型號(hào)選擇芯片型號(hào)TargetTarget 配置硬件配置硬件Output Output 設(shè)置輸出文件設(shè)置輸出文件Listing Listing 設(shè)置表單文件設(shè)置表單文件User User 設(shè)置用戶(hù)自定義程序設(shè)置用戶(hù)自定義程序C/C+ C/C+ 設(shè)置設(shè)置C/C+C/C+編譯器編譯器Asm Asm 設(shè)置匯編器設(shè)置匯編器LInker LInker 設(shè)置鏈接器設(shè)置鏈接器UtilitesUtilites設(shè)置設(shè)置FlashF

21、lash下載工具下載工具設(shè)置RTX庫(kù)設(shè)置ROM設(shè)置RAM設(shè)置使用微庫(kù)創(chuàng)建HEX文件設(shè)置目標(biāo)文件路徑設(shè)置頭文件路徑設(shè)置分散加載第五步:編寫(xiě)簡(jiǎn)單的第五步:編寫(xiě)簡(jiǎn)單的Thumb Thumb 匯編程序匯編程序FFileFile文件菜單,新建源程序文件,然后另存為文件菜單,新建源程序文件,然后另存為T(mén)EST1.STEST1.S; ;文件名:文件名:TEST1.S AREA |test1.s|,CODE,READONLY; AREA |test1.s|,CODE,READONLY;聲明只讀代碼段聲明只讀代碼段 DCD _Vectors DCD _Vectors DCD Reset_Handler DCD

22、Reset_Handler EXPORT _Vectors EXPORT _Vectors EXPORT Reset_Handler EXPORT Reset_Handler_Vectors _Vectors Reset_Handler PROCReset_Handler PROC ; PROC/ENDP ; PROC/ENDP函數(shù)起始函數(shù)起始STARTSTART MOV R0,#15 ;R0 = 15 MOV R0,#15 ;R0 = 15 MOV R1,#8 ; R1 =8 MOV R1,#8 ; R1 =8 ADDS R0,R0,R1; R0 = R0 + R1 ADDS R0,R0,R

23、1; R0 = R0 + R1 B BSTART START ENDP ;ENDP ;此處函數(shù)起始標(biāo)記可省此處函數(shù)起始標(biāo)記可省 END END使用使用“;”進(jìn)行注釋進(jìn)行注釋標(biāo)號(hào)頂格寫(xiě)實(shí)際代碼段聲明文件結(jié)束第六步第六步 匯編程序源文件添加到項(xiàng)目中匯編程序源文件添加到項(xiàng)目中F第六步第六步 匯編程序源文件添加到項(xiàng)目中匯編程序源文件添加到項(xiàng)目中新建新建ThumbThumb匯編程序項(xiàng)目匯編程序項(xiàng)目F經(jīng)過(guò)上述六步,即可進(jìn)行程序的編譯、調(diào)試、模擬運(yùn)行等經(jīng)過(guò)上述六步,即可進(jìn)行程序的編譯、調(diào)試、模擬運(yùn)行等。項(xiàng)目文件窗口第四章第四章 Keil MDK-ARMKeil MDK-ARM集成開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境F4.1

24、 Keil MDK-ARM4.1 Keil MDK-ARM簡(jiǎn)介簡(jiǎn)介F4.2 Keil MDK-ARM4.2 Keil MDK-ARM安裝安裝F4.3 Keil MDK-ARM4.3 Keil MDK-ARM集成開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境F4.4 4.4 新建新建ThumbThumb匯編程序項(xiàng)目匯編程序項(xiàng)目F4.5 Thumb4.5 Thumb匯編程序編譯與調(diào)試匯編程序編譯與調(diào)試4.5 Thumb4.5 Thumb匯編程序編譯與調(diào)試匯編程序編譯與調(diào)試F常用工具欄常用工具欄3 3個(gè)編譯按鈕個(gè)編譯按鈕F第一個(gè)按鈕:第一個(gè)按鈕:Translate Translate 翻譯當(dāng)前源文件,檢查語(yǔ)法錯(cuò)誤翻譯當(dāng)前源文

25、件,檢查語(yǔ)法錯(cuò)誤,并不去鏈接庫(kù)文件,也不生成可執(zhí)行文件。,并不去鏈接庫(kù)文件,也不生成可執(zhí)行文件。 F第二個(gè)按鈕:第二個(gè)按鈕:Build Build 編譯文件,它包含語(yǔ)法檢查,鏈接動(dòng)編譯文件,它包含語(yǔ)法檢查,鏈接動(dòng)態(tài)庫(kù)文件,生成可執(zhí)行文件。態(tài)庫(kù)文件,生成可執(zhí)行文件。 F第三個(gè)按鈕:第三個(gè)按鈕:Rebuild Rebuild 重新編譯整個(gè)工程,跟重新編譯整個(gè)工程,跟 Build Build 這這個(gè)按鈕實(shí)現(xiàn)的功能是一樣的,耗時(shí)大。個(gè)按鈕實(shí)現(xiàn)的功能是一樣的,耗時(shí)大。 ThumbThumb匯編程序編譯與調(diào)試匯編程序編譯與調(diào)試F啟動(dòng)調(diào)試,進(jìn)入調(diào)試狀態(tài)啟動(dòng)調(diào)試,進(jìn)入調(diào)試狀態(tài)反匯編窗口反匯編窗口匯編程序窗口匯

26、編程序窗口寄存器窗口寄存器窗口F調(diào)試狀態(tài)下工具欄:工程管理窗口工程管理窗口工程文件窗口寄存器窗口電子文檔窗口函數(shù)窗口函數(shù)模板源代碼窗口源代碼窗口F源代碼彩色顯示源代碼彩色顯示n文本的選擇任意數(shù)量的文本在文本上拖曳一個(gè)單詞雙擊這個(gè)單詞一行文本移動(dòng)指針到這個(gè)行的左端直到它變成向右指示的箭頭并單擊它多行文本移動(dòng)指針到這個(gè)行的左端直到它變成向右指示的箭頭并拖拽它垂直文本按住Alt并拖拽n源代碼和匯編混合顯示調(diào)試窗口及對(duì)話框調(diào)試窗口及對(duì)話框FBreakpointBreakpoint 對(duì)話框,可在此對(duì)話框中定義程序執(zhí)行停止的條件;對(duì)話框,可在此對(duì)話框中定義程序執(zhí)行停止的條件; FCode Coverage

27、 Code Coverage 窗口統(tǒng)計(jì)了程序中被執(zhí)行部分及未被執(zhí)行部分的執(zhí)行信窗口統(tǒng)計(jì)了程序中被執(zhí)行部分及未被執(zhí)行部分的執(zhí)行信息;息; FDisassembly WindowDisassembly Window 可以反匯編方式來(lái)查看及測(cè)試程序;可以反匯編方式來(lái)查看及測(cè)試程序; FLogic AnalyzerLogic Analyzer 窗口可以以圖形的方式來(lái)顯示變量及外設(shè)寄存器值的窗口可以以圖形的方式來(lái)顯示變量及外設(shè)寄存器值的變化;變化; FMemory WindowMemory Window 對(duì)話框可查看及修改內(nèi)存內(nèi)容;對(duì)話框可查看及修改內(nèi)存內(nèi)容; FMemory MapMemory Map

28、 指定程序代碼及數(shù)據(jù)變量所用的內(nèi)存空間;指定程序代碼及數(shù)據(jù)變量所用的內(nèi)存空間; FOutput Window - CommandOutput Window - Command 窗口可進(jìn)行命令輸入和信息輸出;窗口可進(jìn)行命令輸入和信息輸出; FExecution ProfilerExecution Profiler 窗口被集成在編輯和反匯編窗口中,用于時(shí)間及窗口被集成在編輯和反匯編窗口中,用于時(shí)間及調(diào)用信息統(tǒng)計(jì);調(diào)用信息統(tǒng)計(jì); FPerformance AnalyzerPerformance Analyzer 窗口可以顯示執(zhí)行時(shí)間的統(tǒng)計(jì)信息;窗口可以顯示執(zhí)行時(shí)間的統(tǒng)計(jì)信息; FSerial Win

29、dowSerial Window 用串口通信,顯示串口通信內(nèi)容;用串口通信,顯示串口通信內(nèi)容; FSymbol WindowSymbol Window 用于顯示應(yīng)用程序中的調(diào)試符號(hào)信息;用于顯示應(yīng)用程序中的調(diào)試符號(hào)信息; FToolboxToolbox 提供一個(gè)可配置的按鈕,此按鈕可用于調(diào)試命令及調(diào)試函數(shù)的提供一個(gè)可配置的按鈕,此按鈕可用于調(diào)試命令及調(diào)試函數(shù)的執(zhí)行;執(zhí)行; FWatch WindowWatch Window 可以查看及修改程序變量,并列出當(dāng)前的函數(shù)調(diào)用關(guān)系可以查看及修改程序變量,并列出當(dāng)前的函數(shù)調(diào)用關(guān)系。 BreakpointBreakpoint對(duì)話框?qū)υ捒騀Debug - B

30、reakpointDebug - Breakpoint Execution Break(E):當(dāng)表達(dá)式是代碼地址時(shí),斷點(diǎn)被定義。 Access Break(A):當(dāng)所指定的內(nèi)存訪問(wèn)發(fā)生時(shí),此斷點(diǎn)有效。 Conditional Break(C):當(dāng)表達(dá)式不能轉(zhuǎn)化為內(nèi)存地址時(shí),一個(gè)類(lèi)型的斷點(diǎn)被定義。 代碼統(tǒng)計(jì)對(duì)話框代碼統(tǒng)計(jì)對(duì)話框FView - Code Coverage WindowsView - Code Coverage Windows 代碼統(tǒng)計(jì)對(duì)話框提供了程序中各個(gè)模塊及函數(shù)的執(zhí)行情況。 在Current Module(當(dāng)前模塊)下拉列表框中列出了程序所有要模塊,每個(gè)模塊或函數(shù)的指令執(zhí)行百分

31、比反匯編窗口反匯編窗口FView - Disassembly WindowView - Disassembly Window 反匯編窗口可以將源程序和匯編程序一起顯示,也可以只顯示匯編程序。 通過(guò)Debug - View Trace Records可以查看前面指令的執(zhí)行記錄。邏輯分析儀邏輯分析儀FDebug - Logic Analyzer WindowDebug - Logic Analyzer Window Vision3邏輯分析儀可以將指定的變量或VTREGs值的變化以圖形方式表示出來(lái)。 邏輯分析儀信號(hào)配置詳細(xì)設(shè)置使用限制內(nèi)存窗口內(nèi)存窗口FView - Memory WindowView

32、 - Memory Window 通過(guò)內(nèi)存窗口可以查看存儲(chǔ)器內(nèi)容。 內(nèi)存窗口最多可將四個(gè)不同的存儲(chǔ)域顯示在不同的頁(yè)中。 窗口中的右鍵菜單可以選擇輸出格式。 在Address域內(nèi),可以輸入一個(gè)表達(dá)式,此表達(dá)式的值為所顯示內(nèi)容的地址。 在某個(gè)單元的值上雙擊可打開(kāi)一個(gè)編輯框,它允許鍵入一個(gè)新的存儲(chǔ)值改變存儲(chǔ)內(nèi)容。 使能View Periodic Window Update,可以在運(yùn)行目標(biāo)程序時(shí)更新此窗口中的值。內(nèi)存映射窗口內(nèi)存映射窗口FDebug - Memory MapDebug - Memory Map 內(nèi)存映射對(duì)話框可以用來(lái)設(shè)定那些地址空間用于存儲(chǔ)數(shù)據(jù)、那些地址空間用于存儲(chǔ)程序。 被訪問(wèn)的地址

33、空間沒(méi)有被明確聲明時(shí)就必須進(jìn)行地址映射,如存儲(chǔ)映射I/O空間。 在目標(biāo)程序運(yùn)行期間,保證讓程序不進(jìn)行非法的存儲(chǔ)區(qū)訪問(wèn)。輸出窗口輸出窗口FView - Output WindowView - Output Window 輸出窗口:編譯信息輸出、命令輸出、文件查找結(jié)果輸出。 命令輸出可以是“調(diào)試命令”、“變量及寄存器”、“調(diào)試函數(shù)”。執(zhí)行剖析器執(zhí)行剖析器FDebug - Execution Profiling - Time/CallsDebug - Execution Profiling - Time/Calls 執(zhí)行剖析器,它可以記錄執(zhí)行全部程序代碼所需的時(shí)間。 它具有兩種顯示方式:Call(顯

34、示執(zhí)行次數(shù))和Time(顯示執(zhí)行時(shí)間)。 將鼠標(biāo)放在指定的入口處即可顯示有關(guān)執(zhí)行時(shí)間及次數(shù)的詳細(xì)信息。性能分析儀性能分析儀FDebug - Performance AnalyzerDebug - Performance Analyzer 性能分析儀用于記錄和顯示程序的執(zhí)行時(shí)間。 Vision ARM 仿真器記錄整個(gè)程序代碼的時(shí)間統(tǒng)計(jì)信息。串行窗口串行窗口FView - Serial WindowView - Serial Window printf - int fputc(int ch, FILE *f); getchar - int fgetc(FILE * stream);符號(hào)窗口符號(hào)窗口

35、FView - Symbol WindowView - Symbol Window 顯示定義在當(dāng)前被載入的應(yīng)用程序中的公有符號(hào)、局部符號(hào)及行號(hào)信息。 CPU特殊功能寄存器SFR符號(hào)也顯示在此窗口中。工具箱工具箱FView - ToolboxView - Toolbox Toolbox中包含用戶(hù)可配置的按鈕。點(diǎn)擊工具箱上的按鈕可以執(zhí)行相關(guān)的調(diào)試命令(debug command) 或調(diào)試函數(shù)(debug function)。工具箱按鈕可以在任何時(shí)間執(zhí)行,甚至是運(yùn)行測(cè)試程序時(shí)。參考 實(shí)例:DEFINE BUTTON My Status Info, MyStatus()DEFINE BUTTON An

36、alog0 0.3V, analog0(3) DEFINE BUTTON Stop Analog0, signal kill analog0WatchWatch窗口窗口FView - Watch & Call stack WindowView - Watch & Call stack Window Locals 頁(yè)列出了當(dāng)前函數(shù)中全部的局部變量。 Watch 頁(yè)列出了用戶(hù)指定的程序變量。 Call Stack 頁(yè)顯示了當(dāng)前的函數(shù)調(diào)用嵌套關(guān)系。MDKMDK開(kāi)發(fā)的四個(gè)步驟開(kāi)發(fā)的四個(gè)步驟Step 1:選擇設(shè)備和指定硬件對(duì)象Step 2:配置設(shè)備和創(chuàng)建應(yīng)用程序代碼Vision 包含了工

37、程管理器、編輯器和調(diào)試器網(wǎng)上龐大地設(shè)備數(shù)據(jù)庫(kù) & Vision 簡(jiǎn)單化地芯片選擇與設(shè)置MDKMDK開(kāi)發(fā)的四個(gè)步驟開(kāi)發(fā)的四個(gè)步驟通過(guò) ULINK 進(jìn)行Flash Download 和 Target Debugging 通過(guò) Vision Debugger 和 Device Simulator調(diào)試Step 3:用Vision設(shè)備仿真器分析代碼Step 4: Flash下載最后在目標(biāo)硬件上測(cè)試添加管理源文件添加管理源文件F組織源碼結(jié)構(gòu);組織源碼結(jié)構(gòu);F添加源文件:添加源文件:從從C:KeilARMExamplesMeasureC:KeilARMExamplesMeasure拷貝源文件??截愒?/p>

38、文件。F建立軟仿真工程:建立軟仿真工程:SimulatorSimulator為設(shè)備仿真工程。為設(shè)備仿真工程。Startup啟動(dòng)代碼Source實(shí)驗(yàn)源文件System系統(tǒng)調(diào)用源文件IniFile初始化命令文件ReadMe說(shuō)明文件添加管理源文件添加管理源文件F點(diǎn)擊工具欄點(diǎn)擊工具欄“ ”“ ”管理工程,添加源碼。管理工程,添加源碼。注:為了說(shuō)明操作,直接拷貝附帶例程源碼。配置啟動(dòng)代碼配置啟動(dòng)代碼F圖形化配置圖形化配置 圖形化對(duì)話框,直觀方便 免除手寫(xiě)幾百行匯編代碼 快速生成啟動(dòng)代碼DebugDebug調(diào)試調(diào)試F點(diǎn)擊工具欄點(diǎn)擊工具欄“ ”“ ”下載程序到目標(biāo)板進(jìn)入調(diào)試狀態(tài)下載程序到目標(biāo)板進(jìn)入調(diào)試狀態(tài)單

39、步、查看各個(gè)窗口單步、查看各個(gè)窗口F單步、斷點(diǎn)、全速運(yùn)行:?jiǎn)尾?、斷點(diǎn)、全速運(yùn)行:F查看查看DebugDebug狀態(tài)下各個(gè)窗口:狀態(tài)下各個(gè)窗口:設(shè)置編程工具FlashFlash下載下載FFlash - Configure Flash ToolsFlash - Configure Flash Tools:Flash芯片型號(hào)設(shè)備仿真實(shí)例設(shè)備仿真實(shí)例內(nèi)容五內(nèi)容五MDKMDK的設(shè)備仿真的設(shè)備仿真目標(biāo)設(shè)備的所有組件都可仿真.代碼可在整個(gè)設(shè)備上運(yùn)行F完全的目標(biāo)硬件仿真完全的目標(biāo)硬件仿真完整的目標(biāo)完整的目標(biāo)u高效指令集仿真u中斷仿真u片內(nèi)外圍設(shè)備ADC, DAC, EBI, TimersUART, CAN,

40、I2C. 包含外部信號(hào)和 I/Ou包含外部信號(hào)和 I/OF充足的仿真信息充足的仿真信息 包含在設(shè)備數(shù)據(jù)庫(kù)里包含在設(shè)備數(shù)據(jù)庫(kù)里uSupports 250 ARM based MCUsuIncluded in RealView MDK C:KeilARMExamplesMeasure C:KeilARMExamplesMeasure;FuVision Simulator for LPC2129uVision Simulator for LPC2129;F該例程描述了如何使用該例程描述了如何使用uVisionuVision的的信號(hào)函數(shù)信號(hào)函數(shù)功能來(lái)仿真功能來(lái)仿真LPC21XXLPC21XX一個(gè)模擬量

41、的輸入。一個(gè)模擬量的輸入。編譯、鏈接、調(diào)試編譯、鏈接、調(diào)試F打開(kāi)打開(kāi)MeasureMeasure工程,編譯、鏈接程序,點(diǎn)擊工程,編譯、鏈接程序,點(diǎn)擊DebugDebug進(jìn)入進(jìn)入調(diào)試狀態(tài)。調(diào)試狀態(tài)。編譯、鏈接Debug虛擬串口虛擬串口F打開(kāi)虛擬串口打開(kāi)虛擬串口2 2,全速運(yùn)行程序查看結(jié)果;,全速運(yùn)行程序查看結(jié)果;Retarget庫(kù)文件/ Serial.cint sendchar (int ch) if (ch = n) while (!(U1LSR & 0 x20); U1THR = CR; while (!(U1LSR & 0 x20); return (U1THR = ch)

42、;int getkey (void) while (!(U1LSR & 0 x01); return (U1RBR);/ Retarget.cint fputc(int ch, FILE *f) return (sendchar(ch);nRealView微控制器開(kāi)發(fā)工具集帶有一個(gè)預(yù)定義的retarget庫(kù)文件,它是許多例程的一部分。nretarget文件修改了底層的I/O 程序,并禁止了semi-hosting SWI 中斷的使用。查看程序代碼查看程序代碼n代碼塊彩色顯示n顯示混合的源代碼與反匯編代碼n改變顯示模式并且使用context menu中的其他命令 (在Disassembl

43、y窗口中點(diǎn)擊右鍵)調(diào)用棧調(diào)用棧FView - Watch & Call stack Window View - Watch & Call stack Window nView - Call stack Unwinder n顯示函數(shù)的嵌套情況n雙擊此頁(yè)中的某行,將會(huì)在工作區(qū)中顯示調(diào)用所選擇函數(shù)的源代碼。n顯示函數(shù)的嵌套情況n顯示函數(shù)參數(shù)的值或者地址n雙擊此頁(yè)中的某行,將會(huì)在工作區(qū)中顯示調(diào)用所選擇函數(shù)的源代碼。F通過(guò)設(shè)置通過(guò)設(shè)置TraceTrace功能,可以跟蹤代碼功能,可以跟蹤代碼跟蹤代碼跟蹤代碼n要求設(shè)置Enable/Disable Trace Recordingn可以查看到在

44、到達(dá)斷點(diǎn)前CPU所執(zhí)行的指令n在工程工作空間的Regs頁(yè)面會(huì)顯示執(zhí)行所選擇的指令在執(zhí)行過(guò)程中相應(yīng)的CPU寄存器內(nèi)容。F雙擊一行代碼,在代碼的左面出現(xiàn)一個(gè)紅點(diǎn),表示斷電設(shè)置成功雙擊一行代碼,在代碼的左面出現(xiàn)一個(gè)紅點(diǎn),表示斷電設(shè)置成功斷點(diǎn)斷點(diǎn)n使用工具欄的斷點(diǎn)相關(guān)按鈕:n調(diào)試狀態(tài)下:Debug - Breakpoint,可以設(shè)置高級(jí)斷點(diǎn)n在不具備trace功能的硬件環(huán)境下,不具備條件觸發(fā)中斷的能力n條件觸發(fā)中斷只能在軟件仿真的情況下實(shí)現(xiàn)當(dāng)對(duì)變量current.time.sec進(jìn)行寫(xiě)操作且值恒等于3的產(chǎn)生斷點(diǎn)查看變量查看變量FView - Watch WindowView - Watch Windo

45、wn可以隨時(shí)查看變量、結(jié)構(gòu)體以及數(shù)組的內(nèi)容。n在空白行雙擊鼠標(biāo)左鍵或者按F2鍵即可添加變量,通過(guò)同樣的方式也可以修改變量的值。 n在源文件編輯窗口選擇需要添加的變量名,單擊鼠標(biāo)右鍵,在彈出的局部菜單中選擇Add to Watch Window選項(xiàng)將其加入。查看片上外設(shè)查看片上外設(shè)FVisionVision里提供了片上外設(shè)對(duì)話框:里提供了片上外設(shè)對(duì)話框:I/OI/O端口,中斷,定時(shí)器,端口,中斷,定時(shí)器,A/DA/D轉(zhuǎn)換轉(zhuǎn)換器,串口和一些芯片特有的外設(shè)。器,串口和一些芯片特有的外設(shè)。F對(duì)話框會(huì)顯示當(dāng)前外設(shè)的狀態(tài),同時(shí)也可以直接在對(duì)話框中改變相應(yīng)的對(duì)話框會(huì)顯示當(dāng)前外設(shè)的狀態(tài),同時(shí)也可以直接在對(duì)話框

46、中改變相應(yīng)的輸入值。輸入值。性能分析儀性能分析儀& &代碼覆蓋統(tǒng)計(jì)代碼覆蓋統(tǒng)計(jì)FDebug - Performance AnalyzeDebug - Performance AnalyzenView - Code Coverage Windows信號(hào)函數(shù)信號(hào)函數(shù)F信號(hào)函數(shù)可以在后臺(tái)實(shí)現(xiàn)信號(hào)輸入、脈沖輸入等重復(fù)操作。信號(hào)函數(shù)可以在后臺(tái)實(shí)現(xiàn)信號(hào)輸入、脈沖輸入等重復(fù)操作。F信號(hào)函數(shù)可用于模擬和測(cè)試串行信號(hào)函數(shù)可用于模擬和測(cè)試串行I/OI/O、模擬、模擬I/OI/O、端口通訊和其他一些、端口通訊和其他一些重復(fù)發(fā)生的外部事件。重復(fù)發(fā)生的外部事件。FUNC void MyStatus (v

47、oid) printf (=n); printf ( Analog-Input-0: %fn, ain0); printf ( Analog-Input-1: %fn, ain1); printf ( Analog-Input-2: %fn, ain2); printf ( Analog-Input-3: %fn, ain3); printf ( Port 0: %08Xn, port0); printf (=n);/* MEASURE.INI: Measure Debug Init File */Signal void analog0 (float limit) float volts; p

48、rintf (Analog0 (%f) entered.n, limit); while (1) /* forever */ volts = 0; while (volts = 0.0) ain0 = volts; swatch (0.01); /* wait 0.01 seconds */ volts -= 0.1; /* decrease voltage */ 初始化文件信號(hào)函數(shù)ToolboxFView - ToolboxView - Toolbox;DEFINE BUTTON My Status Info, MyStatus()DEFINE BUTTON Analog0 0.3V, an

49、alog0(3)DEFINE BUTTON Stop Analog0, signal kill analog0nToolbox中包含用戶(hù)可配置的按鈕。n點(diǎn)擊工具箱上的按鈕可以執(zhí)行相關(guān)的調(diào)試命令或調(diào)試函數(shù)。n工具箱按鈕可以在任何時(shí)間執(zhí)行,甚至是運(yùn)行測(cè)試程序時(shí)。n添加按鈕語(yǔ)法:n刪除按鈕語(yǔ)法:DEFINE BUTTON button_label, command“Kill Button num邏輯分析儀邏輯分析儀FDebug - Logic Analyzer WindowDebug - Logic Analyzer Window可以是變量或VTREGs值綜合綜合F全速運(yùn)行程序,串口輸入全速運(yùn)行程序

50、,串口輸入“d d”,在終端顯示,在終端顯示ADCADC采樣值;采樣值;F點(diǎn)擊點(diǎn)擊ToolboxToolbox的的“Analog0 0.3Analog0 0.3”按鈕,輸出外部信號(hào);按鈕,輸出外部信號(hào);F查看各個(gè)調(diào)試窗口狀態(tài)。查看各個(gè)調(diào)試窗口狀態(tài)。調(diào)試命令調(diào)試命令/函數(shù)、分散加載文函數(shù)、分散加載文件件內(nèi)容六內(nèi)容六調(diào)試命令調(diào)試命令FVision3Vision3支持大量命令,可以通過(guò)支持大量命令,可以通過(guò) Output Window Command Output Window Command Line Line 鍵入命令鍵入命令F在命令入口處,語(yǔ)法生成器會(huì)顯示命令,選項(xiàng)和參數(shù)。在命令入口處,語(yǔ)法生

51、成器會(huì)顯示命令,選項(xiàng)和參數(shù)。F僅需鍵入命令名單詞的首字符。僅需鍵入命令名單詞的首字符。類(lèi)別描述斷點(diǎn)命令允許創(chuàng)建和刪除斷點(diǎn)。當(dāng)遇到一個(gè)特定指令時(shí)可以使用斷點(diǎn)停止程序執(zhí)行或執(zhí)行Vision3 命令或用戶(hù)函數(shù)。普通命令可以執(zhí)行一些混合的調(diào)試操作。存儲(chǔ)器命令顯示和改變存儲(chǔ)器內(nèi)容程序命令執(zhí)行目標(biāo)程序并分析其性能調(diào)試命令調(diào)試命令- -斷點(diǎn)命令斷點(diǎn)命令命令 描述 BreakAccess添加一個(gè)指定長(zhǎng)度(地址域)的訪問(wèn)斷點(diǎn)到斷點(diǎn)列表。BreakDisable使一個(gè)或多個(gè)斷點(diǎn)不可用。BreakEnable使能一個(gè)或多個(gè)斷點(diǎn)。BreakKill從斷點(diǎn)列表中移除一個(gè)或多個(gè)斷點(diǎn)。BreakList列出當(dāng)前斷點(diǎn)。Bre

52、akSet添加一個(gè)斷點(diǎn)表達(dá)式到斷點(diǎn)列表。調(diào)試命令調(diào)試命令- -普通命令普通命令命令 描述ASSIGN為串行窗口分配輸入輸出源。DEFINE創(chuàng)建一個(gè)工具箱按鈕。DIR生成一個(gè)符號(hào)名目錄。EXIT退出Vision3 調(diào)試模式。INCLUDE讀取并執(zhí)行命令文件中的命令。KILL刪除Vision3 調(diào)試函數(shù)和工具箱按鈕。LOAD載入目標(biāo)模塊和十六進(jìn)制文件。LOG為調(diào)試窗口生成日志文件,查詢(xún)?nèi)罩緺顟B(tài)及關(guān)閉日志文件。MODE為PC機(jī)的COM口設(shè)置波特率,奇偶位和停止位。RESET重啟Vision3, 重設(shè)存儲(chǔ)映射分配及重置預(yù)定義變量。SAVE在Intel HEX386文件中保存一個(gè)存儲(chǔ)域。SCOPE顯示目

53、標(biāo)程序的模塊和函數(shù)的地址分配。SET為預(yù)定義變量設(shè)備字符串值。SIGNAL顯示信號(hào)函數(shù)的狀態(tài)和移除有效信號(hào)函數(shù)。SLOG為串行窗口生成日志文件,查詢(xún)?nèi)罩緺顟B(tài)及關(guān)閉日志文件。調(diào)試命令調(diào)試命令- -存儲(chǔ)器命令存儲(chǔ)器命令命令 描述 ASM匯編內(nèi)嵌代碼。DEFINE定義可能在Vision3中使用的符號(hào)。DISPLAY顯示存儲(chǔ)器的內(nèi)容。ENTER把值鍵入到指定的存儲(chǔ)域。EVALuate求表達(dá)式的值并輸出結(jié)果。MAP為存儲(chǔ)域指定訪問(wèn)參數(shù)。Unassemble反匯編程序存儲(chǔ)域。WatchSet向觀測(cè)窗口中添加一個(gè)觀測(cè)變量。WatchKill刪除觀測(cè)窗口中的所有觀測(cè)變量調(diào)試命令調(diào)試命令- -程序命令程序命令命

54、令 描述 COVERAGE顯示代碼統(tǒng)計(jì)信息Go啟動(dòng)程序執(zhí)行LogicAnalyze初始化邏輯分析儀PerformanceAnalyze初始化內(nèi)置的性能分析儀。Pstep執(zhí)行指令但不跳入過(guò)程或函數(shù)。Ostep跳出當(dāng)前函數(shù)。Tstep跳過(guò)指令并跳入函數(shù)。調(diào)試函數(shù)調(diào)試函數(shù)FVision3 Vision3 中有一個(gè)內(nèi)建的函數(shù)編輯器,通過(guò)中有一個(gè)內(nèi)建的函數(shù)編輯器,通過(guò)Debug - Debug - Function EditorFunction Editor來(lái)打開(kāi)。打開(kāi)函數(shù)編輯器時(shí)需要輸入一個(gè)文件來(lái)打開(kāi)。打開(kāi)函數(shù)編輯器時(shí)需要輸入一個(gè)文件名或者打開(kāi)一個(gè)由名或者打開(kāi)一個(gè)由Options for Target

55、 Debug Options for Target Debug Initialization FileInitialization File指定的文件。該編輯器的用法與指定的文件。該編輯器的用法與Vision3Vision3編輯器相同,允許用戶(hù)輸入和編譯調(diào)試函數(shù)。編輯器相同,允許用戶(hù)輸入和編譯調(diào)試函數(shù)。調(diào)試函數(shù)調(diào)試函數(shù)FVision3Vision3提高了一些可被調(diào)用的預(yù)定義調(diào)試函數(shù),它們不能被提高了一些可被調(diào)用的預(yù)定義調(diào)試函數(shù),它們不能被重定義或者被刪除。預(yù)定義函數(shù)用來(lái)幫助開(kāi)發(fā)者定義用戶(hù)和信重定義或者被刪除。預(yù)定義函數(shù)用來(lái)幫助開(kāi)發(fā)者定義用戶(hù)和信號(hào)函數(shù)。號(hào)函數(shù)。名字參數(shù)描述voidexec執(zhí)行調(diào)

56、試命令doublegetdbl請(qǐng)求用戶(hù)輸入一個(gè)雙精度浮點(diǎn)數(shù)據(jù)intgetint請(qǐng)求用戶(hù)輸入一個(gè)整型數(shù)據(jù)longgetlong請(qǐng)求用戶(hù)輸入一個(gè)長(zhǎng)整型數(shù)據(jù)voidmemset以常量填充內(nèi)存voidprintf輸出函數(shù)intrand返回介于0到32767之間的隨即數(shù)voidrwatch延遲執(zhí)行信號(hào)函數(shù)直到讀取地址成功更多函數(shù) 裝載域BINROMRAM文件映像域文件映像域F裝載域描述運(yùn)行前輸出段和域在裝載域描述運(yùn)行前輸出段和域在ROM/RAMROM/RAM里的分布狀態(tài);里的分布狀態(tài);F運(yùn)行域描述了運(yùn)行時(shí)輸出段和域在運(yùn)行域描述了運(yùn)行時(shí)輸出段和域在ROM/RAMROM/RAM里的分布狀態(tài)。里的分布狀態(tài)。C

57、ODEDATA運(yùn)行域RO sectionRW sectionZI sectionSTACKImage$RO$BaseImage$RO$LimitImage$RW$BaseImage$ZI$BaseImage$RW$LimitImage$ZI$Limit運(yùn)行時(shí)的數(shù)據(jù)搬移運(yùn)行時(shí)的數(shù)據(jù)搬移FRWRW段搬移段搬移&ZI&ZI段清零段清零裝載域BINROMRAMCODEDATA運(yùn)行域RORWZISTACKImage$RO$BaseImage$RO$LimitImage$RW$BaseImage$ZI$BaseImage$RW$LimitImage$ZI$Limit# Copy RW da

58、taInitialize: ldr r0, =Image$RO$Limit ldr r1, =Image$RW$Base ldr r3, =Image$RW$Limit cmp r0, r1 beq F1F0: cmp r1, r3 LDRCC r2, r0, #4 strcc r2, r1, #4 bcc F0# Paste zero initialized dataF1: ldr r1, =Image$ZI$Limit ldr r3, =Image$ZI$Base mov r2, #0F2: cmp r3, r1 strcc r2, r3, #4 bcc F2ScatterfileScat

59、terfile分散加載文件分散加載文件F分散加載分散加載(Scatlerloading)(Scatlerloading),即工程里的,即工程里的.scf.scf文件;文件;F在在scatterfilescatterfile中可以為每一個(gè)代碼或數(shù)據(jù)區(qū)執(zhí)行時(shí)指定不同的中可以為每一個(gè)代碼或數(shù)據(jù)區(qū)執(zhí)行時(shí)指定不同的存儲(chǔ)區(qū)域地址。存儲(chǔ)區(qū)域地址。分散加載文件;RUN IN FLASHLR_ROM1 0 x00000000 0 x00200000 ER_ROM1 0 x00000000 0 x00200000 *.o (RESET, +First) *(InRoot$Sections) .ANY (+RO)

60、RW_RAM1 0 x30000000 0 x04000000 .ANY (+RW +ZI) ;RUN IN RAMLR_ROM1 0 x30000000 0 x00010000 ER_ROM1 0 x30000000 0 x00010000 *.o (RESET, +First) *(InRoot$Sections) .ANY (+RO) RW_RAM1 0 x30010000 0 x00010000 .ANY (+RW +ZI) *(InRoot$Sections)它是_main()的一部分基于硬件的開(kāi)發(fā)調(diào)試基于硬件的開(kāi)發(fā)調(diào)試內(nèi)容七內(nèi)容七環(huán)境工具的準(zhǔn)備環(huán)境工具的準(zhǔn)備F硬件:硬件:EduKit-IV+Mini2410EduKit-IV+Mini2410平臺(tái)一套;平臺(tái)一套;F仿真器:

溫馨提示

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

評(píng)論

0/150

提交評(píng)論