版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
EmbeddedSystemDevelopment嵌入式系統(tǒng)與應(yīng)用
EmbeddedSystemDevelopment嵌入式第4章KeilMDK-ARM集成開發(fā)環(huán)境3.1KeilMDK-ARM簡介3.2KeilMDK-ARM安裝3.3KeilMDK-ARM集成開發(fā)環(huán)境3.4新建Thumb匯編程序項目3.5Thumb匯編程序編譯與調(diào)試第4章KeilMDK-ARM集成開發(fā)環(huán)境3.1Keil3.1KeilMDK-ARM簡介KeilMDK-ARM?(MicrocontrollerDevelopmentKit)開發(fā)工具源自德國Keil(),被全球超過10萬的嵌入式開發(fā)工程師使用。支持1200多種基于ARMCortex?-M系列、ARM7?、ARM9?和Cortex-R4處理器的設(shè)備。它包含眾多示例、項目模板和中間件庫,具有廣泛的TCP/IP軟件堆棧、Flash文件系統(tǒng)、USB主機和設(shè)備堆棧、CAN訪問以及舒適的圖形用戶界面解決方案。易于使用的IDE和帶有高級分析功能的全功能調(diào)試器可幫助開發(fā)人員快速啟動項目,并集中精力實現(xiàn)其應(yīng)用程序的差異功能。MDK-ARM四種版本:MDK-Lite、基礎(chǔ)版、標(biāo)準(zhǔn)版和專業(yè)版。都提供C/C++開發(fā)環(huán)境,專業(yè)版包括豐富的中間件庫。3.1KeilMDK-ARM簡介KeilMDK-ARMKeilMDK-ARM簡介PC、IDE開發(fā)環(huán)境、仿真器、開發(fā)板宿主機仿真器開發(fā)板IDE開發(fā)環(huán)境邏輯分析儀示波器KeilMDK-ARMKeilMDK-ARM簡介PC、IDE開發(fā)環(huán)境、仿真器、開KeilMDK-ARM簡介支持Cortex-M、Cortex-R4、ARM7和ARM9設(shè)備行業(yè)領(lǐng)先的ARM、C/C++編譯工具鏈采用μVision4
IDE、調(diào)試器和模擬環(huán)境KeilRTX占用空間小的實時操作系統(tǒng)(具有源代碼)TCP/IP網(wǎng)絡(luò)套件提供多個協(xié)議和各種應(yīng)用程序USB設(shè)備和USB主機堆棧配備標(biāo)準(zhǔn)驅(qū)動程序類ULINKpro支持對正在運行的應(yīng)用程序進行即時分析并記錄執(zhí)行的每條Cortex-M指令KeilMDK-ARM簡介支持Cortex-M、CortKeilMDK-ARM簡介有關(guān)程序執(zhí)行的完整代碼覆蓋率信息執(zhí)行性能分析器和性能分析器支持程序優(yōu)化大量示例項目可幫您快速熟悉MDK-ARM強大的內(nèi)置功能符合CMSIS,Cortex微控制器軟件接口標(biāo)準(zhǔn)在ARM公司的網(wǎng)站()注冊、下載最新的KeilMDK-ARM開發(fā)工具軟件,MDK-Lite版:受限制的32K編譯、鏈接、部分模塊功能。KeilMDK-ARM簡介有關(guān)程序執(zhí)行的完整代碼覆蓋率信息KeilMDK-ARM簡介MDK-Lite版:mdk_514.exe,約280M,下載后直接安裝。KeilMDK-ARM簡介MDK-Lite版:mdk_5第三章KeilMDK-ARM集成開發(fā)環(huán)境3.1KeilMDK-ARM簡介3.2KeilMDK-ARM安裝3.3KeilMDK-ARM集成開發(fā)環(huán)境3.4新建Thumb匯編程序項目3.5Thumb匯編程序編譯與調(diào)試第三章KeilMDK-ARM集成開發(fā)環(huán)境3.1Keil3.2KeilMDK-ARM安裝3.2KeilMDK-ARM安裝KeilMDK-ARM安裝軟件安裝后,會自動打開PackInstaller包安裝向?qū)Вx擇相應(yīng)芯片的驅(qū)動包進行在線安裝、或下載包離線安裝。包含了軟件包、例子、接口驅(qū)動、板子驅(qū)動等。KeilMDK-ARM安裝軟件安裝后,會自動打開PackKeilMDK-ARM安裝在線安裝pack或example:先從右側(cè)Device欄篩選某芯片型號,左邊Packs(或Example)欄就會出現(xiàn)相應(yīng)的pack(或example),再點擊install等待即可。離線安裝包:在Summary欄可跳轉(zhuǎn)到對應(yīng)頁面下載安裝包DFP文件。下載后的DFP文件,可直接安裝到開發(fā)環(huán)境內(nèi)。KeilMDK-ARM安裝在線安裝pack或exampleKeilMDK-ARM安裝下載后的DFP文件,可直接安裝到開發(fā)環(huán)境內(nèi)。KeilMDK-ARM安裝下載后的DFP文件,可直接安裝到KeilMDK-ARM安裝本課程后續(xù)學(xué)習(xí),根據(jù)你的開發(fā)板選擇下載安裝包:CMSIS(CortexMicrocontrollerSoftwareInterfaceStandard):ARM.CMSIS.4.2.0.pack芯片型號選擇包如:STMicroelectronicsSTM32F1SeriesDeviceSupport,DriversandExamples:Keil.STM32F1xx_DFP.1.1.0.pack在安裝后目錄下可找到幫助文件:uv4.chmKeilMDK-ARM安裝本課程后續(xù)學(xué)習(xí),根據(jù)你的開發(fā)板選第3章KeilMDK-ARM集成開發(fā)環(huán)境3.1KeilMDK-ARM簡介3.2KeilMDK-ARM安裝3.3KeilMDK-ARM集成開發(fā)環(huán)境3.4新建Thumb匯編程序項目3.5Thumb匯編程序編譯與調(diào)試第3章KeilMDK-ARM集成開發(fā)環(huán)境3.1Keil3.3KeilMDK-ARM集成開發(fā)環(huán)境安裝后在桌面快捷圖標(biāo),或開始菜單啟動即可。ToolbarsWatch
WindowMemory
WindowLogicAnalyzerEditor
WorkspaceMenuBarProject
WorkspaceOutput
WindowToolboxPageTabsPeripheral
Dialog3.3KeilMDK-ARM集成開發(fā)環(huán)境安裝后在桌面快捷1、File菜單芯片數(shù)據(jù)庫Licenses注冊管理新建、保存源程序文件1、File菜單芯片數(shù)據(jù)庫Licenses注冊管理新建、2、Edit菜單2、Edit菜單Edit菜單-Configuration編輯器設(shè)置菜單:代碼編輯器設(shè)置顏色與字體設(shè)置用戶關(guān)鍵字快捷鍵代碼模板Edit菜單-Configuration編輯器設(shè)置菜單:代3、View菜單顯示或隱藏狀態(tài)欄顯示或隱藏文件工具條顯示或隱藏編譯工具條顯示或隱藏調(diào)試工具條顯示或隱藏工程空間顯示或隱藏輸出窗口顯示或隱藏瀏覽窗口顯示或隱藏反匯編窗口顯示或隱藏Watch&CallStack窗口顯示或隱藏存儲器窗口顯示或隱藏代碼覆蓋窗口顯示或隱藏性能分析窗口顯示或隱藏邏輯分析儀窗口顯示或隱藏符號窗口顯示或隱藏CallStack顯示或隱藏Trace顯示窗口顯示或隱藏串行窗口顯示或隱藏SFR寄存器顯示或隱藏工具箱運行時更新調(diào)試窗口顯示或隱藏源文件中的頭文件3、View菜單顯示或隱藏狀態(tài)欄顯示或隱藏文件工具條顯示4、Project菜單創(chuàng)建一個新項目創(chuàng)建一個新工作區(qū)導(dǎo)入一個項目打開一個項目關(guān)閉當(dāng)前項目維護工程組件、配置環(huán)境及管理書從設(shè)備庫中選擇CPU改變目標(biāo)、組、文件的工具選項清除編譯生成的文件編譯已修改的文件批處理編譯編譯當(dāng)前文件停止編譯重新編譯所有的源文件打開最近使用的項目文件4、Project菜單創(chuàng)建一個新項目創(chuàng)建一個新工作區(qū)導(dǎo)入一個5、Flash菜單擦除Flash配置Flash工具下載程序映象到Flash中5、Flash菜單擦除Flash配置Flash工具下載程序6、Debug菜單運行到下一個活動斷點單步運行進入一個函數(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ù)或時間打開邏輯分析儀對話框打開存儲器映射對話框打開性能分析儀對話框打開在線匯編對話框編輯調(diào)試函數(shù)及調(diào)試初始化文件6、Debug菜單運行到下一個活動斷點單步運行進入一個函數(shù)其他菜單7、Peripherals外設(shè)菜單8、Tools菜單9、SVCS菜單10、Windows菜單11、Help菜單其他菜單7、Peripherals外設(shè)菜單第3章KeilMDK-ARM集成開發(fā)環(huán)境3.1KeilMDK-ARM簡介3.2KeilMDK-ARM安裝3.3KeilMDK-ARM集成開發(fā)環(huán)境3.4新建Thumb匯編程序項目3.5Thumb匯編程序編譯與調(diào)試第3章KeilMDK-ARM集成開發(fā)環(huán)境3.1Keil3.4新建Thumb匯編程序項目第一步:打開μVision5集成開發(fā)環(huán)境,在Project菜單中新建項目,在彈出框中選擇項目存放路徑、填寫項目名稱3.4新建Thumb匯編程序項目第一步:打開μVision新建Thumb匯編程序項目第二步:進入SelectDeviceforTarget選項卡,選擇CPU芯片型號,如ARMCM4:新建Thumb匯編程序項目第二步:進入SelectDevi新建Thumb匯編程序項目第三步:彈出ManageRun-TimeEnvironment選項卡,管理運行時環(huán)境,選擇已安裝的軟件包(軟件組件)。設(shè)置匯編程序時直接點擊OK跳過即可完成項目設(shè)置。新建Thumb匯編程序項目第三步:彈出ManageRun-第四步:OptionsforTarget-1第四步:OptionsforTarget,目標(biāo)板硬件和開發(fā)環(huán)境配置。Debug設(shè)置調(diào)試器,選擇UseSimulator使用模擬器。第四步:OptionsforTarget-1第四步:OOptionsforTarget-2其余選項卡默認(rèn)即可Device選擇芯片型號Target配置硬件Output設(shè)置輸出文件Listing設(shè)置表單文件User設(shè)置用戶自定義程序C/C++設(shè)置C/C++編譯器Asm設(shè)置匯編器LInker設(shè)置鏈接器Utilites設(shè)置Flash下載工具設(shè)置RTX庫設(shè)置ROM設(shè)置RAM設(shè)置使用微庫創(chuàng)建HEX文件設(shè)置目標(biāo)文件路徑設(shè)置頭文件路徑設(shè)置分散加載OptionsforTarget-2其余選項卡默認(rèn)即可第五步:編寫簡單的Thumb匯編程序
File文件菜單,新建源程序文件,然后另存為TEST1.S;文件名:TEST1.S
AREA|test1.s|,CODE,READONLY;聲明只讀代碼段
DCD__Vectors DCDReset_HandlerEXPORT__Vectors EXPORTReset_Handler__Vectors Reset_HandlerPROC ;PROC/ENDP函數(shù)起始STARTMOVR0,#15;R0=15 MOVR1,#8;R1=8 ADDSR0,R0,R1;R0=R0+R1 B START
ENDP;此處函數(shù)起始標(biāo)記可省END使用“;”進行注釋標(biāo)號頂格寫實際代碼段聲明文件結(jié)束第五步:編寫簡單的Thumb匯編程序
File文件菜單,新第4章-Keil-MDK-ARM集成開發(fā)環(huán)境課件第六步匯編程序源文件添加到項目中第六步匯編程序源文件添加到項目中第六步匯編程序源文件添加到項目中第六步匯編程序源文件添加新建Thumb匯編程序項目經(jīng)過上述六步,即可進行程序的編譯、調(diào)試、模擬運行等。項目文件窗口新建Thumb匯編程序項目經(jīng)過上述六步,即可進行程序的編譯、第四章KeilMDK-ARM集成開發(fā)環(huán)境4.1KeilMDK-ARM簡介4.2KeilMDK-ARM安裝4.3KeilMDK-ARM集成開發(fā)環(huán)境4.4新建Thumb匯編程序項目4.5Thumb匯編程序編譯與調(diào)試第四章KeilMDK-ARM集成開發(fā)環(huán)境4.1Keil4.5Thumb匯編程序編譯與調(diào)試常用工具欄3個編譯按鈕第一個按鈕:Translate翻譯當(dāng)前源文件,檢查語法錯誤,并不去鏈接庫文件,也不生成可執(zhí)行文件。第二個按鈕:Build編譯文件,它包含語法檢查,鏈接動態(tài)庫文件,生成可執(zhí)行文件。第三個按鈕:Rebuild重新編譯整個工程,跟Build這個按鈕實現(xiàn)的功能是一樣的,耗時大。4.5Thumb匯編程序編譯與調(diào)試常用工具欄3個編譯按鈕Thumb匯編程序編譯與調(diào)試啟動調(diào)試,進入調(diào)試狀態(tài)反匯編窗口匯編程序窗口寄存器窗口Thumb匯編程序編譯與調(diào)試啟動調(diào)試,進入調(diào)試狀態(tài)反匯編窗口調(diào)試狀態(tài)下工具欄:調(diào)試狀態(tài)下工具欄:第4章-Keil-MDK-ARM集成開發(fā)環(huán)境課件工程管理窗口工程文件窗口寄存器窗口電子文檔窗口函數(shù)窗口函數(shù)模板工程管理窗口工程文件窗口寄存器窗口電子文檔窗口函數(shù)窗口函數(shù)模源代碼窗口源代碼彩色顯示文本的選擇任意數(shù)量的文本在文本上拖曳一個單詞雙擊這個單詞一行文本移動指針到這個行的左端直到它變成向右指示的箭頭并單擊它多行文本移動指針到這個行的左端直到它變成向右指示的箭頭并拖拽它垂直文本按住Alt并拖拽源代碼和匯編混合顯示源代碼窗口源代碼彩色顯示文本的選擇任意數(shù)量的文本在文本上拖曳調(diào)試窗口及對話框Breakpoint
對話框,可在此對話框中定義程序執(zhí)行停止的條件;CodeCoverage窗口統(tǒng)計了程序中被執(zhí)行部分及未被執(zhí)行部分的執(zhí)行信息;DisassemblyWindow
可以反匯編方式來查看及測試程序;LogicAnalyzer
窗口可以以圖形的方式來顯示變量及外設(shè)寄存器值的變化;MemoryWindow
對話框可查看及修改內(nèi)存內(nèi)容;MemoryMap
指定程序代碼及數(shù)據(jù)變量所用的內(nèi)存空間;OutputWindow-Command
窗口可進行命令輸入和信息輸出;ExecutionProfiler
窗口被集成在編輯和反匯編窗口中,用于時間及調(diào)用信息統(tǒng)計;PerformanceAnalyzer
窗口可以顯示執(zhí)行時間的統(tǒng)計信息;SerialWindow
用串口通信,顯示串口通信內(nèi)容;SymbolWindow
用于顯示應(yīng)用程序中的調(diào)試符號信息;Toolbox
提供一個可配置的按鈕,此按鈕可用于調(diào)試命令及調(diào)試函數(shù)的執(zhí)行;WatchWindow
可以查看及修改程序變量,并列出當(dāng)前的函數(shù)調(diào)用關(guān)系。調(diào)試窗口及對話框Breakpoint對話框,可在此對話框中Breakpoint對話框Debug->BreakpointExecutionBreak(E):當(dāng)表達(dá)式是代碼地址時,斷點被定義。AccessBreak(A):當(dāng)所指定的內(nèi)存訪問發(fā)生時,此斷點有效。ConditionalBreak(C):當(dāng)表達(dá)式不能轉(zhuǎn)化為內(nèi)存地址時,一個類型的斷點被定義。Breakpoint對話框Debug->Breakpoi代碼統(tǒng)計對話框View->CodeCoverageWindows代碼統(tǒng)計對話框提供了程序中各個模塊及函數(shù)的執(zhí)行情況。在CurrentModule(當(dāng)前模塊)下拉列表框中列出了程序所有要模塊,每個模塊或函數(shù)的指令執(zhí)行百分比代碼統(tǒng)計對話框View->CodeCoverageW反匯編窗口View->DisassemblyWindow反匯編窗口可以將源程序和匯編程序一起顯示,也可以只顯示匯編程序。通過Debug->ViewTraceRecords可以查看前面指令的執(zhí)行記錄。反匯編窗口View->DisassemblyWindo邏輯分析儀Debug->LogicAnalyzerWindowμVision3邏輯分析儀可以將指定的變量或VTREGs值的變化以圖形方式表示出來。邏輯分析儀信號配置詳細(xì)設(shè)置使用限制邏輯分析儀Debug->LogicAnalyzerW內(nèi)存窗口View->MemoryWindow通過內(nèi)存窗口可以查看存儲器內(nèi)容。
內(nèi)存窗口最多可將四個不同的存儲域顯示在不同的頁中。
窗口中的右鍵菜單可以選擇輸出格式。在Address域內(nèi),可以輸入一個表達(dá)式,此表達(dá)式的值為所顯示內(nèi)容的地址。
在某個單元的值上雙擊可打開一個編輯框,它允許鍵入一個新的存儲值改變存儲內(nèi)容。
使能View–PeriodicWindowUpdate,可以在運行目標(biāo)程序時更新此窗口中的值。內(nèi)存窗口View->MemoryWindow通過內(nèi)內(nèi)存映射窗口Debug->MemoryMap內(nèi)存映射對話框可以用來設(shè)定那些地址空間用于存儲數(shù)據(jù)、那些地址空間用于存儲程序。被訪問的地址空間沒有被明確聲明時就必須進行地址映射,如存儲映射I/O空間。在目標(biāo)程序運行期間,保證讓程序不進行非法的存儲區(qū)訪問。內(nèi)存映射窗口Debug->MemoryMap內(nèi)存映輸出窗口View->OutputWindow輸出窗口:編譯信息輸出、命令輸出、文件查找結(jié)果輸出。命令輸出可以是“調(diào)試命令”、“變量及寄存器”、“調(diào)試函數(shù)”。輸出窗口View->OutputWindow輸出窗執(zhí)行剖析器Debug->ExecutionProfiling->Time/Calls執(zhí)行剖析器,它可以記錄執(zhí)行全部程序代碼所需的時間。它具有兩種顯示方式:Call(顯示執(zhí)行次數(shù))和Time(顯示執(zhí)行時間)。將鼠標(biāo)放在指定的入口處即可顯示有關(guān)執(zhí)行時間及次數(shù)的詳細(xì)信息。執(zhí)行剖析器Debug->ExecutionProfil性能分析儀Debug->PerformanceAnalyzer性能分析儀用于記錄和顯示程序的執(zhí)行時間。μVisionARM仿真器記錄整個程序代碼的時間統(tǒng)計信息。性能分析儀Debug->PerformanceAnal串行窗口View->SerialWindow
printf--
intfputc(intch,FILE*f);
getchar--intfgetc(FILE*stream);串行窗口View->SerialWindowpri符號窗口View->SymbolWindow顯示定義在當(dāng)前被載入的應(yīng)用程序中的公有符號、局部符號及行號信息。CPU特殊功能寄存器SFR符號也顯示在此窗口中。符號窗口View->SymbolWindow顯示定工具箱View->Toolbox
Toolbox中包含用戶可配置的按鈕。點擊工具箱上的按鈕可以執(zhí)行相關(guān)的調(diào)試命令(debugcommand)或調(diào)試函數(shù)(debugfunction)。工具箱按鈕可以在任何時間執(zhí)行,甚至是運行測試程序時。參考實例:>DEFINEBUTTON"MyStatusInfo","MyStatus()">DEFINEBUTTON"Analog00..3V","analog0(3)">DEFINEBUTTON"StopAnalog0","signalkillanalog0"工具箱View->ToolboxToolbox中包含Watch窗口View->Watch&CallstackWindow
Locals頁列出了當(dāng)前函數(shù)中全部的局部變量。
Watch頁列出了用戶指定的程序變量。
CallStack頁顯示了當(dāng)前的函數(shù)調(diào)用嵌套關(guān)系。Watch窗口View->Watch&Callst第4章-Keil-MDK-ARM集成開發(fā)環(huán)境課件MDK開發(fā)的四個步驟Step1:選擇設(shè)備和指定硬件對象Step2:配置設(shè)備和創(chuàng)建應(yīng)用程序代碼μVision包含了工程管理器、編輯器和調(diào)試器網(wǎng)上龐大地設(shè)備數(shù)據(jù)庫&μVision簡單化地芯片選擇與設(shè)置MDK開發(fā)的四個步驟μVision包含了工程管理器、編輯器MDK開發(fā)的四個步驟通過ULINK進行FlashDownload和TargetDebugging通過μVisionDebugger
和DeviceSimulator調(diào)試Step3:用μVision設(shè)備仿真器分析代碼Step4:Flash下載最后在目標(biāo)硬件上測試MDK開發(fā)的四個步驟通過ULINK進行FlashDow添加管理源文件組織源碼結(jié)構(gòu);添加源文件:從C:\Keil\ARM\Examples\Measure拷貝源文件。建立軟仿真工程:Simulator為設(shè)備仿真工程。Startup啟動代碼Source實驗源文件System系統(tǒng)調(diào)用源文件IniFile初始化命令文件ReadMe說明文件添加管理源文件組織源碼結(jié)構(gòu);Startup啟動代碼Sourc添加管理源文件點擊工具欄“”管理工程,添加源碼。注:為了說明操作,直接拷貝附帶例程源碼。添加管理源文件點擊工具欄“”管理工程,添加源碼。配置啟動代碼圖形化配置圖形化對話框,直觀方便免除手寫幾百行匯編代碼快速生成啟動代碼配置啟動代碼圖形化配置圖形化對話框,直觀方便Debug調(diào)試點擊工具欄“”下載程序到目標(biāo)板進入調(diào)試狀態(tài)Debug調(diào)試點擊工具欄“”下載程序到目標(biāo)板進入調(diào)試單步、查看各個窗口單步、斷點、全速運行:查看Debug狀態(tài)下各個窗口:單步、查看各個窗口單步、斷點、全速運行:設(shè)置編程工具Flash下載Flash->ConfigureFlashTools…:Flash芯片型號設(shè)置編程工具Flash下載Flash->Configur設(shè)備仿真實例內(nèi)容五設(shè)備仿真實例內(nèi)容五MDK的設(shè)備仿真目標(biāo)設(shè)備的所有組件都可仿真.代碼可在整個設(shè)備上運行完全的目標(biāo)硬件仿真完整的目標(biāo)高效指令集仿真中斷仿真片內(nèi)外圍設(shè)備ADC,DAC,EBI,TimersUART,CAN,I2C….包含外部信號和I/O包含外部信號和I/O充足的仿真信息包含在設(shè)備數(shù)據(jù)庫里Supports>250ARMbasedMCU’sIncludedinRealViewMDK/uvision/db_sim.aspMDK的設(shè)備仿真目標(biāo)設(shè)備的所有組件都可仿真.代碼可在整個設(shè)備Measure程序介紹默認(rèn)路徑:C:\Keil\ARM\Examples\Measure;uVisionSimulatorforLPC2129;該例程描述了如何使用uVision的信號函數(shù)功能來仿真LPC21XX一個模擬量的輸入。Measure程序介紹默認(rèn)路徑:C:\Keil\ARM\E編譯、鏈接、調(diào)試打開Measure工程,編譯、鏈接程序,點擊Debug進入調(diào)試狀態(tài)。編譯、鏈接Debug編譯、鏈接、調(diào)試打開Measure工程,編譯、鏈接程序,點擊虛擬串口打開虛擬串口2,全速運行程序查看結(jié)果;Retarget庫文件//Serial.cintsendchar(intch)if(ch=='\n'){while(!(U1LSR&0x20));U1THR=CR;}while(!(U1LSR&0x20));return(U1THR=ch);}intgetkey(void){ while(!(U1LSR&0x01));return(U1RBR);}//Retarget.cintfputc(intch,FILE*f){return(sendchar(ch));}RealView微控制器開發(fā)工具集帶有一個預(yù)定義的retarget庫文件,它是許多例程的一部分。retarget文件修改了底層的I/O程序,并禁止了semi-hostingSWI中斷的使用。虛擬串口打開虛擬串口2,全速運行程序查看結(jié)果;Retarge查看程序代碼代碼塊彩色顯示顯示混合的源代碼與反匯編代碼改變顯示模式并且使用contextmenu中的其他命令(在Disassembly窗口中點擊右鍵)查看程序代碼代碼塊彩色顯示調(diào)用棧View->Watch&CallstackWindowView->CallstackUnwinder顯示函數(shù)的嵌套情況雙擊此頁中的某行,將會在工作區(qū)中顯示調(diào)用所選擇函數(shù)的源代碼。顯示函數(shù)的嵌套情況顯示函數(shù)參數(shù)的值或者地址雙擊此頁中的某行,將會在工作區(qū)中顯示調(diào)用所選擇函數(shù)的源代碼。調(diào)用棧View->Watch&Callstack通過設(shè)置Trace功能,可以跟蹤代碼跟蹤代碼要求設(shè)置Enable/DisableTraceRecording可以查看到在到達(dá)斷點前CPU所執(zhí)行的指令在工程工作空間的Regs頁面會顯示執(zhí)行所選擇的指令在執(zhí)行過程中相應(yīng)的CPU寄存器內(nèi)容。通過設(shè)置Trace功能,可以跟蹤代碼跟蹤代碼要求設(shè)置Enab雙擊一行代碼,在代碼的左面出現(xiàn)一個紅點,表示斷電設(shè)置成功斷點使用工具欄的斷點相關(guān)按鈕:調(diào)試狀態(tài)下:Debug->Breakpoint…,可以設(shè)置高級斷點在不具備trace功能的硬件環(huán)境下,不具備條件觸發(fā)中斷的能力條件觸發(fā)中斷只能在軟件仿真的情況下實現(xiàn)當(dāng)對變量current.time.sec進行寫操作且值恒等于3的產(chǎn)生斷點雙擊一行代碼,在代碼的左面出現(xiàn)一個紅點,表示斷電設(shè)置成功斷點查看變量View->WatchWindow可以隨時查看變量、結(jié)構(gòu)體以及數(shù)組的內(nèi)容。在空白行雙擊鼠標(biāo)左鍵或者按F2鍵即可添加變量,通過同樣的方式也可以修改變量的值。在源文件編輯窗口選擇需要添加的變量名,單擊鼠標(biāo)右鍵,在彈出的局部菜單中選擇AddtoWatchWindow選項將其加入。查看變量View->WatchWindow可以隨時查看查看片上外設(shè)μVision里提供了片上外設(shè)對話框:I/O端口,中斷,定時器,A/D轉(zhuǎn)換器,串口和一些芯片特有的外設(shè)。對話框會顯示當(dāng)前外設(shè)的狀態(tài),同時也可以直接在對話框中改變相應(yīng)的輸入值。查看片上外設(shè)μVision里提供了片上外設(shè)對話框:I/O端口性能分析儀&代碼覆蓋統(tǒng)計Debug->PerformanceAnalyzeView->CodeCoverageWindows性能分析儀&代碼覆蓋統(tǒng)計Debug->Performan信號函數(shù)信號函數(shù)可以在后臺實現(xiàn)信號輸入、脈沖輸入等重復(fù)操作。信號函數(shù)可用于模擬和測試串行I/O、模擬I/O、端口通訊和其他一些重復(fù)發(fā)生的外部事件。FUNCvoidMyStatus(void){printf("=============================\n");printf("Analog-Input-0:%f\n",ain0);printf("Analog-Input-1:%f\n",ain1);printf("Analog-Input-2:%f\n",ain2);printf("Analog-Input-3:%f\n",ain3);printf("Port0:%08X\n",port0);printf("=============================\n");}/*MEASURE.INI:MeasureDebugInitFile*/Signalvoidanalog0(floatlimit){floatvolts;printf("Analog0(%f)entered.\n",limit);while(1){/*forever*/volts=0;while(volts<=limit){ain0=volts;/*analoginput-0*/swatch(0.01);/*wait0.01seconds*/volts+=0.1;/*increasevoltage*/}volts=limit;while(volts>=0.0){ain0=volts;swatch(0.01);/*wait0.01seconds*/volts-=0.1;/*decreasevoltage*/}}}初始化文件信號函數(shù)信號函數(shù)信號函數(shù)可以在后臺實現(xiàn)信號輸入、脈沖輸入等重復(fù)操作。ToolboxView->Toolbox;>DEFINEBUTTON"MyStatusInfo","MyStatus()">DEFINEBUTTON"Analog00..3V","analog0(3)">DEFINEBUTTON"StopAnalog0","signalkillanalog0"Toolbox中包含用戶可配置的按鈕。點擊工具箱上的按鈕可以執(zhí)行相關(guān)的調(diào)試命令或調(diào)試函數(shù)。工具箱按鈕可以在任何時間執(zhí)行,甚至是運行測試程序時。添加按鈕語法:刪除按鈕語法:>DEFINEBUTTON"button_label","command“>KillButtonnumToolboxView->Toolbox;>DEFINE邏輯分析儀Debug->LogicAnalyzerWindow可以是變量或VTREGs值邏輯分析儀Debug->LogicAnalyzerW綜合全速運行程序,串口輸入“d”,在終端顯示ADC采樣值;點擊Toolbox的“Analog00..3”按鈕,輸出外部信號;查看各個調(diào)試窗口狀態(tài)。綜合全速運行程序,串口輸入“d”,在終端顯示ADC采樣值;調(diào)試命令/函數(shù)、分散加載文件內(nèi)容六調(diào)試命令/函數(shù)、分散加載文件內(nèi)容六調(diào)試命令μVision3支持大量命令,可以通過OutputWindow–CommandLine鍵入命令在命令入口處,語法生成器會顯示命令,選項和參數(shù)。僅需鍵入命令名單詞的首字符。類別描述斷點命令允許創(chuàng)建和刪除斷點。當(dāng)遇到一個特定指令時可以使用斷點停止程序執(zhí)行或執(zhí)行μVision3命令或用戶函數(shù)。普通命令可以執(zhí)行一些混合的調(diào)試操作。存儲器命令顯示和改變存儲器內(nèi)容程序命令執(zhí)行目標(biāo)程序并分析其性能調(diào)試命令μVision3支持大量命令,可以通過Output調(diào)試命令-斷點命令命令描述BreakAccess添加一個指定長度(地址域)的訪問斷點到斷點列表。BreakDisable使一個或多個斷點不可用。BreakEnable使能一個或多個斷點。BreakKill從斷點列表中移除一個或多個斷點。BreakList列出當(dāng)前斷點。BreakSet添加一個斷點表達(dá)式到斷點列表。調(diào)試命令-斷點命令命令描述BreakAccess添加一個調(diào)試命令-普通命令命令描述ASSIGN為串行窗口分配輸入輸出源。DEFINE創(chuàng)建一個工具箱按鈕。DIR生成一個符號名目錄。EXIT退出μVision3調(diào)試模式。INCLUDE讀取并執(zhí)行命令文件中的命令。KILL刪除μVision3調(diào)試函數(shù)和工具箱按鈕。LOAD載入目標(biāo)模塊和十六進制文件。LOG為調(diào)試窗口生成日志文件,查詢?nèi)罩緺顟B(tài)及關(guān)閉日志文件。MODE為PC機的COM口設(shè)置波特率,奇偶位和停止位。RESET重啟μVision3,重設(shè)存儲映射分配及重置預(yù)定義變量。SAVE在IntelHEX386文件中保存一個存儲域。SCOPE顯示目標(biāo)程序的模塊和函數(shù)的地址分配。SET為預(yù)定義變量設(shè)備字符串值。SIGNAL顯示信號函數(shù)的狀態(tài)和移除有效信號函數(shù)。SLOG為串行窗口生成日志文件,查詢?nèi)罩緺顟B(tài)及關(guān)閉日志文件。調(diào)試命令-普通命令命令描述ASSIGN為串行窗口分配輸入輸調(diào)試命令-存儲器命令命令描述ASM匯編內(nèi)嵌代碼。DEFINE定義可能在μVision3中使用的符號。DISPLAY顯示存儲器的內(nèi)容。ENTER把值鍵入到指定的存儲域。EVALuate求表達(dá)式的值并輸出結(jié)果。MAP為存儲域指定訪問參數(shù)。Unassemble反匯編程序存儲域。WatchSet向觀測窗口中添加一個觀測變量。WatchKill刪除觀測窗口中的所有觀測變量調(diào)試命令-存儲器命令命令描述ASM匯編內(nèi)嵌代碼。DEFI調(diào)試命令-程序命令命令描述COVERAGE顯示代碼統(tǒng)計信息Go啟動程序執(zhí)行LogicAnalyze初始化邏輯分析儀PerformanceAnalyze初始化內(nèi)置的性能分析儀。Pstep執(zhí)行指令但不跳入過程或函數(shù)。Ostep跳出當(dāng)前函數(shù)。Tstep跳過指令并跳入函數(shù)。調(diào)試命令-程序命令命令描述COVERAGE顯示代碼統(tǒng)計信調(diào)試函數(shù)μVision3中有一個內(nèi)建的函數(shù)編輯器,通過Debug->FunctionEditor來打開。打開函數(shù)編輯器時需要輸入一個文件名或者打開一個由OptionsforTarget–>Debug–>InitializationFile指定的文件。該編輯器的用法與μVision3編輯器相同,允許用戶輸入和編譯調(diào)試函數(shù)。調(diào)試函數(shù)μVision3中有一個內(nèi)建的函數(shù)編輯器,通過De調(diào)試函數(shù)μVision3提高了一些可被調(diào)用的預(yù)定義調(diào)試函數(shù),它們不能被重定義或者被刪除。預(yù)定義函數(shù)用來幫助開發(fā)者定義用戶和信號函數(shù)。名字參數(shù)描述voidexec執(zhí)行調(diào)試命令doublegetdbl請求用戶輸入一個雙精度浮點數(shù)據(jù)intgetint請求用戶輸入一個整型數(shù)據(jù)longgetlong請求用戶輸入一個長整型數(shù)據(jù)voidmemset以常量填充內(nèi)存voidprintf輸出函數(shù)intrand返回介于0到32767之間的隨即數(shù)voidrwatch延遲執(zhí)行信號函數(shù)直到讀取地址成功更多函數(shù)……調(diào)試函數(shù)μVision3提高了一些可被調(diào)用的預(yù)定義調(diào)試函數(shù),裝載域BINROMRAM文件映像域裝載域描述運行前輸出段和域在ROM/RAM里的分布狀態(tài);運行域描述了運行時輸出段和域在ROM/RAM里的分布狀態(tài)。CODEDATA運行域ROsectionRWsectionZIsectionSTACKImage$$RO$$BaseImage$$RO$$LimitImage$$RW$$BaseImage$$ZI$$BaseImage$$RW$$LimitImage$$ZI$$Limit裝載域BINROMRAM文件映像域裝載域描述運行前輸出段和域運行時的數(shù)據(jù)搬移RW段搬移&ZI段清零裝載域BINROMRAMCODEDATA運行域RORWZISTACKImage$$RO$$BaseImage$$RO$$LimitImage$$RW$$BaseImage$$ZI$$BaseImage$$RW$$LimitImage$$ZI$$Limit#CopyRWdataInitialize:ldr r0,=Image$$RO$$Limit ldr r1,=Image$$RW$$Base ldr r3,=Image$$RW$$Limit
cmp r0,r1 beq F1F0:cmp r1,r3 LDRCCr2,[r0],#4strccr2,[r1],#4bcc F0#PastezeroinitializeddataF1:ldr r1,=Image$$ZI$$Limit ldr r3,=Image$$ZI$$Base mov r2,#0F2:cmp r3,r1 strccr2,[r3],#4bcc F2運行時的數(shù)據(jù)搬移RW段搬移&ZI段清零裝載域BINROMRAScatterfile分散加載文件分散加載(Scatlerloading),即工程里的.scf文件;在scatterfile中可以為每一個代碼或數(shù)據(jù)區(qū)執(zhí)行時指定不同的存儲區(qū)域地址。分散加載文件;RUNINFLASHLR_ROM10x000000000x00200000{ER_ROM10x000000000x00200000{*.o(RESET,+First)*(InRoot$$Sections).ANY(+RO)}RW_RAM10x300000000x04000000{.ANY(+RW+ZI)}};RUNINRAMLR_ROM10x300000000x00010000{ER_ROM10x300000000x00010000{*.o(RESET,+First)*(InRoot$$Sections).ANY(+RO)}RW_RAM10x300100000x00010000{.ANY(+RW+ZI)}}*(InRoot$$Sections)它是__main()的一部分Scatterfile分散加載文件分散加載(Scatlerl基于硬件的開發(fā)調(diào)試內(nèi)容七基于硬件的開發(fā)調(diào)試內(nèi)容七環(huán)境工具的準(zhǔn)備硬件:EduKit-IV+Mini2410平臺一套;仿真器:ARMRealViewMDK套件一套;其他:電腦一臺(安裝WindowsXP系統(tǒng)、MDK環(huán)境);拷貝出廠光盤DISK3_S3C2410\03-Codes\01-MDK\Mini2410-IV文件夾到MDK安裝路徑:C:\Keil\ARM\Boards\Embest;正確安裝Mini2410核心板,BOOT跳線斷開,連接好交叉串口線、電源線;以8.2_ADC_Test程序為例。環(huán)境工具的準(zhǔn)備硬件:EduKit-IV+Mini2410平臺硬件原理隨著數(shù)字技術(shù),特別是計算機技術(shù)的飛速發(fā)展與普及,在現(xiàn)代控制、通信及檢測領(lǐng)域中,對信號的處理廣泛采用了數(shù)字計算機技術(shù)。由于系統(tǒng)的實際處理對象往往都是一些模擬量(如溫度、壓力、位移、圖像等),要使計算機或數(shù)字儀表能識別和處理這些信號,必須首先將這些模擬信號轉(zhuǎn)換成數(shù)字信號,這就必須用到A/D轉(zhuǎn)換器。參考資料:基于S3C2410嵌入式MDK開發(fā)實驗與實踐.pdf0_EDUKIT-IV.pdf1_Mini2410-IV.pdf硬件原理隨著數(shù)字技術(shù),特別是計算機技術(shù)的飛速發(fā)展與普及,在現(xiàn)連接仿真器查看設(shè)備信息連接仿真器,給實驗箱上電;菜單欄Project->OptionsforTarget…->Debug設(shè)置仿真器仿真器信息目標(biāo)板信息連接仿真器查看設(shè)備信息連接仿真器,給實驗箱上電;設(shè)置仿真器仿Debug調(diào)試點擊工具欄“”下載程序到目標(biāo)板進入調(diào)試狀態(tài)Debug調(diào)試點擊工具欄“”下載程序到目標(biāo)板進入調(diào)試配置XP下超級終端點擊WindowsXP->開始->所有程序->附件->通訊->超級終端,建立一個新的終端,并設(shè)置如下:波特率115200、1位停止位、無校驗位、無硬件流控制。超級終端串口的選擇根據(jù)用戶的PC串口硬件不同,請自行選擇,如果PC機只有一個串口,一般是COM1配置XP下超級終端點擊WindowsXP->開始->運行程序查看實驗現(xiàn)象菜單欄Debug->Run,全速運行程序并查看串口打印消息;調(diào)節(jié)實驗平臺位于Area10區(qū)域的ADC滑竿改變模擬量值,查看串口打印的采樣值的變化。運行程序查看實驗現(xiàn)象菜單欄Debug->Run,全速運行斷點、單步、查看各個調(diào)試窗口在合適的位置設(shè)置斷點觀察程序運行;查看各個調(diào)試窗口;單步跟蹤代碼運行。斷點、單步、查看各個調(diào)試窗口在合適的位置設(shè)置斷點觀察程序運行程序固化內(nèi)容八程序固化內(nèi)容八Flash編程μVision3集成了Flash編程工具,所有的相關(guān)配置將被保存在當(dāng)前工程中。允許用戶編寫初始化文件進行總線配置、寄存器配置等初始化設(shè)置。支持用戶自定義編寫Flash算法。Flash編程μVision3集成了Flash編程工具,F(xiàn)lash編程工具配置菜單欄Flash->ConfigureFlashTools…;初始化文件Flash芯片F(xiàn)lash編程工具配置菜單欄Flash->Configu初始化文件Flash初始化文件有兩個典型的應(yīng)用:配置存儲器或寄存器,這些存儲器或寄存器是用來配置訪問Flash的總線設(shè)置;加載附加程序部分。FUNCvoidInit_Board(void){ _WWORD(0x53000000,0x00000000); _WWORD(0x4A000008,0xFFFFFFFF); _WWORD(0x4A00001C,0x000007FF); _WWORD(0x4C000014,0x3); _WWORD(0x4C000004,0x0005c042); _WWORD(0x56000070,0x00280000); _WWORD(0x56000078,0x00000000);……}Init_Board();初始化文件Flash初始化文件有兩個典型的應(yīng)用:FUNCv映象固化編譯RuninFlash工程;菜單欄Flash->Download開始下載映象到Flash。Init_Board();EraseDone.ProgrammingDone.VerifyOK.Note:固化的文件為工程配置菜單中所設(shè)置的輸出文件(axf或者h(yuǎn)ex格式)映象固化編譯RuninFlash工程;NotFlash編程算法ULINK2適配器允許用戶定義附加的Flash編程算法:C:\Keil\ARM\FlashARM工具鏈已經(jīng)包含許多Flash編程算法,可以作為用戶自己編寫算法的模板。定義自己的Flash算法Flash編程算法ULINK2適配器允許用戶定義附加的FlaEmbeddedSystemDevelopment嵌入式系統(tǒng)與應(yīng)用
EmbeddedSystemDevelopment嵌入式第4章KeilMDK-ARM集成開發(fā)環(huán)境3.1KeilMDK-ARM簡介3.2KeilMDK-ARM安裝3.3KeilMDK-ARM集成開發(fā)環(huán)境3.4新建Thumb匯編程序項目3.5Thumb匯編程序編譯與調(diào)試第4章KeilMDK-ARM集成開發(fā)環(huán)境3.1Keil3.1KeilMDK-ARM簡介KeilMDK-ARM?(MicrocontrollerDevelopmentKit)開發(fā)工具源自德國Keil(),被全球超過10萬的嵌入式開發(fā)工程師使用。支持1200多種基于ARMCortex?-M系列、ARM7?、ARM9?和Cortex-R4處理器的設(shè)備。它包含眾多示例、項目模板和中間件庫,具有廣泛的TCP/IP軟件堆棧、Flash文件系統(tǒng)、USB主機和設(shè)備堆棧、CAN訪問以及舒適的圖形用戶界面解決方案。易于使用的IDE和帶有高級分析功能的全功能調(diào)試器可幫助開發(fā)人員快速啟動項目,并集中精力實現(xiàn)其應(yīng)用程序的差異功能。MDK-ARM四種版本:MDK-Lite、基礎(chǔ)版、標(biāo)準(zhǔn)版和專業(yè)版。都提供C/C++開發(fā)環(huán)境,專業(yè)版包括豐富的中間件庫。3.1KeilMDK-ARM簡介KeilMDK-ARMKeilMDK-ARM簡介PC、IDE開發(fā)環(huán)境、仿真器、開發(fā)板宿主機仿真器開發(fā)板IDE開發(fā)環(huán)境邏輯分析儀示波器KeilMDK-ARMKeilMDK-ARM簡介PC、IDE開發(fā)環(huán)境、仿真器、開KeilMDK-ARM簡介支持Cortex-M、Cortex-R4、ARM7和ARM9設(shè)備行業(yè)領(lǐng)先的ARM、C/C++編譯工具鏈采用μVision4
IDE、調(diào)試器和模擬環(huán)境KeilRTX占用空間小的實時操作系統(tǒng)(具有源代碼)TCP/IP網(wǎng)絡(luò)套件提供多個協(xié)議和各種應(yīng)用程序USB設(shè)備和USB主機堆棧配備標(biāo)準(zhǔn)驅(qū)動程序類ULINKpro支持對正在運行的應(yīng)用程序進行即時分析并記錄執(zhí)行的每條Cortex-M指令KeilMDK-ARM簡介支持Cortex-M、CortKeilMDK-ARM簡介有關(guān)程序執(zhí)行的完整代碼覆蓋率信息執(zhí)行性能分析器和性能分析器支持程序優(yōu)化大量示例項目可幫您快速熟悉MDK-ARM強大的內(nèi)置功能符合CMSIS,Cortex微控制器軟件接口標(biāo)準(zhǔn)在ARM公司的網(wǎng)站()注冊、下載最新的KeilMDK-ARM開發(fā)工具軟件,MDK-Lite版:受限制的32K編譯、鏈接、部分模塊功能。KeilMDK-ARM簡介有關(guān)程序執(zhí)行的完整代碼覆蓋率信息KeilMDK-ARM簡介MDK-Lite版:mdk_514.exe,約280M,下載后直接安裝。KeilMDK-ARM簡介MDK-Lite版:mdk_5第三章KeilMDK-ARM集成開發(fā)環(huán)境3.1KeilMDK-ARM簡介3.2KeilMDK-ARM安裝3.3KeilMDK-ARM集成開發(fā)環(huán)境3.4新建Thumb匯編程序項目3.5Thumb匯編程序編譯與調(diào)試第三章KeilMDK-ARM集成開發(fā)環(huán)境3.1Keil3.2KeilMDK-ARM安裝3.2KeilMDK-ARM安裝KeilMDK-ARM安裝軟件安裝后,會自動打開PackInstaller包安裝向?qū)?,選擇相應(yīng)芯片的驅(qū)動包進行在線安裝、或下載包離線安裝。包含了軟件包、例子、接口驅(qū)動、板子驅(qū)動等。KeilMDK-ARM安裝軟件安裝后,會自動打開PackKeilMDK-ARM安裝在線安裝pack或example:先從右側(cè)Device欄篩選某芯片型號,左邊Packs(或Example)欄就會出現(xiàn)相應(yīng)的pack(或example),再點擊install等待即可。離線安裝包:在Summary欄可跳轉(zhuǎn)到對應(yīng)頁面下載安裝包DFP文件。下載后的DFP文件,可直接安裝到開發(fā)環(huán)境內(nèi)。KeilMDK-ARM安裝在線安裝pack或exampleKeilMDK-ARM安裝下載后的DFP文件,可直接安裝到開發(fā)環(huán)境內(nèi)。KeilMDK-ARM安裝下載后的DFP文件,可直接安裝到KeilMDK-ARM安裝本課程后續(xù)學(xué)習(xí),根據(jù)你的開發(fā)板選擇下載安裝包:CMSIS(CortexMicrocontrollerSoftwareInterfaceStandard):ARM.CMSIS.4.2.0.pack芯片型號選擇包如:STMicroelectronicsSTM32F1SeriesDeviceSupport,DriversandExamples:Keil.STM32F1xx_DFP.1.1.0.pack在安裝后目錄下可找到幫助文件:uv4.chmKeilMDK-ARM安裝本課程后續(xù)學(xué)習(xí),根據(jù)你的開發(fā)板選第3章KeilMDK-ARM集成開發(fā)環(huán)境3.1KeilMDK-ARM簡介3.2KeilMDK-ARM安裝3.3KeilMDK-ARM集成開發(fā)環(huán)境3.4新建Thumb匯編程序項目3.5Thumb匯編程序編譯與調(diào)試第3章KeilMDK-ARM集成開發(fā)環(huán)境3.1Keil3.3KeilMDK-ARM集成開發(fā)環(huán)境安裝后在桌面快捷圖標(biāo),或開始菜單啟動即可。ToolbarsWatch
WindowMemory
WindowLogicAnalyzerEditor
WorkspaceMenuBarProject
WorkspaceOutput
WindowToolboxPageTabsPeripheral
Dialog3.3KeilMDK-ARM集成開發(fā)環(huán)境安裝后在桌面快捷1、File菜單芯片數(shù)據(jù)庫Licenses注冊管理新建、保存源程序文件1、File菜單芯片數(shù)據(jù)庫Licenses注冊管理新建、2、Edit菜單2、Edit菜單Edit菜單-Configuration編輯器設(shè)置菜單:代碼編輯器設(shè)置顏色與字體設(shè)置用戶關(guān)鍵字快捷鍵代碼模板Edit菜單-Configuration編輯器設(shè)置菜單:代3、View菜單顯示或隱藏狀態(tài)欄顯示或隱藏文件工具條顯示或隱藏編譯工具條顯示或隱藏調(diào)試工具條顯示或隱藏工程空間顯示或隱藏輸出窗口顯示或隱藏瀏覽窗口顯示或隱藏反匯編窗口顯示或隱藏Watch&CallStack窗口顯示或隱藏存儲器窗口顯示或隱藏代碼覆蓋窗口顯示或隱藏性能分析窗口顯示或隱藏邏輯分析儀窗口顯示或隱藏符號窗口顯示或隱藏CallStack顯示或隱藏Trace顯示窗口顯示或隱藏串行窗口顯示或隱藏SFR寄存器顯示或隱藏工具箱運行時更新調(diào)試窗口顯示或隱藏源文件中的頭文件3、View菜單顯示或隱藏狀態(tài)欄顯示或隱藏文件工具條顯示4、Project菜單創(chuàng)建一個新項目創(chuàng)建一個新工作區(qū)導(dǎo)入一個項目打開一個項目關(guān)閉當(dāng)前項目維護工程組件、配置環(huán)境及管理書從設(shè)備庫中選擇CPU改變目標(biāo)、組、文件的工具選項清除編譯生成的文件編譯已修改的文件批處理編譯編譯當(dāng)前文件停止編譯重新編譯所有的源文件打開最近使用的項目文件4、Project菜單創(chuàng)建一個新項目創(chuàng)建一個新工作區(qū)導(dǎo)入一個5、Flash菜單擦除Flash配置Flash工具下載程序映象到Flash中5、Flash菜單擦除Flash配置Flash工具下載程序6、Debug菜單運行到下一個活動斷點單步運行進入一個函數(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ù)或時間打開邏輯分析儀對話框打開存儲器映射對話框打開性能分析儀對話框打開在線匯編對話框編輯調(diào)試函數(shù)及調(diào)試初始化文件6、Debug菜單運行到下一個活動斷點單步運行進入一個函數(shù)其他菜單7、Peripherals外設(shè)菜單8、Tools菜單9、SVCS菜單10、Windows菜單11、Help菜單其他菜單7、Peripherals外設(shè)菜單第3章KeilMDK-ARM集成開發(fā)環(huán)境3.1KeilMDK-ARM簡介3.2KeilMDK-ARM安裝3.3KeilMDK-ARM集成開發(fā)環(huán)境3.4新建Thumb匯編程序項目3.5Thumb匯編程序編譯與調(diào)試第3章KeilMDK-ARM集成開發(fā)環(huán)境3.1Keil3.4新建Thumb匯編程序項目第一步:打開μVision5集成開發(fā)環(huán)境,在Project菜單中新建項目,在彈出框中選擇項目存放路徑、填寫項目名稱3.4新建Thumb匯編程序項目第一步:打開μVision新建Thumb匯編程序項目第二步:進入SelectDeviceforTarget選項卡,選擇CPU芯片型號,如ARMCM4:新建Thumb匯編程序項目第二步:進入SelectDevi新建Thumb匯編程序項目第三步:彈出ManageRun-TimeEnvironment選項卡,管理運行時環(huán)境,選擇已安裝的軟件包(軟件組件)。設(shè)置匯編程序時直接點擊OK跳過即可完成項目設(shè)置。新建Thumb匯編程序項目第三步:彈出ManageRun-第四步:OptionsforTarget-1第四步:OptionsforTarget,目標(biāo)板硬件和開發(fā)環(huán)境配置。Debug設(shè)置調(diào)試器,選擇UseSimulator使用模擬器。第四步:OptionsforTarget-1第四步:OOptionsforTarget-2其余選項卡默認(rèn)即可Device選擇芯片型號Target配置硬件Output設(shè)置輸出文件Listing設(shè)置表單文件User設(shè)置用戶自定義程序C/C++設(shè)置C/C++編譯器Asm設(shè)置匯編器LInker設(shè)置鏈接器Utilites設(shè)置Flash下載工具設(shè)置RTX庫設(shè)置ROM設(shè)置RAM設(shè)置使用微庫創(chuàng)建HEX文件設(shè)置目標(biāo)文件路徑設(shè)置頭文件路徑設(shè)置分散加載OptionsforTarget-2其余選項卡默認(rèn)即可第五步:編寫簡單的Thumb匯編程序
File文件菜單,新建源程序文件,然后另存為TEST1.S;文件名:TEST1.S
AREA|test1.s|,CODE,READONLY;聲明只讀代碼段
DCD__Vectors DCDReset_HandlerEXPORT__Vectors EXPORTReset_Handler__Vectors Reset_HandlerPROC ;PROC/ENDP函數(shù)起始STARTMOVR0,#15;R0=15 MOVR1,#8;R1=8 ADDSR0,R0,R1;R0=R0+R1 B START
ENDP;此處函數(shù)起始標(biāo)記可省END使用“;”進行注釋標(biāo)號頂格寫實際代碼段聲明文件結(jié)束第五步:編寫簡單的Thumb匯編程序
File文件菜單,新第4章-Keil-MDK-ARM集成開發(fā)環(huán)境課件第六步匯編程序源文件添加到項目中第六步匯編程序源文件添加到項目中第六步匯編程序源文件添加到項目中第六步匯編程序源文件添加新建Thumb匯編程序項目經(jīng)過上述六步,即可進行程序的編譯、調(diào)試、模擬運行等。項目文件窗口新建Thumb匯編程序項目經(jīng)過上述六步,即可進行程序的編譯、第四章KeilMDK-ARM集成開發(fā)環(huán)境4.1KeilMDK-ARM簡介4.2KeilMDK-ARM安裝4.3KeilMDK-ARM集成開發(fā)環(huán)境4.4新建Thumb匯編程序項目4.5Thumb匯編程序編譯與調(diào)試第四章KeilMDK-ARM集成開發(fā)環(huán)境4.1Keil4.5Thumb匯編程序編譯與調(diào)試常用工具欄3個編譯按鈕第一個按鈕:Translate翻譯當(dāng)前源文件,檢查語法錯誤,并不去鏈接庫文件,也不生成可執(zhí)行文件。第二個按鈕:Build編譯文件,它包含語法檢查,鏈接動態(tài)庫文件,生成可執(zhí)行文件。第三個按鈕:Rebuild重新編譯整個工程,跟Build這個按鈕實現(xiàn)的功能是一樣的,耗時大。4.5Thumb匯編程序編譯與調(diào)試常用工具欄3個編譯按鈕Thumb匯編程序編譯與調(diào)試啟動調(diào)試,進入調(diào)試狀態(tài)反匯編窗口匯編程序窗口寄存器窗口Thumb匯編程序編譯與調(diào)試啟動調(diào)試,進入調(diào)試狀態(tài)反匯編窗口調(diào)試狀態(tài)下工具欄:調(diào)試狀態(tài)下工具欄:第4章-Keil-MDK-ARM集成開發(fā)環(huán)境課件工程管理窗口工程文件窗口寄存器窗口電子文檔窗口函數(shù)窗口函數(shù)模板工程管理窗口工程文件窗口寄存器窗口電子文檔窗口函數(shù)窗口函數(shù)模源代碼窗口源代碼彩色顯示文本的選擇任意數(shù)量的文本在文本上拖曳一個單詞雙擊這個單詞一行文本移動指針到這個行的左端直到它變成向右指示的箭頭并單擊它多行文本移動指針到這個行的左端直到它變成向右指示的箭頭并拖拽它垂直文本按住Alt并拖拽源代碼和匯編混合顯示源代碼窗口源代碼彩色顯示文本的選擇任意數(shù)量的文本在文本上拖曳調(diào)試窗口及對話框Breakpoint
對話框,可在此對話框中定義程序執(zhí)行停止的條件;CodeCoverage窗口統(tǒng)計了程序中被執(zhí)行部分及未被執(zhí)行部分的執(zhí)行信息;DisassemblyWindow
可以反匯編方式來查看及測試程序;LogicAnalyzer
窗口可以以圖形的方式來顯示變量及外設(shè)寄存器值的變化;MemoryWindow
對話框可查看及修改內(nèi)存內(nèi)容;MemoryMap
指定程序代碼及數(shù)據(jù)變量所用的內(nèi)存空間;OutputWindow-Command
窗口可進行命令輸入和信息輸出;ExecutionProfiler
窗口被集成在編輯和反匯編窗口中,用于時間及調(diào)用信息統(tǒng)計;PerformanceAnalyzer
窗口可以顯示執(zhí)行時間的統(tǒng)計信息;SerialWindow
用串口通信,顯示串口通信內(nèi)容;SymbolWindow
用于顯示應(yīng)用程序中的調(diào)試符號信息;Toolbox
提供一個可配置的按鈕,此按鈕可用于調(diào)試命令及調(diào)試函數(shù)的執(zhí)行;WatchWindow
可以查看及修改程序變量,并列出當(dāng)前的函數(shù)調(diào)用關(guān)系。調(diào)試窗口及對話框Breakpoint對話框,可在此對話框中Breakpoint對話框Debug->BreakpointExecutionBreak(E):當(dāng)表達(dá)式是代碼地址時,斷點被定義。AccessBreak(A):當(dāng)所指定的內(nèi)存訪問發(fā)生時,此斷點有效。ConditionalBreak(C):當(dāng)表達(dá)式不能轉(zhuǎn)化為內(nèi)存地址時,一個類型的斷點被定義。Breakpoint對話框Debug->Breakpoi代碼統(tǒng)計對話框View->CodeCoverageWindows代碼統(tǒng)計對話框提供了程序中各個模塊及函數(shù)的執(zhí)行情況。在CurrentModule(當(dāng)前模塊)下拉列表框中列出了程序所有要模塊,每個模塊或函數(shù)的指令執(zhí)行百分比代碼統(tǒng)計對話框View->CodeCoverageW反匯編窗口View->DisassemblyWindow反匯編窗口可以將源程序和匯編程序一起顯示,也可以只顯示匯編程序。通過Debug->ViewTraceRecords可以查看前面指令的執(zhí)行記錄。反匯編窗口View->DisassemblyWindo邏輯分析儀Debug->LogicAnalyzerWindowμVision3邏輯分析儀可以將指定的變量或VTREGs值的變化以圖形方式表示出來。邏輯分析儀信號配置詳細(xì)設(shè)置使用限制邏輯分析儀Debug->LogicAnalyzerW內(nèi)存窗口View->MemoryWindow通過內(nèi)存窗口可以查看存儲器內(nèi)容。
內(nèi)存窗口最多可將四個不同的存儲域顯示在不同的頁中。
窗口中的右鍵菜單可以選擇輸出格式。在Address域內(nèi),可以輸入一個表達(dá)式,此表達(dá)式的值為所顯示內(nèi)容的地址。
在某個單元的值上雙擊可打開一個編輯框,它允許鍵入一個新的存儲值改變存儲內(nèi)容。
使能View–PeriodicWindowUpdate,可以在運行目標(biāo)程序時更新此窗口中的值。內(nèi)存窗口View->MemoryWindow通過內(nèi)內(nèi)存映射窗口Debug->MemoryMap內(nèi)存映射對話框可以用來設(shè)定那些地址空間用于存儲數(shù)據(jù)、那些地址空間用于存儲程序。被訪問的地址空間沒有被明確聲明時就必須進行地址映射,如存儲映射I/O空間。在目標(biāo)程序運行期間,保證讓程序不進行非法的存儲區(qū)訪問。內(nèi)存映射窗口Debug->MemoryMap內(nèi)存映輸出窗口View->OutputWindow輸出窗口:編譯信息輸出、命令輸出、文件查找結(jié)果輸出。命令輸出可以是“調(diào)試命令”、“變量及寄存器”、“調(diào)試函數(shù)”。輸出窗口View->OutputWindow輸出窗執(zhí)行剖析器Debug->ExecutionProfiling->Time/Calls執(zhí)行剖析器,它可以記錄執(zhí)行全部程序代碼所需的時間。它具有兩種顯示方式:Call(顯示執(zhí)行次數(shù))和Time(顯示執(zhí)行時間
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度科技園區(qū)研發(fā)場地租賃合同范本下載3篇
- 《框架結(jié)構(gòu)荷載分析》課件
- 2024簡單工程勞務(wù)合同范本
- 稅務(wù)業(yè)務(wù)知識培訓(xùn)課件
- 世紀(jì)生物醫(yī)藥研發(fā)與轉(zhuǎn)讓合同(04版)
- 個人住宅抵押貸款法律協(xié)議(2024版)版
- 2024版人力資源服務(wù)合同
- 2024年03月陜西中國銀行信息科技運營中心(西安)春季校園招考筆試歷年參考題庫附帶答案詳解
- 二零二五年度餐飲行業(yè)員工福利保障合同3篇
- 2025年度新型裝配式彩鋼房拆除與改造施工合同范本4篇
- 人教版小學(xué)數(shù)學(xué)(2024)一年級下冊第一單元 認(rèn)識平面圖形綜合素養(yǎng)測評 B卷(含答案)
- 企業(yè)年會攝影服務(wù)合同
- 電商運營管理制度
- 二零二五年度一手房購房協(xié)議書(共有產(chǎn)權(quán)房購房協(xié)議)3篇
- 2025年上半年上半年重慶三峽融資擔(dān)保集團股份限公司招聘6人易考易錯模擬試題(共500題)試卷后附參考答案
- 城市公共交通運營協(xié)議
- 內(nèi)燃副司機晉升司機理論知識考試題及答案
- 2024北京東城初二(上)期末語文試卷及答案
- 2024設(shè)計院與職工勞動合同書樣本
- 2024年貴州公務(wù)員考試申論試題(B卷)
- 電工高級工練習(xí)題庫(附參考答案)
評論
0/150
提交評論