版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、Embedded System DevelopmentEmbedded System Development嵌入式系統(tǒng)與應(yīng)用嵌入式系統(tǒng)與應(yīng)用 第第4 4章章 Keil MDK-ARMKeil MDK-ARM集成開發(fā)環(huán)境集成開發(fā)環(huán)境F3.1 Keil MDK-ARM3.1 Keil MDK-ARM簡介簡介F3.2 Keil MDK-ARM3.2 Keil MDK-ARM安裝安裝F3.3 Keil MDK-ARM3.3 Keil MDK-ARM集成開發(fā)環(huán)境集成開發(fā)環(huán)境F3.4 3.4 新建新建ThumbThumb匯編程序項目匯編程序項目F3.5 Thumb3.5 Thumb匯編程序編譯與調(diào)試匯編程
2、序編譯與調(diào)試3.1 Keil MDK-ARM3.1 Keil MDK-ARM簡介簡介FKeil MDK-ARMKeil MDK-ARM ( (Microcontroller Development KitMicrocontroller Development Kit) )開開發(fā)工具源自德國發(fā)工具源自德國Keil()Keil(),被全球超過,被全球超過1010萬的萬的嵌入式開發(fā)工程師使用。嵌入式開發(fā)工程師使用。F支持支持 1200 1200 多種基于多種基于 ARM CortexARM Cortex-M -M 系列、系列、ARM7ARM7、ARM9ARM9 和和 Cortex-R4 Cortex
3、-R4 處理器的設(shè)備。處理器的設(shè)備。F它包含眾多示例、項目模板和中間件庫,具有廣泛的它包含眾多示例、項目模板和中間件庫,具有廣泛的 TCP/IP TCP/IP 軟件堆棧、軟件堆棧、Flash Flash 文件系統(tǒng)、文件系統(tǒng)、USB USB 主機和設(shè)備堆主機和設(shè)備堆棧、棧、CAN CAN 訪問以及舒適的圖形用戶界面解決方案。訪問以及舒適的圖形用戶界面解決方案。F易于使用的易于使用的 IDE IDE 和帶有高級分析功能的全功能調(diào)試器可和帶有高級分析功能的全功能調(diào)試器可幫助開發(fā)人員快速啟動項目,并集中精力實現(xiàn)其應(yīng)用程序幫助開發(fā)人員快速啟動項目,并集中精力實現(xiàn)其應(yīng)用程序的差異功能。的差異功能。FMDK
4、-ARMMDK-ARM四種版本:四種版本:MDK-LiteMDK-Lite、基礎(chǔ)版、標(biāo)準(zhǔn)版和專業(yè)版、基礎(chǔ)版、標(biāo)準(zhǔn)版和專業(yè)版。都提供。都提供C/C+C/C+開發(fā)環(huán)境,專業(yè)版包括豐富的中間件庫。開發(fā)環(huán)境,專業(yè)版包括豐富的中間件庫。Keil MDK-ARMKeil MDK-ARM簡介簡介FPCPC、IDEIDE開發(fā)環(huán)境、仿真器、開發(fā)板開發(fā)環(huán)境、仿真器、開發(fā)板宿主機仿真器開發(fā)板IDE開發(fā)環(huán)境邏輯分析儀邏輯分析儀示波器示波器Keil MDK-ARMKeil MDK-ARMKeil MDK-ARMKeil MDK-ARM簡介簡介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 占用空間小的實時操作系統(tǒng)(具有源代碼)占用空間小的實時操作系統(tǒng)(具有源代碼)FTCP/IP TCP/IP 網(wǎng)絡(luò)套件提供多個協(xié)議和各種應(yīng)用程序網(wǎng)絡(luò)套件提供多個協(xié)議和各種應(yīng)用程序FUSB USB 設(shè)備和設(shè)備和 USB USB 主機堆棧配備標(biāo)準(zhǔn)驅(qū)動程序類主機堆棧配備標(biāo)準(zhǔn)驅(qū)動程序類FULINKULINKpropro 支持對正在運行的應(yīng)用程
6、序進行即時分析并記支持對正在運行的應(yīng)用程序進行即時分析并記錄執(zhí)行的每條錄執(zhí)行的每條 Cortex-M Cortex-M 指令指令Keil MDK-ARMKeil MDK-ARM簡介簡介F有關(guān)程序執(zhí)行的完整代碼覆蓋率信息有關(guān)程序執(zhí)行的完整代碼覆蓋率信息F執(zhí)行性能分析器和性能分析器支持程序優(yōu)化執(zhí)行性能分析器和性能分析器支持程序優(yōu)化F大量示例項目可幫您快速熟悉大量示例項目可幫您快速熟悉 MDK-ARM MDK-ARM 強大的內(nèi)置功能強大的內(nèi)置功能F符合符合CMSISCMSIS,CortexCortex微控制器軟件接口標(biāo)準(zhǔn)微控制器軟件接口標(biāo)準(zhǔn)F在在ARMARM公司的網(wǎng)站公司的網(wǎng)站( (http:/ht
7、tp:/) )注冊、下載最新注冊、下載最新的的Keil MDK-ARMKeil MDK-ARM開發(fā)工具軟件,開發(fā)工具軟件, MDK-Lite MDK-Lite版:受限制的版:受限制的32K32K編譯、鏈接、部分模塊功能。編譯、鏈接、部分模塊功能。Keil MDK-ARMKeil MDK-ARM簡介簡介FMDK-LiteMDK-Lite版:版: mdk_514.exe mdk_514.exe,約,約280M280M,下載后直接安裝。,下載后直接安裝。第三章第三章 Keil MDK-ARMKeil MDK-ARM集成開發(fā)環(huán)境集成開發(fā)環(huán)境F3.1 Keil MDK-ARM3.1 Keil MDK-A
8、RM簡介簡介F3.2 Keil MDK-ARM3.2 Keil MDK-ARM安裝安裝F3.3 Keil MDK-ARM3.3 Keil MDK-ARM集成開發(fā)環(huán)境集成開發(fā)環(huán)境F3.4 3.4 新建新建ThumbThumb匯編程序項目匯編程序項目F3.5 Thumb3.5 Thumb匯編程序編譯與調(diào)試匯編程序編譯與調(diào)試3.2 Keil MDK-ARM3.2 Keil MDK-ARM安裝安裝Keil MDK-ARMKeil MDK-ARM安裝安裝F軟件安裝后,會自動打開軟件安裝后,會自動打開Pack InstallerPack Installer包安裝向?qū)?,選包安裝向?qū)Вx擇相應(yīng)芯片的驅(qū)動包進行
9、在線安裝、或下載包離線安裝。擇相應(yīng)芯片的驅(qū)動包進行在線安裝、或下載包離線安裝。F包含了軟件包、例子、接口驅(qū)動、板子驅(qū)動等。包含了軟件包、例子、接口驅(qū)動、板子驅(qū)動等。Keil MDK-ARMKeil MDK-ARM安裝安裝F在線安裝在線安裝packpack或或exampleexample:先從右側(cè):先從右側(cè)DeviceDevice欄篩選某芯片欄篩選某芯片型號,左邊型號,左邊Packs(Packs(或或Example)Example)欄就會出現(xiàn)相應(yīng)的欄就會出現(xiàn)相應(yīng)的pack(pack(或或example)example),再點擊,再點擊installinstall等待即可。等待即可。F離線安裝包:
10、在離線安裝包:在SummarySummary欄可跳轉(zhuǎn)到對應(yīng)頁面下載安裝包欄可跳轉(zhuǎn)到對應(yīng)頁面下載安裝包DFPDFP文件。下載后的文件。下載后的DFPDFP文件,可直接安裝到開發(fā)環(huán)境內(nèi)。文件,可直接安裝到開發(fā)環(huán)境內(nèi)。Keil MDK-ARMKeil MDK-ARM安裝安裝下載后的下載后的DFPDFP文件,可直文件,可直接安裝到開發(fā)環(huán)境內(nèi)。接安裝到開發(fā)環(huán)境內(nèi)。Keil MDK-ARMKeil MDK-ARM安裝安裝F本本課課程程后后續(xù)續(xù)學(xué)學(xué)習(xí)習(xí),根根據(jù)據(jù)你你的的開開發(fā)發(fā)板板選選擇擇下下載載安安裝裝包包:FC CM MS SI IS S ( (C Co or rt te ex x M Mi ic cr
11、 ro oc co on nt tr ro ol ll le er r S So of ft tw wa ar re e I In nt te er rf fa ac ce e S St ta an nd da ar rd d) ):A AR RM M. .C CM MS SI IS S. .4 4. .2 2. .0 0. .p pa ac ck kF芯芯片片型型號號選選擇擇包包如如:S ST TM Mi ic cr ro oe el le ec ct tr ro on ni ic cs s S ST TM M3 32 2F F1 1 S Se er ri ie es s D De ev v
12、i ic ce e S Su up pp po or rt t, , D Dr ri iv ve er rs s a an nd d E Ex xa am mp pl le es s:K Ke ei il l. .S ST TM M3 32 2F F1 1x xx x_ _D DF FP P. .1 1. .1 1. .0 0. .p pa ac ck kF在在安安裝裝后后目目錄錄下下可可找找到到幫幫助助文文件件:u uv v4 4. .c ch hm m第第3 3章章 Keil MDK-ARMKeil MDK-ARM集成開發(fā)環(huán)境集成開發(fā)環(huán)境F3.1 Keil MDK-ARM3.1 Keil
13、MDK-ARM簡介簡介F3.2 Keil MDK-ARM3.2 Keil MDK-ARM安裝安裝F3.3 Keil MDK-ARM3.3 Keil MDK-ARM集成開發(fā)環(huán)境集成開發(fā)環(huán)境F3.4 3.4 新建新建ThumbThumb匯編程序項目匯編程序項目F3.5 Thumb3.5 Thumb匯編程序編譯與調(diào)試匯編程序編譯與調(diào)試3.3 Keil MDK-ARM3.3 Keil MDK-ARM集成開發(fā)環(huán)境集成開發(fā)環(huán)境F安裝后在桌面快捷圖標(biāo),或開始菜單啟動即可。安裝后在桌面快捷圖標(biāo),或開始菜單啟動即可。ToolbarsWatchWindowMemoryWindowLogic AnalyzerEdi
14、torWorkspaceMenu BarProjectWorkspaceOutputWindowToolboxPage TabsPeripheralDialog1 1、 FileFile 菜單菜單芯片數(shù)據(jù)庫LicensesLicenses注冊管理注冊管理新建、保存源程序文件新建、保存源程序文件2 2、 EditEdit 菜單菜單 EditEdit菜單菜單-Configuration-Configuration編輯器設(shè)置菜單:編輯器設(shè)置菜單:代碼編輯器設(shè)置顏色與字體設(shè)置用戶關(guān)鍵字快捷鍵代碼模板3 3、 ViewView 菜單菜單顯示或隱藏狀態(tài)欄顯示或隱藏文件工具條顯示或隱藏編譯工具條顯示或隱藏調(diào)
15、試工具條顯示或隱藏工程空間顯示或隱藏輸出窗口顯示或隱藏瀏覽窗口顯示或隱藏反匯編窗口顯示或隱藏Watch & Call Stack 窗口顯示或隱藏存儲器窗口顯示或隱藏代碼覆蓋窗口顯示或隱藏性能分析窗口顯示或隱藏邏輯分析儀窗口顯示或隱藏符號窗口顯示或隱藏Call Stack顯示或隱藏Trace顯示窗口顯示或隱藏串行窗口顯示或隱藏SFR寄存器顯示或隱藏工具箱運行時更新調(diào)試窗口顯示或隱藏源文件中的頭文件4 4、ProjectProject菜單菜單創(chuàng)建一個新項目創(chuàng)建一個新工作區(qū)導(dǎo)入一個項目打開一個項目關(guān)閉當(dāng)前項目維護工程組件、配置環(huán)境及管理書從設(shè)備庫中選擇CPU改變目標(biāo)、組、文件的工具選項清除編
16、譯生成的文件編譯已修改的文件批處理編譯編譯當(dāng)前文件停止編譯重新編譯所有的源文件打開最近使用的項目文件5 5、FlashFlash 菜單菜單擦除Flash配置Flash工具下載程序映象到Flash中6 6、DebugDebug 菜單菜單運行到下一個活動斷點單步運行進入一個函數(shù)單步運行跳過一個函數(shù)從當(dāng)前函數(shù)跳出運行到當(dāng)前行光標(biāo)處啟動或停止Vision3調(diào)試模式停止運行打開斷點對話框在當(dāng)前行設(shè)置斷點Enable/disable當(dāng)前行的斷點使程序中的所有斷點無效去除程序中的所有斷點顯示下一條要執(zhí)行的指令DEBUG設(shè)置使能Trace跟蹤查看Trace結(jié)果記錄代碼執(zhí)行次數(shù)或時間打開邏輯分析儀對話框打開存儲
17、器映射對話框打開性能分析儀對話框打開在線匯編對話框編輯調(diào)試函數(shù)及調(diào)試初始化文件其他菜單其他菜單F7 7、PeripheralsPeripherals 外設(shè)菜單外設(shè)菜單F8 8、ToolsTools 菜單菜單F9 9、SVCS SVCS 菜單菜單F1010、WindowsWindows菜單菜單F1111、Help Help 菜單菜單第第3 3章章 Keil MDK-ARMKeil MDK-ARM集成開發(fā)環(huán)境集成開發(fā)環(huán)境F3.1 Keil MDK-ARM3.1 Keil MDK-ARM簡介簡介F3.2 Keil MDK-ARM3.2 Keil MDK-ARM安裝安裝F3.3 Keil MDK-AR
18、M3.3 Keil MDK-ARM集成開發(fā)環(huán)境集成開發(fā)環(huán)境F3.4 3.4 新建新建ThumbThumb匯編程序項目匯編程序項目F3.5 Thumb3.5 Thumb匯編程序編譯與調(diào)試匯編程序編譯與調(diào)試3.4 3.4 新建新建ThumbThumb匯編程序項目匯編程序項目F第一步:打開第一步:打開Vision5Vision5集成開發(fā)環(huán)境,在集成開發(fā)環(huán)境,在ProjectProject菜單中菜單中新建項目,在彈出框中選擇項目存放路徑、填寫項目名稱新建項目,在彈出框中選擇項目存放路徑、填寫項目名稱新建新建ThumbThumb匯編程序項目匯編程序項目F第二步:進入第二步:進入Select Device
19、 for Target Select Device for Target 選項卡,選擇選項卡,選擇CPUCPU芯片型號,如芯片型號,如ARMCM4 ARMCM4 :新建新建ThumbThumb匯編程序項目匯編程序項目F第三步:彈出第三步:彈出Manage Run-Time EnvironmentManage Run-Time Environment選項卡,管選項卡,管理運行時環(huán)境,選擇已安裝的軟件包(軟件組件)。理運行時環(huán)境,選擇已安裝的軟件包(軟件組件)。F設(shè)置匯編程序時直接點擊設(shè)置匯編程序時直接點擊OKOK跳過即可完成項目設(shè)置。跳過即可完成項目設(shè)置。第四步:第四步:Options for
20、Target -1Options for Target -1F第四步:第四步:Options for TargetOptions for Target,目標(biāo)板硬件和開發(fā)環(huán)境配置。,目標(biāo)板硬件和開發(fā)環(huán)境配置。 FDebug Debug 設(shè)置調(diào)試器,選擇設(shè)置調(diào)試器,選擇Use SimulatorUse Simulator使用模擬器。使用模擬器。Options for Target -2Options for Target -2F其余選項卡默認(rèn)即可其余選項卡默認(rèn)即可Device Device 選擇芯片型號選擇芯片型號TargetTarget 配置硬件配置硬件Output Output 設(shè)置輸出文件設(shè)
21、置輸出文件Listing Listing 設(shè)置表單文件設(shè)置表單文件User User 設(shè)置用戶自定義程序設(shè)置用戶自定義程序C/C+ C/C+ 設(shè)置設(shè)置C/C+C/C+編譯器編譯器Asm Asm 設(shè)置匯編器設(shè)置匯編器LInker LInker 設(shè)置鏈接器設(shè)置鏈接器UtilitesUtilites設(shè)置設(shè)置FlashFlash下載工具下載工具設(shè)置RTX庫設(shè)置ROM設(shè)置RAM設(shè)置使用微庫創(chuàng)建HEX文件設(shè)置目標(biāo)文件路徑設(shè)置頭文件路徑設(shè)置分散加載第五步:編寫簡單的第五步:編寫簡單的Thumb Thumb 匯編程序匯編程序FFileFile文件菜單,新建源程序文件,然后另存為文件菜單,新建源程序文件,然后另
22、存為TEST1.STEST1.S; ;文件名:文件名:TEST1.S AREA |test1.s|,CODE,READONLY; AREA |test1.s|,CODE,READONLY;聲明只讀代碼段聲明只讀代碼段 DCD _Vectors DCD _Vectors DCD Reset_Handler DCD Reset_Handler EXPORT _Vectors EXPORT _Vectors EXPORT Reset_Handler EXPORT Reset_Handler_Vectors _Vectors Reset_Handler PROCReset_Handler PROC ;
23、 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,R1; R0 = R0 + R1 B BSTART START ENDP ;ENDP ;此處函數(shù)起始標(biāo)記可省此處函數(shù)起始標(biāo)記可省 END END使用使用“;”進行注釋進行注釋標(biāo)號頂格寫實際代碼段聲明文件結(jié)束第六步第六步 匯編程序源文件添加到項目中匯編程序源文件添加到項目中F第六步第六步
24、匯編程序源文件添加到項目中匯編程序源文件添加到項目中新建新建ThumbThumb匯編程序項目匯編程序項目F經(jīng)過上述六步,即可進行程序的編譯、調(diào)試、模擬運行等經(jīng)過上述六步,即可進行程序的編譯、調(diào)試、模擬運行等。項目文件窗口第四章第四章 Keil MDK-ARMKeil MDK-ARM集成開發(fā)環(huán)境集成開發(fā)環(huán)境F4.1 Keil MDK-ARM4.1 Keil MDK-ARM簡介簡介F4.2 Keil MDK-ARM4.2 Keil MDK-ARM安裝安裝F4.3 Keil MDK-ARM4.3 Keil MDK-ARM集成開發(fā)環(huán)境集成開發(fā)環(huán)境F4.4 4.4 新建新建ThumbThumb匯編程序項
25、目匯編程序項目F4.5 Thumb4.5 Thumb匯編程序編譯與調(diào)試匯編程序編譯與調(diào)試4.5 Thumb4.5 Thumb匯編程序編譯與調(diào)試匯編程序編譯與調(diào)試F常用工具欄常用工具欄3 3個編譯按鈕個編譯按鈕F第一個按鈕:第一個按鈕:Translate Translate 翻譯當(dāng)前源文件,檢查語法錯誤翻譯當(dāng)前源文件,檢查語法錯誤,并不去鏈接庫文件,也不生成可執(zhí)行文件。,并不去鏈接庫文件,也不生成可執(zhí)行文件。 F第二個按鈕:第二個按鈕:Build Build 編譯文件,它包含語法檢查,鏈接動編譯文件,它包含語法檢查,鏈接動態(tài)庫文件,生成可執(zhí)行文件。態(tài)庫文件,生成可執(zhí)行文件。 F第三個按鈕:第三個
26、按鈕:Rebuild Rebuild 重新編譯整個工程,跟重新編譯整個工程,跟 Build Build 這這個按鈕實現(xiàn)的功能是一樣的,耗時大。個按鈕實現(xiàn)的功能是一樣的,耗時大。 ThumbThumb匯編程序編譯與調(diào)試匯編程序編譯與調(diào)試F啟動調(diào)試,進入調(diào)試狀態(tài)啟動調(diào)試,進入調(diào)試狀態(tài)反匯編窗口反匯編窗口匯編程序窗口匯編程序窗口寄存器窗口寄存器窗口F調(diào)試狀態(tài)下工具欄:工程管理窗口工程管理窗口工程文件窗口寄存器窗口電子文檔窗口函數(shù)窗口函數(shù)模板源代碼窗口源代碼窗口F源代碼彩色顯示源代碼彩色顯示n文本的選擇n源代碼和匯編混合顯示調(diào)試窗口及對話框調(diào)試窗口及對話框FBreakpointBreakpoint 對
27、話框,可在此對話框中定義程序執(zhí)行停止的條件;對話框,可在此對話框中定義程序執(zhí)行停止的條件; FCode Coverage Code Coverage 窗口統(tǒng)計了程序中被執(zhí)行部分及未被執(zhí)行部分的執(zhí)行信窗口統(tǒng)計了程序中被執(zhí)行部分及未被執(zhí)行部分的執(zhí)行信息;息; FDisassembly WindowDisassembly Window 可以反匯編方式來查看及測試程序;可以反匯編方式來查看及測試程序; FLogic AnalyzerLogic Analyzer 窗口可以以圖形的方式來顯示變量及外設(shè)寄存器值的窗口可以以圖形的方式來顯示變量及外設(shè)寄存器值的變化;變化; FMemory WindowMemo
28、ry Window 對話框可查看及修改內(nèi)存內(nèi)容;對話框可查看及修改內(nèi)存內(nèi)容; FMemory MapMemory Map 指定程序代碼及數(shù)據(jù)變量所用的內(nèi)存空間;指定程序代碼及數(shù)據(jù)變量所用的內(nèi)存空間; FOutput Window - CommandOutput Window - Command 窗口可進行命令輸入和信息輸出;窗口可進行命令輸入和信息輸出; FExecution ProfilerExecution Profiler 窗口被集成在編輯和反匯編窗口中,用于時間及窗口被集成在編輯和反匯編窗口中,用于時間及調(diào)用信息統(tǒng)計;調(diào)用信息統(tǒng)計; FPerformance AnalyzerPerfo
29、rmance Analyzer 窗口可以顯示執(zhí)行時間的統(tǒng)計信息;窗口可以顯示執(zhí)行時間的統(tǒng)計信息; FSerial WindowSerial Window 用串口通信,顯示串口通信內(nèi)容;用串口通信,顯示串口通信內(nèi)容; FSymbol WindowSymbol Window 用于顯示應(yīng)用程序中的調(diào)試符號信息;用于顯示應(yīng)用程序中的調(diào)試符號信息; FToolboxToolbox 提供一個可配置的按鈕,此按鈕可用于調(diào)試命令及調(diào)試函數(shù)的提供一個可配置的按鈕,此按鈕可用于調(diào)試命令及調(diào)試函數(shù)的執(zhí)行;執(zhí)行; FWatch WindowWatch Window 可以查看及修改程序變量,并列出當(dāng)前的函數(shù)調(diào)用關(guān)系可以
30、查看及修改程序變量,并列出當(dāng)前的函數(shù)調(diào)用關(guān)系。 BreakpointBreakpoint對話框?qū)υ捒騀Debug - BreakpointDebug - Breakpoint Execution Break(E):當(dāng)表達(dá)式是代碼地址時,斷點被定義。 Access Break(A):當(dāng)所指定的內(nèi)存訪問發(fā)生時,此斷點有效。 Conditional Break(C):當(dāng)表達(dá)式不能轉(zhuǎn)化為內(nèi)存地址時,一個類型的斷點被定義。 代碼統(tǒng)計對話框代碼統(tǒng)計對話框FView - Code Coverage WindowsView - Code Coverage Windows 代碼統(tǒng)計對話框提供了程序中各個模塊及函
31、數(shù)的執(zhí)行情況。 在Current Module(當(dāng)前模塊)下拉列表框中列出了程序所有要模塊,每個模塊或函數(shù)的指令執(zhí)行百分比反匯編窗口反匯編窗口FView - Disassembly WindowView - Disassembly Window 反匯編窗口可以將源程序和匯編程序一起顯示,也可以只顯示匯編程序。 通過Debug - View Trace Records可以查看前面指令的執(zhí)行記錄。邏輯分析儀邏輯分析儀FDebug - Logic Analyzer WindowDebug - Logic Analyzer Window Vision3邏輯分析儀可以將指定的變量或VTREGs值的變化以
32、圖形方式表示出來。 邏輯分析儀信號配置詳細(xì)設(shè)置使用限制內(nèi)存窗口內(nèi)存窗口FView - Memory WindowView - Memory Window 通過內(nèi)存窗口可以查看存儲器內(nèi)容。 內(nèi)存窗口最多可將四個不同的存儲域顯示在不同的頁中。 窗口中的右鍵菜單可以選擇輸出格式。 在Address域內(nèi),可以輸入一個表達(dá)式,此表達(dá)式的值為所顯示內(nèi)容的地址。 在某個單元的值上雙擊可打開一個編輯框,它允許鍵入一個新的存儲值改變存儲內(nèi)容。 使能View Periodic Window Update,可以在運行目標(biāo)程序時更新此窗口中的值。內(nèi)存映射窗口內(nèi)存映射窗口FDebug - Memory MapDebug
33、 - Memory Map 內(nèi)存映射對話框可以用來設(shè)定那些地址空間用于存儲數(shù)據(jù)、那些地址空間用于存儲程序。 被訪問的地址空間沒有被明確聲明時就必須進行地址映射,如存儲映射I/O空間。 在目標(biāo)程序運行期間,保證讓程序不進行非法的存儲區(qū)訪問。輸出窗口輸出窗口FView - Output WindowView - Output Window 輸出窗口:編譯信息輸出、命令輸出、文件查找結(jié)果輸出。 命令輸出可以是“調(diào)試命令”、“變量及寄存器”、“調(diào)試函數(shù)”。執(zhí)行剖析器執(zhí)行剖析器FDebug - Execution Profiling - Time/CallsDebug - Execution Profi
34、ling - Time/Calls 執(zhí)行剖析器,它可以記錄執(zhí)行全部程序代碼所需的時間。 它具有兩種顯示方式:Call(顯示執(zhí)行次數(shù))和Time(顯示執(zhí)行時間)。 將鼠標(biāo)放在指定的入口處即可顯示有關(guān)執(zhí)行時間及次數(shù)的詳細(xì)信息。性能分析儀性能分析儀FDebug - Performance AnalyzerDebug - Performance Analyzer 性能分析儀用于記錄和顯示程序的執(zhí)行時間。 Vision ARM 仿真器記錄整個程序代碼的時間統(tǒng)計信息。串行窗口串行窗口FView - Serial WindowView - Serial Window printf - int fputc(i
35、nt ch, FILE *f); getchar - int fgetc(FILE * stream);符號窗口符號窗口FView - Symbol WindowView - Symbol Window 顯示定義在當(dāng)前被載入的應(yīng)用程序中的公有符號、局部符號及行號信息。 CPU特殊功能寄存器SFR符號也顯示在此窗口中。工具箱工具箱FView - ToolboxView - Toolbox Toolbox中包含用戶可配置的按鈕。點擊工具箱上的按鈕可以執(zhí)行相關(guān)的調(diào)試命令(debug command) 或調(diào)試函數(shù)(debug function)。工具箱按鈕可以在任何時間執(zhí)行,甚至是運行測試程序時。參考
36、 實例:WatchWatch窗口窗口FView - Watch & Call stack WindowView - Watch & Call stack Window Locals 頁列出了當(dāng)前函數(shù)中全部的局部變量。 Watch 頁列出了用戶指定的程序變量。 Call Stack 頁顯示了當(dāng)前的函數(shù)調(diào)用嵌套關(guān)系。MDKMDK開發(fā)的四個步驟開發(fā)的四個步驟Step 1:選擇設(shè)備和指定硬件對象Step 2:配置設(shè)備和創(chuàng)建應(yīng)用程序代碼Vision 包含了工程管理器、編輯器和調(diào)試器網(wǎng)上龐大地設(shè)備數(shù)據(jù)庫 & Vision 簡單化地芯片選擇與設(shè)置MDKMDK開發(fā)的四個步驟開發(fā)的四個步
37、驟通過 ULINK 進行Flash Download 和 Target Debugging 通過 Vision Debugger 和 Device Simulator調(diào)試Step 3:用Vision設(shè)備仿真器分析代碼Step 4: Flash下載最后在目標(biāo)硬件上測試添加管理源文件添加管理源文件F組織源碼結(jié)構(gòu);組織源碼結(jié)構(gòu);F添加源文件:添加源文件:從從C:KeilARMExamplesMeasureC:KeilARMExamplesMeasure拷貝源文件。拷貝源文件。F建立軟仿真工程:建立軟仿真工程:SimulatorSimulator為設(shè)備仿真工程。為設(shè)備仿真工程。添加管理源文件添加管理源
38、文件F點擊工具欄點擊工具欄“ ”“ ”管理工程,添加源碼。管理工程,添加源碼。注:為了說明操作,直接拷貝附帶例程源碼。配置啟動代碼配置啟動代碼F圖形化配置圖形化配置 圖形化對話框,直觀方便 免除手寫幾百行匯編代碼 快速生成啟動代碼DebugDebug調(diào)試調(diào)試F點擊工具欄點擊工具欄“ ”“ ”下載程序到目標(biāo)板進入調(diào)試狀態(tài)下載程序到目標(biāo)板進入調(diào)試狀態(tài)單步、查看各個窗口單步、查看各個窗口F單步、斷點、全速運行:單步、斷點、全速運行:F查看查看DebugDebug狀態(tài)下各個窗口:狀態(tài)下各個窗口:設(shè)置編程工具FlashFlash下載下載FFlash - Configure Flash ToolsFlas
39、h - Configure Flash Tools:Flash芯片型號設(shè)備仿真實例設(shè)備仿真實例內(nèi)容五內(nèi)容五MDKMDK的設(shè)備仿真的設(shè)備仿真目標(biāo)設(shè)備的所有組件都可仿真.代碼可在整個設(shè)備上運行F完全的目標(biāo)硬件仿真完全的目標(biāo)硬件仿真完整的目標(biāo)完整的目標(biāo)u高效指令集仿真u中斷仿真u片內(nèi)外圍設(shè)備ADC, DAC, EBI, TimersUART, CAN, I2C. 包含外部信號和 I/Ou包含外部信號和 I/OF充足的仿真信息充足的仿真信息包含在設(shè)備數(shù)據(jù)庫里包含在設(shè)備數(shù)據(jù)庫里uSupports 250 ARM based MCUsuIncluded in RealView MDK C:KeilARME
40、xamplesMeasure C:KeilARMExamplesMeasure;FuVision Simulator for LPC2129uVision Simulator for LPC2129;F該例程描述了如何使用該例程描述了如何使用uVisionuVision的的信號函數(shù)信號函數(shù)功能來仿真功能來仿真LPC21XXLPC21XX一個模擬量的輸入。一個模擬量的輸入。編譯、鏈接、調(diào)試編譯、鏈接、調(diào)試F打開打開MeasureMeasure工程,編譯、鏈接程序,點擊工程,編譯、鏈接程序,點擊DebugDebug進入進入調(diào)試狀態(tài)。調(diào)試狀態(tài)。編譯、鏈接Debug虛擬串口虛擬串口F打開虛擬串口打開虛
41、擬串口2 2,全速運行程序查看結(jié)果;,全速運行程序查看結(jié)果;Retarget庫文件/ Serial.cint sendchar (int ch) if (ch = n) while (!(U1LSR & 0 x20); U1THR = CR; while (!(U1LSR & 0 x20); return (U1THR = ch);int getkey (void) while (!(U1LSR & 0 x01); return (U1RBR);/ Retarget.cint fputc(int ch, FILE *f) return (sendchar(ch);nRe
42、alView微控制器開發(fā)工具集帶有一個預(yù)定義的retarget庫文件,它是許多例程的一部分。nretarget文件修改了底層的I/O 程序,并禁止了semi-hosting SWI 中斷的使用。查看程序代碼查看程序代碼n代碼塊彩色顯示n顯示混合的源代碼與反匯編代碼n改變顯示模式并且使用context menu中的其他命令 (在Disassembly窗口中點擊右鍵)調(diào)用棧調(diào)用棧FView - Watch & Call stack Window View - Watch & Call stack Window nView - Call stack Unwinder n顯示函數(shù)的嵌套
43、情況n雙擊此頁中的某行,將會在工作區(qū)中顯示調(diào)用所選擇函數(shù)的源代碼。n顯示函數(shù)的嵌套情況n顯示函數(shù)參數(shù)的值或者地址n雙擊此頁中的某行,將會在工作區(qū)中顯示調(diào)用所選擇函數(shù)的源代碼。F通過設(shè)置通過設(shè)置TraceTrace功能,可以跟蹤代碼功能,可以跟蹤代碼跟蹤代碼跟蹤代碼n要求設(shè)置Enable/Disable Trace Recordingn可以查看到在到達(dá)斷點前CPU所執(zhí)行的指令n在工程工作空間的Regs頁面會顯示執(zhí)行所選擇的指令在執(zhí)行過程中相應(yīng)的CPU寄存器內(nèi)容。F雙擊一行代碼,在代碼的左面出現(xiàn)一個紅點,表示斷電設(shè)置成功雙擊一行代碼,在代碼的左面出現(xiàn)一個紅點,表示斷電設(shè)置成功斷點斷點n使用工具欄的
44、斷點相關(guān)按鈕:n調(diào)試狀態(tài)下:Debug - Breakpoint,可以設(shè)置高級斷點n在不具備trace功能的硬件環(huán)境下,不具備條件觸發(fā)中斷的能力n條件觸發(fā)中斷只能在軟件仿真的情況下實現(xiàn)當(dāng)對變量current.time.sec進行寫操作且值恒等于3的產(chǎn)生斷點查看變量查看變量FView - Watch WindowView - Watch Windown可以隨時查看變量、結(jié)構(gòu)體以及數(shù)組的內(nèi)容。n在空白行雙擊鼠標(biāo)左鍵或者按F2鍵即可添加變量,通過同樣的方式也可以修改變量的值。 n在源文件編輯窗口選擇需要添加的變量名,單擊鼠標(biāo)右鍵,在彈出的局部菜單中選擇Add to Watch Window選項將其加
45、入。查看片上外設(shè)查看片上外設(shè)FVisionVision里提供了片上外設(shè)對話框:里提供了片上外設(shè)對話框:I/OI/O端口,中斷,定時器,端口,中斷,定時器,A/DA/D轉(zhuǎn)換轉(zhuǎn)換器,串口和一些芯片特有的外設(shè)。器,串口和一些芯片特有的外設(shè)。F對話框會顯示當(dāng)前外設(shè)的狀態(tài),同時也可以直接在對話框中改變相應(yīng)的對話框會顯示當(dāng)前外設(shè)的狀態(tài),同時也可以直接在對話框中改變相應(yīng)的輸入值。輸入值。性能分析儀性能分析儀& &代碼覆蓋統(tǒng)計代碼覆蓋統(tǒng)計FDebug - Performance AnalyzeDebug - Performance AnalyzenView - Code Coverage Wi
46、ndows信號函數(shù)信號函數(shù)F信號函數(shù)可以在后臺實現(xiàn)信號輸入、脈沖輸入等重復(fù)操作。信號函數(shù)可以在后臺實現(xiàn)信號輸入、脈沖輸入等重復(fù)操作。F信號函數(shù)可用于模擬和測試串行信號函數(shù)可用于模擬和測試串行I/OI/O、模擬、模擬I/OI/O、端口通訊和其他一些、端口通訊和其他一些重復(fù)發(fā)生的外部事件。重復(fù)發(fā)生的外部事件。FUNC void MyStatus (void) printf (=n); printf ( Analog-Input-0: %fn, ain0); printf ( Analog-Input-1: %fn, ain1); printf ( Analog-Input-2: %fn, ain2
47、); 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; printf (Analog0 (%f) entered.n, limit); while (1) /* forever */ volts = 0; while (volts = 0.0) ain0 = volts; swatch (0.01); /*
48、wait 0.01 seconds */ volts -= 0.1; /* decrease voltage */ 初始化文件信號函數(shù)ToolboxFView - ToolboxView - Toolbox;DEFINE BUTTON My Status Info, MyStatus()DEFINE BUTTON Analog0 0.3V, analog0(3)DEFINE BUTTON Stop Analog0, signal kill analog0nToolbox中包含用戶可配置的按鈕。n點擊工具箱上的按鈕可以執(zhí)行相關(guān)的調(diào)試命令或調(diào)試函數(shù)。n工具箱按鈕可以在任何時間執(zhí)行,甚至是運行測試程
49、序時。n添加按鈕語法:n刪除按鈕語法:DEFINE BUTTON button_label, command“Kill Button num邏輯分析儀邏輯分析儀FDebug - Logic Analyzer WindowDebug - Logic Analyzer Window可以是變量或VTREGs值綜合綜合F全速運行程序,串口輸入全速運行程序,串口輸入“d d”,在終端顯示,在終端顯示ADCADC采樣值;采樣值;F點擊點擊ToolboxToolbox的的“Analog0 0.3Analog0 0.3”按鈕,輸出外部信號;按鈕,輸出外部信號;F查看各個調(diào)試窗口狀態(tài)。查看各個調(diào)試窗口狀態(tài)。調(diào)試
50、命令調(diào)試命令/函數(shù)、分散加載文函數(shù)、分散加載文件件內(nèi)容六內(nèi)容六調(diào)試命令調(diào)試命令FVision3Vision3支持大量命令,可以通過支持大量命令,可以通過 Output Window Command Output Window Command Line Line 鍵入命令鍵入命令F在命令入口處,語法生成器會顯示命令,選項和參數(shù)。在命令入口處,語法生成器會顯示命令,選項和參數(shù)。F僅需鍵入命令名單詞的首字符。僅需鍵入命令名單詞的首字符。調(diào)試命令調(diào)試命令- -斷點命令斷點命令調(diào)試命令調(diào)試命令- -普通命令普通命令調(diào)試命令調(diào)試命令- -存儲器命令存儲器命令調(diào)試命令調(diào)試命令- -程序命令程序命令調(diào)試函數(shù)調(diào)
51、試函數(shù)FVision3 Vision3 中有一個內(nèi)建的函數(shù)編輯器,通過中有一個內(nèi)建的函數(shù)編輯器,通過Debug - Debug - Function EditorFunction Editor來打開。打開函數(shù)編輯器時需要輸入一個文件來打開。打開函數(shù)編輯器時需要輸入一個文件名或者打開一個由名或者打開一個由Options for Target Debug Options for Target Debug Initialization FileInitialization File指定的文件。該編輯器的用法與指定的文件。該編輯器的用法與Vision3Vision3編輯器相同,允許用戶輸入和編譯調(diào)試函
52、數(shù)。編輯器相同,允許用戶輸入和編譯調(diào)試函數(shù)。調(diào)試函數(shù)調(diào)試函數(shù)FVision3Vision3提高了一些可被調(diào)用的預(yù)定義調(diào)試函數(shù),它們不能被提高了一些可被調(diào)用的預(yù)定義調(diào)試函數(shù),它們不能被重定義或者被刪除。預(yù)定義函數(shù)用來幫助開發(fā)者定義用戶和信重定義或者被刪除。預(yù)定義函數(shù)用來幫助開發(fā)者定義用戶和信號函數(shù)。號函數(shù)。更多函數(shù) 裝載域BINROMRAM文件映像域文件映像域F裝載域描述運行前輸出段和域在裝載域描述運行前輸出段和域在ROM/RAMROM/RAM里的分布狀態(tài);里的分布狀態(tài);F運行域描述了運行時輸出段和域在運行域描述了運行時輸出段和域在ROM/RAMROM/RAM里的分布狀態(tài)。里的分布狀態(tài)。CODE
53、DATA運行域RO sectionRW sectionZI sectionSTACKImage$RO$BaseImage$RO$LimitImage$RW$BaseImage$ZI$BaseImage$RW$LimitImage$ZI$Limit運行時的數(shù)據(jù)搬移運行時的數(shù)據(jù)搬移FRWRW段搬移段搬移&ZI&ZI段清零段清零裝載域BINROMRAMCODEDATA運行域RORWZISTACKImage$RO$BaseImage$RO$LimitImage$RW$BaseImage$ZI$BaseImage$RW$LimitImage$ZI$Limit# Copy RW dataI
54、nitialize: 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 F2ScatterfileScatter
55、file分散加載文件分散加載文件F分散加載分散加載(Scatlerloading)(Scatlerloading),即工程里的,即工程里的.scf.scf文件;文件;F在在scatterfilescatterfile中可以為每一個代碼或數(shù)據(jù)區(qū)執(zhí)行時指定不同的中可以為每一個代碼或數(shù)據(jù)區(qū)執(zhí)行時指定不同的存儲區(qū)域地址。存儲區(qū)域地址。分散加載文件;RUN IN FLASHLR_ROM1 0 x00000000 0 x00200000 ER_ROM1 0 x00000000 0 x00200000 *.o (RESET, +First) *(InRoot$Sections) .ANY (+RO) RW_
56、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()的一部分基于硬件的開發(fā)調(diào)試基于硬件的開發(fā)調(diào)試內(nèi)容七內(nèi)容七環(huán)境工具的準(zhǔn)備環(huán)境工具的準(zhǔn)備F硬件:硬件:EduKit-I
57、V+Mini2410EduKit-IV+Mini2410平臺一套;平臺一套;F仿真器:仿真器:ARM RealView MDKARM RealView MDK套件一套;套件一套;F其他:電腦一臺(安裝其他:電腦一臺(安裝Windows XPWindows XP系統(tǒng)、系統(tǒng)、MDKMDK環(huán)境);環(huán)境);F拷貝出廠光盤拷貝出廠光盤DISK3_S3C241003-Codes01-DISK3_S3C241003-Codes01-MDKMini2410-IVMDKMini2410-IV文件夾到文件夾到MDKMDK安裝路徑:安裝路徑: C:KeilARMBoardsEmbestC:KeilARMBoards
58、Embest;F正確安裝正確安裝Mini2410Mini2410核心板,核心板,BOOTBOOT跳線斷開,連接好交叉串跳線斷開,連接好交叉串口線、電源線;口線、電源線;F以以8.2_ADC_Test8.2_ADC_Test程序為例。程序為例。硬件原理硬件原理F隨著數(shù)字技術(shù),特別是計算機技術(shù)的飛速發(fā)展與普及,在現(xiàn)代控制、通信及檢隨著數(shù)字技術(shù),特別是計算機技術(shù)的飛速發(fā)展與普及,在現(xiàn)代控制、通信及檢測領(lǐng)域中,對信號的處理廣泛采用了數(shù)字計算機技術(shù)。由于系統(tǒng)的實際處理對測領(lǐng)域中,對信號的處理廣泛采用了數(shù)字計算機技術(shù)。由于系統(tǒng)的實際處理對象往往都是一些模擬量(如溫度、壓力、位移、圖像等),要使計算機或數(shù)字象往往都是一些模擬量(如溫度、壓力、位移、圖像等),要使計算機或數(shù)字儀表能識別和處理這些信號,必須首先將這些模擬信號轉(zhuǎn)換成數(shù)字信號,這就儀表能識別和
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 培養(yǎng)學(xué)生責(zé)任感的實踐計劃
- 河渠堤防工程招標(biāo)合同三篇
- 火災(zāi)報警系統(tǒng)的使用培訓(xùn)
- 美術(shù)與科學(xué)結(jié)合的教學(xué)探究計劃
- 社團工作計劃校園環(huán)保
- 秋季課程改革與創(chuàng)新探索計劃
- 如何與伴侶共同制定財務(wù)計劃
- 員工宿舍免責(zé)協(xié)議書范文版
- 楊真真被婆婆逼著簽離婚協(xié)議書范文
- 二手車賣方代簽協(xié)議書范文范本
- 調(diào)度自動化及通信技術(shù)監(jiān)督實施細(xì)則
- 研學(xué)安全主題班會課件
- 留壩至鳳縣天然氣輸氣管道工程環(huán)評報告
- 學(xué)校德育活動記錄
- 《靜女》公開課教案優(yōu)秀3篇
- SB/T 10795-2012強制通風(fēng)與自然對流空氣冷卻器的試驗方法
- GB/T 16476-1996金屬鈧
- GB/T 11181-2016子午線輪胎用鋼簾線
- 足球比賽運動活動邀請函Word模板
- 文萊介紹課件
- Pearson相關(guān)系數(shù)簡介分析課件
評論
0/150
提交評論