版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于MDK的軟件開發(fā)調(diào)試英蓓特培訓(xùn)中心2009.11主要內(nèi)容嵌入式軟件開發(fā)模型MDK開發(fā)環(huán)境介紹MDK窗口與對(duì)話框新建工程、編譯、調(diào)試、下載設(shè)備仿真實(shí)例調(diào)試命令/函數(shù)、分散加載文件基于硬件的開發(fā)調(diào)試程序固化嵌入式軟件開發(fā)模型內(nèi)容一嵌入式軟件開發(fā)模型宿主機(jī)開發(fā)模式PC、IDE開發(fā)環(huán)境、仿真器、評(píng)估板、串口線、網(wǎng)線在線仿真、Trace、LED、Printf……宿主機(jī)仿真器評(píng)估板IDE開發(fā)環(huán)境ULINK是Keil公司提供的USB-JTAG接口仿真器,目前最新的版本是2.0。它支持諸多芯片廠商的8051、ARM7、ARM9、Cortex-M3、InfineonC16x、InfineonXC16x、InfineonXC8xx、STMicroelectronics
PSD等多個(gè)系列的處理器。圖4-2ULINK2仿真器ULINK2的主要功能如下:(1)下載目標(biāo)程序;(2)檢查內(nèi)存和寄存器;(3)片上調(diào)試,整個(gè)程序的單步執(zhí)行;(4)插入多個(gè)斷點(diǎn);(5)運(yùn)行實(shí)時(shí)程序;(6)對(duì)Flash存儲(chǔ)器進(jìn)行編程。ULINK2的新特點(diǎn)包括:(1)標(biāo)準(zhǔn)WindowsUSB驅(qū)動(dòng)支持,也就是ULINK2即插即用;(2)支持基于ARMCortex-M3的串行線調(diào)試;(3)支持程序運(yùn)行期間的存儲(chǔ)器讀寫、終端仿真和串行調(diào)試輸出;(4)支持10/20針連接器。MDK開發(fā)環(huán)境介紹內(nèi)容二ARMRealViewMDK開發(fā)環(huán)境業(yè)內(nèi)領(lǐng)先的技術(shù)RealView編譯器KeilμVision集成開發(fā)環(huán)境MCU支持ARM7/9與Cortex-M3核的MCU’s啟動(dòng)代碼,Flash算法,etc設(shè)備Simulation可選硬件產(chǎn)品ULINK2USB-JTAG仿真器RTX實(shí)時(shí)內(nèi)核為小系統(tǒng)打造的高效RTOS第三方RTOS支持基于ARM微控制器的完整的軟件開發(fā)環(huán)境.易學(xué)易使用!MDK開發(fā)套件構(gòu)成EvaluationBoardsARM7,ARM9andCortex-M3basedMCUdevicesTargetDebugULINK2USB-JTAGAdapterwithReal-TimeAgentRealViewRTXSourceCodeTCP/IPSuiteFlashFileSystemUSBDeviceInterfaceCANInterfaceExamplesandTemplatesReal-TimeLibraryThirdPartyUtilitiesRealViewMicrocontrollerDevelopmentKitExamplesandTemplatesμVisionDeviceDatabase&IDERTXRTOSKernelRealViewC/C++CompilerμVisionDebugger&AnalysisToolsCompleteDeviceSimulationMDK對(duì)芯片的支持Outoftheboxsupport>250ARMMCU’s.See/ddCompleteSimulationoftarget.仿真整個(gè)目標(biāo)硬件.包含外部信號(hào)和I/O快速指令集仿真中斷過程仿真片內(nèi)外圍設(shè)備ADC,DAC,EBI,TimersUART,CAN,I2C….在沒有硬件或者對(duì)目標(biāo)MCU沒有更深的了解的情況下,仍然可以立即開始開發(fā)軟件.MDK開發(fā)套件的主要優(yōu)勢(shì)MDK集成業(yè)界最優(yōu)秀的RealView編譯工具M(jìn)DK提供啟動(dòng)代碼生成向?qū)А岣唛_發(fā)效率MDK提供強(qiáng)大的設(shè)備模擬器——縮短開發(fā)周期MDK提供高效的性能分析工具M(jìn)DK集成了Flash編程模塊MDK提供業(yè)界最好的uVision3IDE——易學(xué)易用MDK窗口與對(duì)話框內(nèi)容三MDK環(huán)境主界面-非調(diào)試狀態(tài)工具條編輯窗口配置窗口目標(biāo)選擇器菜單欄工程工作空間
輸出窗口
頁(yè)標(biāo)號(hào)MDK環(huán)境主界面-調(diào)試狀態(tài)ToolbarsWatch
WindowMemory
WindowLogicAnalyzerEditor
WorkspaceMenuBarProject
WorkspaceOutput
WindowToolboxPageTabsPeripheral
Dialog“File”菜單新建文件設(shè)備數(shù)據(jù)庫(kù)Licenses注冊(cè)管理Licenses注冊(cè)管理安裝MDK,獲得唯一CID號(hào);通過“”連接Internet;填寫個(gè)人信息與PSN號(hào)(正版MDK套件附帶);郵件收取Licenses,填寫到“LIC”輸入框,并添加。設(shè)備數(shù)據(jù)庫(kù)大量的芯片數(shù)據(jù)庫(kù),ARM7/ARM9/CortexM;>250ARMMCU’s,See/dd?!癊dit”菜單設(shè)置書簽查找“Edit”菜單設(shè)置書簽分組隱藏源文件“Edit”菜單設(shè)置書簽高級(jí)操作功能“Edit”菜單編輯配置菜單:代碼編輯器設(shè)置“Edit”菜單編輯配置菜單:顏色與字體設(shè)置“Edit”菜單編輯配置菜單:用戶關(guān)鍵字“Edit”菜單編輯配置菜單:快捷鍵“Edit”菜單編輯配置菜單:代碼模板“View”菜單顯示或隱藏狀態(tài)欄顯示或隱藏文件工具條顯示或隱藏編譯工具條顯示或隱藏調(diào)試工具條顯示或隱藏工程空間顯示或隱藏輸出窗口顯示或隱藏瀏覽窗口顯示或隱藏反匯編窗口顯示或隱藏Watch&CallStack窗口顯示或隱藏存儲(chǔ)器窗口顯示或隱藏代碼覆蓋窗口顯示或隱藏性能分析窗口顯示或隱藏邏輯分析儀窗口顯示或隱藏符號(hào)窗口顯示或隱藏CallStack顯示或隱藏Trace顯示窗口顯示或隱藏串行窗口顯示或隱藏SFR寄存器顯示或隱藏工具箱運(yùn)行時(shí)更新調(diào)試窗口顯示或隱藏源文件中的頭文件“Project”菜單創(chuàng)建一個(gè)新工程創(chuàng)建一個(gè)新工作區(qū)導(dǎo)入一個(gè)工程打開一個(gè)工程關(guān)閉當(dāng)前工程維護(hù)工程組件、配置環(huán)境及管理書從設(shè)備庫(kù)中選擇CPU改變目標(biāo)、組、文件的工具選項(xiàng)清除編譯生成的文件編譯已修改的文件批處理編譯編譯當(dāng)前文件停止編譯重新編譯所有的源文件打開最近使用的工程文件“Project”菜單-維護(hù)工程組件、配置工具環(huán)境及管理書:工程管理“Project”菜單-維護(hù)工程組件、配置工具環(huán)境及管理書:配置工具環(huán)境“Project”菜單-維護(hù)工程組件、配置工具環(huán)境及管理書:管理電子書“Project”菜單-改變目標(biāo)、組、文件的工具選項(xiàng):配置目標(biāo)板改變目標(biāo)、組、文件的工具選項(xiàng):目標(biāo)處理器“Project”菜單-改變目標(biāo)、組、文件的工具選項(xiàng):設(shè)置輸出文件“Project”菜單-改變目標(biāo)、組、文件的工具選項(xiàng):設(shè)置表單文件“Project”菜單-改變目標(biāo)、組、文件的工具選項(xiàng):設(shè)置用戶自定義程序“Project”菜單-改變目標(biāo)、組、文件的工具選項(xiàng):配置C編譯器“Project”菜單-改變目標(biāo)、組、文件的工具選項(xiàng):配置匯編器“Project”菜單-改變目標(biāo)、組、文件的工具選項(xiàng):配置鏈接器“Project”菜單-改變目標(biāo)、組、文件的工具選項(xiàng):配置調(diào)試信息“Project”菜單-改變目標(biāo)、組、文件的工具選項(xiàng):仿真器信息“Project”菜單-改變目標(biāo)、組、文件的工具選項(xiàng):配置Flash下載工具“Project”菜單-“Debug”菜單運(yùn)行到下一個(gè)活動(dòng)斷點(diǎn)單步運(yùn)行進(jìn)入一個(gè)函數(shù)單步運(yùn)行跳過一個(gè)函數(shù)從當(dāng)前函數(shù)跳出運(yùn)行到當(dāng)前行光標(biāo)處啟動(dòng)或停止μVision3調(diào)試模式停止運(yùn)行打開斷點(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í)間打開邏輯分析儀對(duì)話框打開存儲(chǔ)器映射對(duì)話框打開性能分析儀對(duì)話框打開在線匯編對(duì)話框編輯調(diào)試函數(shù)及調(diào)試初始化文件“Flash”菜單擦除Flash配置Flash工具下載程序映象到Flash中“Peripherals”菜單“Tools”菜單MDK工具欄常規(guī)狀態(tài)下工具欄:調(diào)試狀態(tài)下工具欄:工程管理窗口工程文件窗口寄存器窗口電子文檔窗口函數(shù)窗口函數(shù)模板源代碼窗口源代碼彩色顯示文本的選擇任意數(shù)量的文本在文本上拖曳一個(gè)單詞雙擊這個(gè)單詞一行文本移動(dòng)指針到這個(gè)行的左端直到它變成向右指示的箭頭并單擊它多行文本移動(dòng)指針到這個(gè)行的左端直到它變成向右指示的箭頭并拖拽它垂直文本按住Alt并拖拽源代碼和匯編混合顯示調(diào)試窗口及對(duì)話框Breakpoint
對(duì)話框,可在此對(duì)話框中定義程序執(zhí)行停止的條件;CodeCoverage窗口統(tǒng)計(jì)了程序中被執(zhí)行部分及未被執(zhí)行部分的執(zhí)行信息;DisassemblyWindow
可以反匯編方式來(lái)查看及測(cè)試程序;LogicAnalyzer
窗口可以以圖形的方式來(lái)顯示變量及外設(shè)寄存器值的變化;MemoryWindow
對(duì)話框可查看及修改內(nèi)存內(nèi)容;MemoryMap
指定程序代碼及數(shù)據(jù)變量所用的內(nèi)存空間;OutputWindow-Command
窗口可進(jìn)行命令輸入和信息輸出;ExecutionProfiler
窗口被集成在編輯和反匯編窗口中,用于時(shí)間及調(diào)用信息統(tǒng)計(jì);PerformanceAnalyzer
窗口可以顯示執(zhí)行時(shí)間的統(tǒng)計(jì)信息;SerialWindow
用串口通信,顯示串口通信內(nèi)容;SymbolWindow
用于顯示應(yīng)用程序中的調(diào)試符號(hào)信息;Toolbox
提供一個(gè)可配置的按鈕,此按鈕可用于調(diào)試命令及調(diào)試函數(shù)的執(zhí)行;WatchWindow
可以查看及修改程序變量,并列出當(dāng)前的函數(shù)調(diào)用關(guān)系。Breakpoint對(duì)話框Debug->BreakpointExecutionBreak(E):當(dāng)表達(dá)式是代碼地址時(shí),斷點(diǎn)被定義。AccessBreak(A):當(dāng)所指定的內(nèi)存訪問發(fā)生時(shí),此斷點(diǎn)有效。ConditionalBreak(C):當(dāng)表達(dá)式不能轉(zhuǎn)化為內(nèi)存地址時(shí),一個(gè)類型的斷點(diǎn)被定義。代碼統(tǒng)計(jì)對(duì)話框View->CodeCoverageWindows代碼統(tǒng)計(jì)對(duì)話框提供了程序中各個(gè)模塊及函數(shù)的執(zhí)行情況。在CurrentModule(當(dāng)前模塊)下拉列表框中列出了程序所有要模塊,每個(gè)模塊或函數(shù)的指令執(zhí)行百分比反匯編窗口View->DisassemblyWindow反匯編窗口可以將源程序和匯編程序一起顯示,也可以只顯示匯編程序。通過Debug->ViewTraceRecords可以查看前面指令的執(zhí)行記錄。邏輯分析儀Debug->LogicAnalyzerWindowμVision3邏輯分析儀可以將指定的變量或VTREGs值的變化以圖形方式表示出來(lái)。邏輯分析儀信號(hào)配置詳細(xì)設(shè)置使用限制內(nèi)存窗口View->MemoryWindow通過內(nèi)存窗口可以查看存儲(chǔ)器內(nèi)容。
內(nèi)存窗口最多可將四個(gè)不同的存儲(chǔ)域顯示在不同的頁(yè)中。
窗口中的右鍵菜單可以選擇輸出格式。在Address域內(nèi),可以輸入一個(gè)表達(dá)式,此表達(dá)式的值為所顯示內(nèi)容的地址。
在某個(gè)單元的值上雙擊可打開一個(gè)編輯框,它允許鍵入一個(gè)新的存儲(chǔ)值改變存儲(chǔ)內(nèi)容。
使能View–PeriodicWindowUpdate,可以在運(yùn)行目標(biāo)程序時(shí)更新此窗口中的值。內(nèi)存映射窗口Debug->MemoryMap內(nèi)存映射對(duì)話框可以用來(lái)設(shè)定那些地址空間用于存儲(chǔ)數(shù)據(jù)、那些地址空間用于存儲(chǔ)程序。被訪問的地址空間沒有被明確聲明時(shí)就必須進(jìn)行地址映射,如存儲(chǔ)映射I/O空間。在目標(biāo)程序運(yùn)行期間,保證讓程序不進(jìn)行非法的存儲(chǔ)區(qū)訪問。輸出窗口View->OutputWindow輸出窗口:編譯信息輸出、命令輸出、文件查找結(jié)果輸出。命令輸出可以是“調(diào)試命令”、“變量及寄存器”、“調(diào)試函數(shù)”。執(zhí)行剖析器Debug->ExecutionProfiling->Time/Calls執(zhí)行剖析器,它可以記錄執(zhí)行全部程序代碼所需的時(shí)間。它具有兩種顯示方式:Call(顯示執(zhí)行次數(shù))和Time(顯示執(zhí)行時(shí)間)。將鼠標(biāo)放在指定的入口處即可顯示有關(guān)執(zhí)行時(shí)間及次數(shù)的詳細(xì)信息。性能分析儀Debug->PerformanceAnalyzer性能分析儀用于記錄和顯示程序的執(zhí)行時(shí)間。μVisionARM仿真器記錄整個(gè)程序代碼的時(shí)間統(tǒng)計(jì)信息。串行窗口View->SerialWindow
printf--
intfputc(intch,FILE*f);
getchar--intfgetc(FILE*stream);符號(hào)窗口View->SymbolWindow顯示定義在當(dāng)前被載入的應(yīng)用程序中的公有符號(hào)、局部符號(hào)及行號(hào)信息。CPU特殊功能寄存器SFR符號(hào)也顯示在此窗口中。工具箱View->Toolbox
Toolbox中包含用戶可配置的按鈕。點(diǎn)擊工具箱上的按鈕可以執(zhí)行相關(guān)的調(diào)試命令(debugcommand)或調(diào)試函數(shù)(debugfunction)。工具箱按鈕可以在任何時(shí)間執(zhí)行,甚至是運(yùn)行測(cè)試程序時(shí)。參考實(shí)例:>DEFINEBUTTON"MyStatusInfo","MyStatus()">DEFINEBUTTON"Analog00..3V","analog0(3)">DEFINEBUTTON"StopAnalog0","signalkillanalog0"Watch窗口View->Watch&CallstackWindow
Locals頁(yè)列出了當(dāng)前函數(shù)中全部的局部變量。
Watch頁(yè)列出了用戶指定的程序變量。
CallStack頁(yè)顯示了當(dāng)前的函數(shù)調(diào)用嵌套關(guān)系。新建工程、編譯、調(diào)試、下載內(nèi)容四MDK開發(fā)的四個(gè)步驟Step1:選擇設(shè)備和指定硬件對(duì)象Step2:配置設(shè)備和創(chuàng)建應(yīng)用程序代碼μVision包含了工程管理器、編輯器和調(diào)試器網(wǎng)上龐大地設(shè)備數(shù)據(jù)庫(kù)&μVision簡(jiǎn)單化地芯片選擇與設(shè)置MDK開發(fā)的四個(gè)步驟通過ULINK進(jìn)行FlashDownload和TargetDebugging通過μVisionDebugger
和DeviceSimulator調(diào)試Step3:用μVision設(shè)備仿真器分析代碼Step4:Flash下載最后在目標(biāo)硬件上測(cè)試新建工程建立源碼存放路徑:C:\Keil\ARM\Examples\First;新建工程文件First.Uv2;Project->NewμVisionProject…設(shè)置CPU:NXP->LPC2129;添加啟動(dòng)代碼。新建工程添加管理源文件組織源碼結(jié)構(gòu);添加源文件:從C:\Keil\ARM\Examples\Measure拷貝源文件。建立軟仿真工程:Simulator為設(shè)備仿真工程。Startup啟動(dòng)代碼Source實(shí)驗(yàn)源文件System系統(tǒng)調(diào)用源文件IniFile初始化命令文件ReadMe說明文件添加管理源文件點(diǎn)擊工具欄“”管理工程,添加源碼。注:為了說明操作,直接拷貝附帶例程源碼。設(shè)置RTX庫(kù)設(shè)置ROM設(shè)置RAM設(shè)置使用微庫(kù)創(chuàng)建HEX文件設(shè)置目標(biāo)文件路徑設(shè)置頭文件路徑配置工程點(diǎn)擊工具欄“”打開工程配置窗口。設(shè)置分散加載設(shè)置初始化文件配置啟動(dòng)代碼圖形化配置圖形化對(duì)話框,直觀方便免除手寫幾百行匯編代碼快速生成啟動(dòng)代碼編譯鏈接工程點(diǎn)擊工具欄“”編譯鏈接工程Buildtarget'Simulator'assemblingStartup.s...compilingMeasure.c...compilingMcommand.c...compilingGetline.c...compilingRetarget.c...compilingSerial.c...linking...ProgramSize:Code=9402RO-data=958RW-data=48ZI-data=1272"First.axf"-0Error(s),0Warning(s).Debug調(diào)試點(diǎn)擊工具欄“”下載程序到目標(biāo)板進(jìn)入調(diào)試狀態(tài)單步、查看各個(gè)窗口單步、斷點(diǎn)、全速運(yùn)行:查看Debug狀態(tài)下各個(gè)窗口:設(shè)置編程工具Flash下載Flash->ConfigureFlashTools…:Flash芯片型號(hào)設(shè)備仿真實(shí)例內(nèi)容五MDK的設(shè)備仿真目標(biāo)設(shè)備的所有組件都可仿真.代碼可在整個(gè)設(shè)備上運(yùn)行完全的目標(biāo)硬件仿真完整的目標(biāo)高效指令集仿真中斷仿真片內(nèi)外圍設(shè)備ADC,DAC,EBI,TimersUART,CAN,I2C….包含外部信號(hào)和I/O包含外部信號(hào)和I/O充足的仿真信息包含在設(shè)備數(shù)據(jù)庫(kù)里Supports>250ARMbasedMCU’sIncludedinRealViewMDK/uvision/db_sim.aspMeasure程序介紹默認(rèn)路徑:C:\Keil\ARM\Examples\Measure;uVisionSimulatorforLPC2129;該例程描述了如何使用uVision的信號(hào)函數(shù)功能來(lái)仿真LPC21XX一個(gè)模擬量的輸入。編譯、鏈接、調(diào)試打開Measure工程,編譯、鏈接程序,點(diǎn)擊Debug進(jìn)入調(diào)試狀態(tài)。編譯、鏈接Debug虛擬串口打開虛擬串口2,全速運(yùn)行程序查看結(jié)果;Retarget庫(kù)文件//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ā)工具集帶有一個(gè)預(yù)定義的retarget庫(kù)文件,它是許多例程的一部分。retarget文件修改了底層的I/O程序,并禁止了semi-hostingSWI中斷的使用。查看程序代碼代碼塊彩色顯示顯示混合的源代碼與反匯編代碼改變顯示模式并且使用contextmenu中的其他命令(在Disassembly窗口中點(diǎn)擊右鍵)調(diào)用棧View->Watch&CallstackWindowView->CallstackUnwinder顯示函數(shù)的嵌套情況雙擊此頁(yè)中的某行,將會(huì)在工作區(qū)中顯示調(diào)用所選擇函數(shù)的源代碼。顯示函數(shù)的嵌套情況顯示函數(shù)參數(shù)的值或者地址雙擊此頁(yè)中的某行,將會(huì)在工作區(qū)中顯示調(diào)用所選擇函數(shù)的源代碼。通過設(shè)置Trace功能,可以跟蹤代碼跟蹤代碼要求設(shè)置Enable/DisableTraceRecording可以查看到在到達(dá)斷點(diǎn)前CPU所執(zhí)行的指令在工程工作空間的Regs頁(yè)面會(huì)顯示執(zhí)行所選擇的指令在執(zhí)行過程中相應(yīng)的CPU寄存器內(nèi)容。雙擊一行代碼,在代碼的左面出現(xiàn)一個(gè)紅點(diǎn),表示斷電設(shè)置成功斷點(diǎn)使用工具欄的斷點(diǎn)相關(guān)按鈕:調(diào)試狀態(tài)下:Debug->Breakpoint…,可以設(shè)置高級(jí)斷點(diǎn)在不具備trace功能的硬件環(huán)境下,不具備條件觸發(fā)中斷的能力條件觸發(fā)中斷只能在軟件仿真的情況下實(shí)現(xiàn)當(dāng)對(duì)變量current.time.sec進(jìn)行寫操作且值恒等于3的產(chǎn)生斷點(diǎn)查看變量View->WatchWindow可以隨時(shí)查看變量、結(jié)構(gòu)體以及數(shù)組的內(nèi)容。在空白行雙擊鼠標(biāo)左鍵或者按F2鍵即可添加變量,通過同樣的方式也可以修改變量的值。在源文件編輯窗口選擇需要添加的變量名,單擊鼠標(biāo)右鍵,在彈出的局部菜單中選擇AddtoWatchWindow選項(xiàng)將其加入。查看片上外設(shè)μVision里提供了片上外設(shè)對(duì)話框:I/O端口,中斷,定時(shí)器,A/D轉(zhuǎn)換器,串口和一些芯片特有的外設(shè)。對(duì)話框會(huì)顯示當(dāng)前外設(shè)的狀態(tài),同時(shí)也可以直接在對(duì)話框中改變相應(yīng)的輸入值。性能分析儀&代碼覆蓋統(tǒng)計(jì)Debug->PerformanceAnalyzeView->CodeCoverageWindows信號(hào)函數(shù)信號(hào)函數(shù)可以在后臺(tái)實(shí)現(xiàn)信號(hào)輸入、脈沖輸入等重復(fù)操作。信號(hào)函數(shù)可用于模擬和測(cè)試串行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*/}}}初始化文件信號(hào)函數(shù)ToolboxView->Toolbox;>DEFINEBUTTON"MyStatusInfo","MyStatus()">DEFINEBUTTON"Analog00..3V","analog0(3)">DEFINEBUTTON"StopAnalog0","signalkillanalog0"Toolbox中包含用戶可配置的按鈕。點(diǎn)擊工具箱上的按鈕可以執(zhí)行相關(guān)的調(diào)試命令或調(diào)試函數(shù)。工具箱按鈕可以在任何時(shí)間執(zhí)行,甚至是運(yùn)行測(cè)試程序時(shí)。添加按鈕語(yǔ)法:刪除按鈕語(yǔ)法:>DEFINEBUTTON"button_label","command“>KillButtonnum邏輯分析儀Debug->LogicAnalyzerWindow可以是變量或VTREGs值綜合全速運(yùn)行程序,串口輸入“d”,在終端顯示ADC采樣值;點(diǎn)擊Toolbox的“Analog00..3”按鈕,輸出外部信號(hào);查看各個(gè)調(diào)試窗口狀態(tài)。調(diào)試命令/函數(shù)、分散加載文件內(nèi)容六調(diào)試命令μVision3支持大量命令,可以通過OutputWindow–CommandLine鍵入命令在命令入口處,語(yǔ)法生成器會(huì)顯示命令,選項(xiàng)和參數(shù)。僅需鍵入命令名單詞的首字符。類別描述斷點(diǎn)命令允許創(chuàng)建和刪除斷點(diǎn)。當(dāng)遇到一個(gè)特定指令時(shí)可以使用斷點(diǎn)停止程序執(zhí)行或執(zhí)行μVision3命令或用戶函數(shù)。普通命令可以執(zhí)行一些混合的調(diào)試操作。存儲(chǔ)器命令顯示和改變存儲(chǔ)器內(nèi)容程序命令執(zhí)行目標(biāo)程序并分析其性能調(diào)試命令-斷點(diǎn)命令命令描述BreakAccess添加一個(gè)指定長(zhǎng)度(地址域)的訪問斷點(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)。BreakSet添加一個(gè)斷點(diǎn)表達(dá)式到斷點(diǎn)列表。調(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)試窗口生成日志文件,查詢?nèi)罩緺顟B(tài)及關(guān)閉日志文件。MODE為PC機(jī)的COM口設(shè)置波特率,奇偶位和停止位。RESET重啟μVision3,重設(shè)存儲(chǔ)映射分配及重置預(yù)定義變量。SAVE在IntelHEX386文件中保存一個(gè)存儲(chǔ)域。SCOPE顯示目標(biāo)程序的模塊和函數(shù)的地址分配。SET為預(yù)定義變量設(shè)備字符串值。SIGNAL顯示信號(hào)函數(shù)的狀態(tài)和移除有效信號(hào)函數(shù)。SLOG為串行窗口生成日志文件,查詢?nèi)罩緺顟B(tài)及關(guān)閉日志文件。調(diào)試命令-存儲(chǔ)器命令命令描述ASM匯編內(nèi)嵌代碼。DEFINE定義可能在μVision3中使用的符號(hào)。DISPLAY顯示存儲(chǔ)器的內(nèi)容。ENTER把值鍵入到指定的存儲(chǔ)域。EVALuate求表達(dá)式的值并輸出結(jié)果。MAP為存儲(chǔ)域指定訪問參數(shù)。Unassemble反匯編程序存儲(chǔ)域。WatchSet向觀測(cè)窗口中添加一個(gè)觀測(cè)變量。WatchKill刪除觀測(cè)窗口中的所有觀測(cè)變量調(diào)試命令-程序命令命令描述COVERAGE顯示代碼統(tǒng)計(jì)信息Go啟動(dòng)程序執(zhí)行LogicAnalyze初始化邏輯分析儀PerformanceAnalyze初始化內(nèi)置的性能分析儀。Pstep執(zhí)行指令但不跳入過程或函數(shù)。Ostep跳出當(dāng)前函數(shù)。Tstep跳過指令并跳入函數(shù)。調(diào)試函數(shù)μVision3中有一個(gè)內(nèi)建的函數(shù)編輯器,通過Debug->FunctionEditor來(lái)打開。打開函數(shù)編輯器時(shí)需要輸入一個(gè)文件名或者打開一個(gè)由OptionsforTarget–>Debug–>InitializationFile指定的文件。該編輯器的用法與μVision3編輯器相同,允許用戶輸入和編譯調(diào)試函數(shù)。調(diào)試函數(shù)μVision3提高了一些可被調(diào)用的預(yù)定義調(diào)試函數(shù),它們不能被重定義或者被刪除。預(yù)定義函數(shù)用來(lái)幫助開發(fā)者定義用戶和信號(hào)函數(shù)。名字參數(shù)描述voidexec執(zhí)行調(diào)試命令doublegetdbl請(qǐng)求用戶輸入一個(gè)雙精度浮點(diǎn)數(shù)據(jù)intgetint請(qǐng)求用戶輸入一個(gè)整型數(shù)據(jù)longgetlong請(qǐng)求用戶輸入一個(gè)長(zhǎng)整型數(shù)據(jù)voidmemset以常量填充內(nèi)存voidprintf輸出函數(shù)intrand返回介于0到32767之間的隨即數(shù)voidrwatch延遲執(zhí)行信號(hào)函數(shù)直到讀取地址成功更多函數(shù)……裝載域BINROMRAM文件映像域裝載域描述運(yùn)行前輸出段和域在ROM/RAM里的分布狀態(tài);運(yùn)行域描述了運(yùn)行時(shí)輸出段和域在ROM/RAM里的分布狀態(tài)。CODEDATA運(yùn)行域ROsectionRWsectionZIsectionSTACKImage$$RO$$BaseImage$$RO$$LimitImage$$RW$$BaseImage$$ZI$$BaseImage$$RW$$LimitImage$$ZI$$Limit運(yùn)行時(shí)的數(shù)據(jù)搬移RW段搬移&ZI段清零裝載域BINROMRAMCODEDATA運(yùn)行域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 F2Scatterfile分散加載文件分散加載(Scatlerloading),即工程里的.scf文件;在scatterfile中可以為每一個(gè)代碼或數(shù)據(jù)區(qū)執(zhí)行時(shí)指定不同的存儲(chǔ)區(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()的一部分基于硬件的開發(fā)調(diào)試內(nèi)容七環(huán)境工具的準(zhǔn)備硬件:EduKit-IV+Mini2410平臺(tái)一套;仿真器:ARMRealViewMDK套件一套;其他:電腦一臺(tái)(安裝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程序?yàn)槔?。硬件原理隨著數(shù)字技術(shù),特別是計(jì)算機(jī)技術(shù)的飛速發(fā)展與普及,在現(xiàn)代控制、通信及檢測(cè)領(lǐng)域中,對(duì)信號(hào)的處理廣泛采用了數(shù)字計(jì)算機(jī)技術(shù)。由于系統(tǒng)的實(shí)際處理對(duì)象往往都是一些模擬量(如溫度、壓力、位移、圖像等),要使計(jì)算機(jī)或數(shù)字儀表能識(shí)別和處理這些信號(hào),必須首先將這些模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),這就必須用到A/D轉(zhuǎn)換器。參考資料:基于S3C2410嵌入式MDK開發(fā)實(shí)驗(yàn)與實(shí)踐.pdf0_EDUKIT-IV.pdf1_Mini2410-IV.pdfS3C2410ADC控制器分析S3C2410處理器內(nèi)部集成了采用近似比較算法(計(jì)數(shù)式)的8路10位ADC,集成零比較器,內(nèi)部產(chǎn)生比較時(shí)鐘信號(hào);支持軟件使能休眠模式,以減少電源損耗。其中AIN5和AIN7可作為觸摸屏控制。主要特性:精度10bit、微分線性誤差±1.5LSB、積分線性誤差±2.0LSB、最大轉(zhuǎn)換速率500KSPS、輸入電壓0~3.3V。主要寄存器寄存器地址R/W功能描述復(fù)位值A(chǔ)DCCON0x58000000R/WADC控制寄存器0x3FC4ADCDAT00x5800000CRADC數(shù)據(jù)寄存器-//..\Common\Inc\2410addr.h//ADC#definerADCCON(*(volatileunsigned*)0x58000000)#definerADCDAT0(*(volatileunsi
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 航空物流居間協(xié)議簡(jiǎn)本
- 游戲開發(fā)居間合同委托書
- 美容院改造拆除服務(wù)協(xié)議
- 房地產(chǎn)評(píng)估居間合同
- 民航機(jī)場(chǎng)監(jiān)理居間合同
- 湖北醫(yī)藥學(xué)院藥護(hù)學(xué)院《秘書實(shí)務(wù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度股權(quán)投資與收益分成合同3篇
- 2025年托管中心教師科學(xué)探索聘用合同書3篇
- 湖北2025年湖北長(zhǎng)江三峽通航管理局事業(yè)編制人員招聘筆試歷年參考題庫(kù)附帶答案詳解
- 2025年度社區(qū)幼兒園場(chǎng)地租賃及管理服務(wù)合同3篇
- 2024年江蘇省蘇州市中考數(shù)學(xué)試卷含答案
- 2024年世界職業(yè)院校技能大賽高職組“市政管線(道)數(shù)字化施工組”賽項(xiàng)考試題庫(kù)
- 介紹蝴蝶蘭課件
- 大學(xué)計(jì)算機(jī)基礎(chǔ)(第2版) 課件 第1章 計(jì)算機(jī)概述
- 數(shù)字化年終述職報(bào)告
- 《阻燃材料與技術(shù)》課件 第5講 阻燃塑料材料
- 2025年蛇年年度營(yíng)銷日歷營(yíng)銷建議【2025營(yíng)銷日歷】
- 2024年職工普法教育宣講培訓(xùn)課件
- 安保服務(wù)評(píng)分標(biāo)準(zhǔn)
- T-SDLPA 0001-2024 研究型病房建設(shè)和配置標(biāo)準(zhǔn)
- (人教PEP2024版)英語(yǔ)一年級(jí)上冊(cè)Unit 1 教學(xué)課件(新教材)
評(píng)論
0/150
提交評(píng)論