1、Embedded System DevelopmentEmbedded System Development嵌入式系统与应用嵌入式系统与应用 第第4 4章章 Keil MDK-ARMKeil MDK-ARM集成开发环境集成开发环境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集成开发环境集成开发环境F3.4 3.4 新建新建ThumbThumb汇编程序项目汇编程序项目F3.5 Thumb3.5 Thumb汇编程序编译与调试汇编程
2、序编译与调试3.1 Keil MDK-ARM3.1 Keil MDK-ARM简介简介FKeil MDK-ARMKeil MDK-ARM (Microcontroller Development KitMicrocontroller Development Kit)开开发工具源自德国发工具源自德国Keil()Keil(),被全球超过,被全球超过1010万的万的嵌入式开发工程师使用。嵌入式开发工程师使用。F支持支持 1200 1200 多种基于多种基于 ARM CortexARM Cortex-M-M 系列、系列、ARM7ARM7、ARM9ARM9 和和 Cortex-R4 Cortex-R4 处
3、理器的设备。处理器的设备。F它包含众多示例、项目模板和中间件库,具有广泛的它包含众多示例、项目模板和中间件库,具有广泛的 TCP/IP TCP/IP 软件堆栈、软件堆栈、Flash Flash 文件系统、文件系统、USB USB 主机和设备堆主机和设备堆栈、栈、CAN CAN 访问以及舒适的图形用户界面解决方案。访问以及舒适的图形用户界面解决方案。F易于使用的易于使用的 IDE IDE 和带有高级分析功能的全功能调试器可和带有高级分析功能的全功能调试器可帮助开发人员快速启动项目,并集中精力实现其应用程序帮助开发人员快速启动项目,并集中精力实现其应用程序的差异功能。的差异功能。FMDK-ARMM
4、DK-ARM四种版本:四种版本:MDK-LiteMDK-Lite、基础版、标准版和专业版、基础版、标准版和专业版。都提供。都提供C/C+C/C+开发环境,专业版包括丰富的中间件库。开发环境,专业版包括丰富的中间件库。Keil MDK-ARMKeil MDK-ARM简介简介FPCPC、IDEIDE开发环境、仿真器、开发板开发环境、仿真器、开发板宿主机仿真器开发板IDE开发环境逻辑分析仪逻辑分析仪示波器示波器Keil MDK-ARMKeil MDK-ARMKeil MDK-ARMKeil MDK-ARM简介简介F支持支持 Cortex-MCortex-M、Cortex-R4Cortex-R4、AR
5、M7 ARM7 和和 ARM9 ARM9 设备设备F行业领先的行业领先的 ARM ARM、C/C+C/C+编译工具链编译工具链F采用采用VisionVision4 4 IDEIDE、调试器和模拟环境、调试器和模拟环境FKeil RTXKeil RTX 占用空间小的实时操作系统(具有源代码)占用空间小的实时操作系统(具有源代码)FTCP/IP TCP/IP 网络套件提供多个协议和各种应用程序网络套件提供多个协议和各种应用程序FUSB USB 设备和设备和 USB USB 主机堆栈配备标准驱动程序类主机堆栈配备标准驱动程序类FULINKULINKpropro 支持对正在运行的应用程序进行即时分析并
6、记支持对正在运行的应用程序进行即时分析并记录执行的每条录执行的每条 Cortex-M Cortex-M 指令指令Keil MDK-ARMKeil MDK-ARM简介简介F有关程序执行的完整代码覆盖率信息有关程序执行的完整代码覆盖率信息F执行性能分析器和性能分析器支持程序优化执行性能分析器和性能分析器支持程序优化F大量示例项目可帮您快速熟悉大量示例项目可帮您快速熟悉 MDK-ARM MDK-ARM 强大的内置功能强大的内置功能F符合符合CMSISCMSIS,CortexCortex微控制器软件接口标准微控制器软件接口标准F在在ARMARM公司的网站公司的网站(http:/http:/)注册、下载
7、最新注册、下载最新的的Keil MDK-ARMKeil MDK-ARM开发工具软件,开发工具软件,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集成开发环境集成开发环境F3.1 Keil MDK-ARM3.1 Keil MDK-ARM简介简介F3.2 Kei
8、l MDK-ARM3.2 Keil MDK-ARM安装安装F3.3 Keil MDK-ARM3.3 Keil MDK-ARM集成开发环境集成开发环境F3.4 3.4 新建新建ThumbThumb汇编程序项目汇编程序项目F3.5 Thumb3.5 Thumb汇编程序编译与调试汇编程序编译与调试3.2 Keil MDK-ARM3.2 Keil MDK-ARM安装安装Keil MDK-ARMKeil MDK-ARM安装安装F软件安装后,会自动打开软件安装后,会自动打开Pack InstallerPack Installer包安装向导,选包安装向导,选择相应芯片的驱动包进行在线安装、或下载包离线安装。
9、择相应芯片的驱动包进行在线安装、或下载包离线安装。F包含了软件包、例子、接口驱动、板子驱动等。包含了软件包、例子、接口驱动、板子驱动等。Keil MDK-ARMKeil MDK-ARM安装安装F在线安装在线安装packpack或或exampleexample:先从右侧:先从右侧DeviceDevice栏筛选某芯片栏筛选某芯片型号,左边型号,左边Packs(Packs(或或Example)Example)栏就会出现相应的栏就会出现相应的pack(pack(或或example)example),再点击,再点击installinstall等待即可。等待即可。F离线安装包:在离线安装包:在Summar
10、ySummary栏可跳转到对应页面下载安装包栏可跳转到对应页面下载安装包DFPDFP文件。文件。下载后的下载后的DFPDFP文件,可直接安装到开发环境内文件,可直接安装到开发环境内。Keil MDK-ARMKeil MDK-ARM安装安装下载后的下载后的DFPDFP文件,可直文件,可直接安装到开发环境内。接安装到开发环境内。Keil MDK-ARMKeil MDK-ARM安装安装F本课程后续学习,根据你的开发板选择下载安装包:本课程后续学习,根据你的开发板选择下载安装包:FCMSIS(Cortex Microcontroller Software Interface CMSIS(Cortex
11、Microcontroller Software Interface Standard)Standard):ARM.CMSIS.4.2.0.packARM.CMSIS.4.2.0.packF芯片型号选择包如:芯片型号选择包如:STMicroelectronics STM32F1 STMicroelectronics STM32F1 Series Device Support,Drivers and ExamplesSeries Device Support,Drivers and Examples:Keil.STM32F1xx_DFP.1.1.0.packKeil.STM32F1xx_DFP.
12、1.1.0.packF在安装后目录下可找到帮助文件:在安装后目录下可找到帮助文件:uv4.chmuv4.chm第第3 3章章 Keil MDK-ARMKeil MDK-ARM集成开发环境集成开发环境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集成开发环境集成开发环境F3.4 3.4 新建新建ThumbThumb汇编程序项目汇编程序项目F3.5 Thumb3.5 Thumb汇编程序编译与调试汇编程序编译与调试3.3 Keil M
13、DK-ARM3.3 Keil MDK-ARM集成开发环境集成开发环境F安装后在桌面快捷图标,或开始菜单启动即可。安装后在桌面快捷图标,或开始菜单启动即可。ToolbarsWatchWindowMemoryWindowLogic AnalyzerEditorWorkspaceMenu BarProjectWorkspaceOutputWindowToolboxPage TabsPeripheralDialog1 1、FileFile 菜单菜单芯片数据库LicensesLicenses注册管理注册管理新建、保存源程序文件新建、保存源程序文件2 2、EditEdit 菜单菜单 EditEdit菜单菜
14、单-Configuration-Configuration编辑器设置菜单:编辑器设置菜单:代码编辑器设置颜色与字体设置用户关键字快捷键代码模板3 3、ViewView 菜单菜单显示或隐藏状态栏显示或隐藏文件工具条显示或隐藏编译工具条显示或隐藏调试工具条显示或隐藏工程空间显示或隐藏输出窗口显示或隐藏浏览窗口显示或隐藏反汇编窗口显示或隐藏Watch&Call Stack 窗口显示或隐藏存储器窗口显示或隐藏代码覆盖窗口显示或隐藏性能分析窗口显示或隐藏逻辑分析仪窗口显示或隐藏符号窗口显示或隐藏Call Stack显示或隐藏Trace显示窗口显示或隐藏串行窗口显示或隐藏SFR寄存器显示或隐藏工具箱运行时
15、更新调试窗口显示或隐藏源文件中的头文件4 4、ProjectProject菜单菜单创建一个新项目创建一个新工作区导入一个项目打开一个项目关闭当前项目维护工程组件、配置环境及管理书从设备库中选择CPU改变目标、组、文件的工具选项清除编译生成的文件编译已修改的文件批处理编译编译当前文件停止编译重新编译所有的源文件打开最近使用的项目文件5 5、FlashFlash 菜单菜单擦除Flash配置Flash工具下载程序映象到Flash中6 6、DebugDebug 菜单菜单运行到下一个活动断点单步运行进入一个函数单步运行跳过一个函数从当前函数跳出运行到当前行光标处启动或停止Vision3调试模式停止运行打
16、开断点对话框在当前行设置断点Enable/disable当前行的断点使程序中的所有断点无效去除程序中的所有断点显示下一条要执行的指令DEBUG设置使能Trace跟踪查看Trace结果记录代码执行次数或时间打开逻辑分析仪对话框打开存储器映射对话框打开性能分析仪对话框打开在线汇编对话框编辑调试函数及调试初始化文件其他菜单其他菜单F7 7、PeripheralsPeripherals 外设菜单外设菜单F8 8、ToolsTools 菜单菜单F9 9、SVCS SVCS 菜单菜单F1010、WindowsWindows菜单菜单F1111、Help Help 菜单菜单第第3 3章章 Keil MDK-A
17、RMKeil MDK-ARM集成开发环境集成开发环境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集成开发环境集成开发环境F3.4 3.4 新建新建ThumbThumb汇编程序项目汇编程序项目F3.5 Thumb3.5 Thumb汇编程序编译与调试汇编程序编译与调试3.4 3.4 新建新建ThumbThumb汇编程序项目汇编程序项目F第一步:打开第一步:打开Vision5Vision5集成开发环境,在集成开发环境,在Projec
18、tProject菜单中菜单中新建项目,在弹出框中选择项目存放路径、填写项目名称新建项目,在弹出框中选择项目存放路径、填写项目名称新建新建ThumbThumb汇编程序项目汇编程序项目F第二步:进入第二步:进入Select Device for Target Select Device for Target 选项卡,选择选项卡,选择CPUCPU芯片型号,如芯片型号,如ARMCM4 ARMCM4:新建新建ThumbThumb汇编程序项目汇编程序项目F第三步:弹出第三步:弹出Manage Run-Time EnvironmentManage Run-Time Environment选项卡,管选项卡,管
19、理运行时环境,选择已安装的软件包(软件组件)。理运行时环境,选择已安装的软件包(软件组件)。F设置汇编程序时直接点击设置汇编程序时直接点击OKOK跳过即可完成项目设置。跳过即可完成项目设置。第四步:第四步:Options for Target-1Options for Target-1F第四步:第四步:Options for TargetOptions for Target,目标板硬件和开发环境配置。,目标板硬件和开发环境配置。FDebug Debug 设置调试器,选择设置调试器,选择Use SimulatorUse Simulator使用模拟器。使用模拟器。Options for Targe
20、t-2Options for Target-2F其余选项卡默认即可其余选项卡默认即可Device Device 选择芯片型号选择芯片型号TargetTarget 配置硬件配置硬件Output Output 设置输出文件设置输出文件Listing Listing 设置表单文件设置表单文件User User 设置用户自定义程序设置用户自定义程序C/C+C/C+设置设置C/C+C/C+编译器编译器Asm Asm 设置汇编器设置汇编器LInker LInker 设置链接器设置链接器UtilitesUtilites设置设置FlashFlash下载工具下载工具设置RTX库设置ROM设置RAM设置使用微库创
21、建HEX文件设置目标文件路径设置头文件路径设置分散加载第五步:编写简单的第五步:编写简单的Thumb Thumb 汇编程序汇编程序FFileFile文件菜单,新建源程序文件,然后另存为文件菜单,新建源程序文件,然后另存为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 _Ve
22、ctors EXPORT Reset_Handler EXPORT Reset_Handler_Vectors _Vectors Reset_Handler PROCReset_Handler PROC ;PROC/ENDP ;PROC/ENDP函数起始函数起始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 ;此处函数起始标记可省此处函数起始标
23、记可省 END END使用使用“;”进行注释进行注释标号顶格写实际代码段声明文件结束第六步第六步 汇编程序源文件添加到项目中汇编程序源文件添加到项目中F第六步第六步 汇编程序源文件添加到项目中汇编程序源文件添加到项目中新建新建ThumbThumb汇编程序项目汇编程序项目F经过上述六步,即可进行程序的编译、调试、模拟运行等经过上述六步,即可进行程序的编译、调试、模拟运行等。项目文件窗口第四章第四章 Keil MDK-ARMKeil MDK-ARM集成开发环境集成开发环境F4.1 Keil MDK-ARM4.1 Keil MDK-ARM简介简介F4.2 Keil MDK-ARM4.2 Keil M
24、DK-ARM安装安装F4.3 Keil MDK-ARM4.3 Keil MDK-ARM集成开发环境集成开发环境F4.4 4.4 新建新建ThumbThumb汇编程序项目汇编程序项目F4.5 Thumb4.5 Thumb汇编程序编译与调试汇编程序编译与调试4.5 Thumb4.5 Thumb汇编程序编译与调试汇编程序编译与调试F常用工具栏常用工具栏3 3个编译按钮个编译按钮F第一个按钮:第一个按钮:Translate Translate 翻译当前源文件,检查语法错误翻译当前源文件,检查语法错误,并不去链接库文件,也不生成可执行文件。,并不去链接库文件,也不生成可执行文件。F第二个按钮:第二个按钮
25、:Build Build 编译文件,它包含语法检查,链接动编译文件,它包含语法检查,链接动态库文件,生成可执行文件。态库文件,生成可执行文件。F第三个按钮:第三个按钮:Rebuild Rebuild 重新编译整个工程,跟重新编译整个工程,跟 Build Build 这这个按钮实现的功能是一样的,耗时大。个按钮实现的功能是一样的,耗时大。ThumbThumb汇编程序编译与调试汇编程序编译与调试F启动调试,进入调试状态启动调试,进入调试状态反汇编窗口反汇编窗口汇编程序窗口汇编程序窗口寄存器窗口寄存器窗口F调试状态下工具栏:工程管理窗口工程管理窗口工程文件窗口寄存器窗口电子文档窗口函数窗口函数模板源
26、代码窗口源代码窗口F源代码彩色显示源代码彩色显示n文本的选择任意数量的文本在文本上拖曳一个单词双击这个单词一行文本移动指针到这个行的左端直到它变成向右指示的箭头并单击它多行文本移动指针到这个行的左端直到它变成向右指示的箭头并拖拽它垂直文本按住Alt并拖拽n源代码和汇编混合显示调试窗口及对话框调试窗口及对话框FBreakpointBreakpoint 对话框,可在此对话框中定义程序执行停止的条件;对话框,可在此对话框中定义程序执行停止的条件;FCode Coverage Code Coverage 窗口统计了程序中被执行部分及未被执行部分的执行信窗口统计了程序中被执行部分及未被执行部分的执行信息
27、;息;FDisassembly WindowDisassembly Window 可以反汇编方式来查看及测试程序;可以反汇编方式来查看及测试程序;FLogic AnalyzerLogic Analyzer 窗口可以以图形的方式来显示变量及外设寄存器值的窗口可以以图形的方式来显示变量及外设寄存器值的变化;变化;FMemory WindowMemory Window 对话框可查看及修改内存内容;对话框可查看及修改内存内容;FMemory MapMemory Map 指定程序代码及数据变量所用的内存空间;指定程序代码及数据变量所用的内存空间;FOutput Window-CommandOutput
28、Window-Command 窗口可进行命令输入和信息输出;窗口可进行命令输入和信息输出;FExecution ProfilerExecution Profiler 窗口被集成在编辑和反汇编窗口中,用于时间及窗口被集成在编辑和反汇编窗口中,用于时间及调用信息统计;调用信息统计;FPerformance AnalyzerPerformance Analyzer 窗口可以显示执行时间的统计信息;窗口可以显示执行时间的统计信息;FSerial WindowSerial Window 用串口通信,显示串口通信内容;用串口通信,显示串口通信内容;FSymbol WindowSymbol Window 用
29、于显示应用程序中的调试符号信息;用于显示应用程序中的调试符号信息;FToolboxToolbox 提供一个可配置的按钮,此按钮可用于调试命令及调试函数的提供一个可配置的按钮,此按钮可用于调试命令及调试函数的执行;执行;FWatch WindowWatch Window 可以查看及修改程序变量,并列出当前的函数调用关系可以查看及修改程序变量,并列出当前的函数调用关系。BreakpointBreakpoint对话框对话框FDebug-BreakpointDebug-Breakpoint Execution Break(E):当表达式是代码地址时,断点被定义。Access Break(A):当所指定
30、的内存访问发生时,此断点有效。Conditional Break(C):当表达式不能转化为内存地址时,一个类型的断点被定义。代码统计对话框代码统计对话框FView-Code Coverage WindowsView-Code Coverage Windows 代码统计对话框提供了程序中各个模块及函数的执行情况。在Current Module(当前模块)下拉列表框中列出了程序所有要模块,每个模块或函数的指令执行百分比反汇编窗口反汇编窗口FView-Disassembly WindowView-Disassembly Window 反汇编窗口可以将源程序和汇编程序一起显示,也可以只显示汇编程序。通
31、过Debug-View Trace Records可以查看前面指令的执行记录。逻辑分析仪逻辑分析仪FDebug-Logic Analyzer WindowDebug-Logic Analyzer Window Vision3逻辑分析仪可以将指定的变量或VTREGs值的变化以图形方式表示出来。逻辑分析仪信号配置详细设置使用限制内存窗口内存窗口FView-Memory WindowView-Memory Window 通过内存窗口可以查看存储器内容。内存窗口最多可将四个不同的存储域显示在不同的页中。窗口中的右键菜单可以选择输出格式。在Address域内,可以输入一个表达式,此表达式的值为所显示内容
32、的地址。在某个单元的值上双击可打开一个编辑框,它允许键入一个新的存储值改变存储内容。使能View Periodic Window Update,可以在运行目标程序时更新此窗口中的值。内存映射窗口内存映射窗口FDebug-Memory MapDebug-Memory Map 内存映射对话框可以用来设定那些地址空间用于存储数据、那些地址空间用于存储程序。被访问的地址空间没有被明确声明时就必须进行地址映射,如存储映射I/O空间。在目标程序运行期间,保证让程序不进行非法的存储区访问。输出窗口输出窗口FView-Output WindowView-Output Window 输出窗口:编译信息输出、命令
33、输出、文件查找结果输出。命令输出可以是“调试命令”、“变量及寄存器”、“调试函数”。执行剖析器执行剖析器FDebug-Execution Profiling-Time/CallsDebug-Execution Profiling-Time/Calls 执行剖析器,它可以记录执行全部程序代码所需的时间。它具有两种显示方式:Call(显示执行次数)和Time(显示执行时间)。将鼠标放在指定的入口处即可显示有关执行时间及次数的详细信息。性能分析仪性能分析仪FDebug-Performance AnalyzerDebug-Performance Analyzer 性能分析仪用于记录和显示程序的执行时间
34、。Vision ARM 仿真器记录整个程序代码的时间统计信息。串行窗口串行窗口FView-Serial WindowView-Serial Window printf -int fputc(int ch,FILE*f);getchar -int fgetc(FILE*stream);符号窗口符号窗口FView-Symbol WindowView-Symbol Window 显示定义在当前被载入的应用程序中的公有符号、局部符号及行号信息。CPU特殊功能寄存器SFR符号也显示在此窗口中。工具箱工具箱FView-ToolboxView-Toolbox Toolbox中包含用户可配置的按钮。点击工具箱
35、上的按钮可以执行相关的调试命令(debug command)或调试函数(debug function)。工具箱按钮可以在任何时间执行,甚至是运行测试程序时。参考 实例:DEFINE BUTTON My Status Info,MyStatus()DEFINE BUTTON Analog0 0.3V,analog0(3)DEFINE BUTTON Stop Analog0,signal kill analog0WatchWatch窗口窗口FView-Watch&Call stack WindowView-Watch&Call stack Window Locals 页列出了当前函数中全部的局部变
36、量。Watch 页列出了用户指定的程序变量。Call Stack 页显示了当前的函数调用嵌套关系。MDKMDK开发的四个步骤开发的四个步骤Step 1:选择设备和指定硬件对象Step 2:配置设备和创建应用程序代码Vision 包含了工程管理器、编辑器和调试器网上庞大地设备数据库&Vision 简单化地芯片选择与设置MDKMDK开发的四个步骤开发的四个步骤通过 ULINK 进行Flash Download 和 Target Debugging 通过 Vision Debugger 和 Device Simulator调试Step 3:用Vision设备仿真器分析代码Step 4:Flash下载
37、最后在目标硬件上测试添加管理源文件添加管理源文件F组织源码结构;组织源码结构;F添加源文件:添加源文件:从从C:KeilARMExamplesMeasureC:KeilARMExamplesMeasure拷贝源文件。拷贝源文件。F建立软仿真工程:建立软仿真工程:SimulatorSimulator为设备仿真工程。为设备仿真工程。Startup启动代码Source实验源文件System系统调用源文件IniFile初始化命令文件ReadMe说明文件添加管理源文件添加管理源文件F点击工具栏点击工具栏“”“”管理工程,添加源码。管理工程,添加源码。注:为了说明操作,直接拷贝附带例程源码。配置启动代码配
38、置启动代码F图形化配置图形化配置 图形化对话框,直观方便 免除手写几百行汇编代码 快速生成启动代码DebugDebug调试调试F点击工具栏点击工具栏“”“”下载程序到目标板进入调试状态下载程序到目标板进入调试状态单步、查看各个窗口单步、查看各个窗口F单步、断点、全速运行:单步、断点、全速运行:F查看查看DebugDebug状态下各个窗口:状态下各个窗口:设置编程工具FlashFlash下载下载FFlash-Configure Flash ToolsFlash-Configure Flash Tools:Flash芯片型号设备仿真实例设备仿真实例内容五内容五MDKMDK的设备仿真的设备仿真目标设
39、备的所有组件都可仿真.代码可在整个设备上运行F完全的目标硬件仿真完全的目标硬件仿真完整的目标完整的目标u高效指令集仿真u中断仿真u片内外围设备ADC,DAC,EBI,TimersUART,CAN,I2C.包含外部信号和 I/Ou包含外部信号和 I/OF充足的仿真信息充足的仿真信息 包含在设备数据库里包含在设备数据库里uSupports 250 ARM based MCUsuIncluded in RealView MDK C:KeilARMExamplesMeasure;FuVision Simulator for LPC2129uVision Simulator for LPC2129;F该
40、例程描述了如何使用该例程描述了如何使用uVisionuVision的的信号函数信号函数功能来仿真功能来仿真LPC21XXLPC21XX一个模拟量的输入。一个模拟量的输入。编译、链接、调试编译、链接、调试F打开打开MeasureMeasure工程,编译、链接程序,点击工程,编译、链接程序,点击DebugDebug进入进入调试状态。调试状态。编译、链接Debug虚拟串口虚拟串口F打开虚拟串口打开虚拟串口2 2,全速运行程序查看结果;,全速运行程序查看结果;Retarget库文件/Serial.cint sendchar(int ch)if(ch=n)while(!(U1LSR&0 x20);U1T
41、HR=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);nRealView微控制器开发工具集带有一个预定义的retarget库文件,它是许多例程的一部分。nretarget文件修改了底层的I/O 程序,并禁止了semi-hosting SWI 中断的使用。查看程序代码查看程序代码n代码块彩色显示n显示混合的源代码与反汇编代码n改变显示模式并且使用cont
42、ext menu中的其他命令(在Disassembly窗口中点击右键)调用栈调用栈FView-Watch&Call stack Window View-Watch&Call stack Window nView-Call stack Unwinder n显示函数的嵌套情况n双击此页中的某行,将会在工作区中显示调用所选择函数的源代码。n显示函数的嵌套情况n显示函数参数的值或者地址n双击此页中的某行,将会在工作区中显示调用所选择函数的源代码。F通过设置通过设置TraceTrace功能,可以跟踪代码功能,可以跟踪代码跟踪代码跟踪代码n要求设置Enable/Disable Trace Recordin
43、gn可以查看到在到达断点前CPU所执行的指令n在工程工作空间的Regs页面会显示执行所选择的指令在执行过程中相应的CPU寄存器内容。F双击一行代码,在代码的左面出现一个红点,表示断电设置成功双击一行代码,在代码的左面出现一个红点,表示断电设置成功断点断点n使用工具栏的断点相关按钮:n调试状态下:Debug-Breakpoint,可以设置高级断点n在不具备trace功能的硬件环境下,不具备条件触发中断的能力n条件触发中断只能在软件仿真的情况下实现当对变量current.time.sec进行写操作且值恒等于3的产生断点查看变量查看变量FView-Watch WindowView-Watch Win
44、down可以随时查看变量、结构体以及数组的内容。n在空白行双击鼠标左键或者按F2键即可添加变量,通过同样的方式也可以修改变量的值。n在源文件编辑窗口选择需要添加的变量名,单击鼠标右键,在弹出的局部菜单中选择Add to Watch Window选项将其加入。查看片上外设查看片上外设FVisionVision里提供了片上外设对话框:里提供了片上外设对话框:I/OI/O端口,中断,定时器,端口,中断,定时器,A/DA/D转换转换器,串口和一些芯片特有的外设。器,串口和一些芯片特有的外设。F对话框会显示当前外设的状态,同时也可以直接在对话框中改变相应的对话框会显示当前外设的状态,同时也可以直接在对话
45、框中改变相应的输入值。输入值。性能分析仪性能分析仪&代码覆盖统计代码覆盖统计FDebug-Performance AnalyzeDebug-Performance AnalyzenView-Code Coverage Windows信号函数信号函数F信号函数可以在后台实现信号输入、脉冲输入等重复操作。信号函数可以在后台实现信号输入、脉冲输入等重复操作。F信号函数可用于模拟和测试串行信号函数可用于模拟和测试串行I/OI/O、模拟、模拟I/OI/O、端口通讯和其他一些、端口通讯和其他一些重复发生的外部事件。重复发生的外部事件。FUNC void MyStatus(void)printf(=n);p
46、rintf(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;printf(Analog0(%f)entered.n,limit);while(1)/*forever
47、*/volts=0;while(volts=0.0)ain0=volts;swatch(0.01);/*wait 0.01 seconds*/volts-=0.1;/*decrease voltage*/初始化文件信号函数ToolboxFView-ToolboxView-Toolbox;DEFINE BUTTON My Status Info,MyStatus()DEFINE BUTTON Analog0 0.3V,analog0(3)DEFINE BUTTON Stop Analog0,signal kill analog0nToolbox中包含用户可配置的按钮。n点击工具箱上的按钮可以执行
48、相关的调试命令或调试函数。n工具箱按钮可以在任何时间执行,甚至是运行测试程序时。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”按钮,输出外部信号;按钮,
49、输出外部信号;F查看各个调试窗口状态。查看各个调试窗口状态。调试命令调试命令/函数、分散加载文函数、分散加载文件件内容六内容六调试命令调试命令FVision3Vision3支持大量命令,可以通过支持大量命令,可以通过 Output Window Command Output Window Command Line Line 键入命令键入命令F在命令入口处,语法生成器会显示命令,选项和参数。在命令入口处,语法生成器会显示命令,选项和参数。F仅需键入命令名单词的首字符。仅需键入命令名单词的首字符。类别描述断点命令允许创建和删除断点。当遇到一个特定指令时可以使用断点停止程序执行或执行Vision3
50、命令或用户函数。普通命令可以执行一些混合的调试操作。存储器命令显示和改变存储器内容程序命令执行目标程序并分析其性能调试命令调试命令-断点命令断点命令命令 描述 BreakAccess添加一个指定长度(地址域)的访问断点到断点列表。BreakDisable使一个或多个断点不可用。BreakEnable使能一个或多个断点。BreakKill从断点列表中移除一个或多个断点。BreakList列出当前断点。BreakSet添加一个断点表达式到断点列表。调试命令调试命令-普通命令普通命令命令 描述ASSIGN为串行窗口分配输入输出源。DEFINE创建一个工具箱按钮。DIR生成一个符号名目录。EXIT退出