Keil软件及其调试功能简介.
- 格式:doc
- 大小:25.00 KB
- 文档页数:3
keil调试程序方法
一、Keil调试程序方法
1、打开Keil,新建工程,在工程目录下,右键选择“添加新建文件”,然后选择“源文件”。
这时会弹出“新建文件对话框”,在文件类型中选择“C文件”。
2、编写C代码,调试程序,为了方便调试,先在程序里加上调试的操作,如“printf”,“getchar”等。
3、如果添加多个C文件时,也可以选择“添加新建文件”,然后选择“工程文件”,在弹出的对话框里输入文件名,然后点击“确定”。
4、编译源代码,编译完成后,查看是否有编译错误,如果没有编译错误,就可以继续下一步。
5、点击编译器的“调试”按钮,它会自动加载要调试的程序,然后就可以进行调试了。
6、在Keil的调试界面上,可以使用鼠标画“断点”,程序运行时,就能自动地停在“断点”处。
7、当一段程序运行完成,可以按F11快捷键,让程序自动运行,或者按“运行”按钮,让程序在断点处暂停,然后再单步执行一行一行调试。
8、Keil调试界面可以编辑程序,也可以查看程序的运行结果,从而可以及时发现程序中的bug。
9、在Keil的调试界面上,可以编辑程序,也可以给变量赋值,从而方便快速地调试程序。
10、当完成调试后,可以按“重新编译”按钮,重新编译整个程序,再查看编译结果,最后保存这个工程,保存文件名为*.uv2文件。
Keil 的调试命令、在线汇编与断点设置上一讲中我们学习了如何建立工程、汇编、连接工程,并获得目标代码,但是做到这一步仅仅代表你的源程序没有语法错误,至于源程序中存在着的其它错误,必须通过调试才能发现并解决,事实上,除了极简单的程序以外,绝大部份的程序都要通过反复调试才能得到正确的结果,因此,调试是软件开发中重要的一个环节,这一讲将介绍常用的调试命令、利用在线汇编、各种设置断点进行程序调试的方法,并通过实例介绍这些方法的使用。
一、常用调试命令在对工程成功地进行汇编、连接以后,按Ctrl+F5 或者使用菜单Debug->Start/Stop Debug Session 即可进入调试状态,Keil 内建了一个仿真CPU 用来模拟执行程序,该仿真CPU 功能强大,可以在没有硬件和仿真机的情况下进行程序的调试,下面将要学的就是该模拟调试功能。
不过在学习之前必须明确,模拟毕竟只是模拟,与真实的硬件执行程序肯定还是有区别的,其中最明显的就是时序,软件模拟是不可能和真实的硬件具有相同的时序的,具体的表现就是程序执行的速度和各人使用的计算机有关,计算机性能越好,运行速度越快。
进入调试状态后,界面与编缉状态相比有明显的变化,Debug 菜单项中原来不能用的命令现在已可以使用了,工具栏会多出一个用于运行和调试的工具条,如图 1 所示,Debug 菜单上的大部份命令可以在此找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令。
? 图1 调试工具条学习程序调试,必须明确两个重要的概念,即单步执行与全速运行。
全速执行是指一行程序执行完以后紧接着执行下一行程序,中间不停止,这样程序执行的速度很快,并可以看到该段程序执行的总体效果,即最终结果正确还是错误,但如果程序有错,则难以确认错误出现在哪些程序行。
Keil软件使用详解Keil软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C语言的程序设计,界面友好,易学易用。
一、keil软件安装:二、keil软件介绍:1、打开Keil后,屏幕如下图所示。
几秒钟后出现编辑主界面。
2、keil主界面:三、keil编程实例:学习程序设计语言或者某种程序软件,最好的方法是直接操作实践。
下面通过简单的编程、调试,引导大家学习Keil软件的基本使用方法和基本的调试技巧。
1、建立一个新工程,单击Project菜单,在弹出的下拉菜单中选中New Project选项;2、然后选择你要保存的路径,输入工程文件的名字,比如保存到asmwork目录里,工程文件的名字为myProject如下图所示,然后点击保存;3、这时会弹出一个对话框,要求选择单片机的型号,你可以根据使用的单片机来选择,keil几乎支持所有的51内核的单片机。
这里我们还是以大家常用的Atmel 的89C52来介绍。
如下图所示,选择AT89C52之后,右边栏是对这个单片机基本的说明,然后点击确定;4、完成上一步骤后,屏幕如下图所示;到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序——循环彩灯。
5、在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项;新建文件后屏幕如下图所示;此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了。
但作者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入所要使用的文件名,同时,必须键入正确的扩展名。
注意,如果用C语言编写程序,则扩展名为.c;如果用汇编语言编写程序,则扩展名必须为.asm。
然后,单击“保存”按钮。
6、回到编辑界面后,单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,弹出如下菜单:然后单击“Add File to Group …Source Group 1‟” 屏幕如下图所示:选中led.asm,然后单击“Add ”屏幕好下图所示:注意到“Source Group 1”文件夹中多了一个子项“Text1.c”了吗?子项的多少与所增加的源程序的多少相同;7、现在,请输入如下的汇编语言源程序;ORG 0000HAJMP STARTORG 0030HSTART: MOV SP,#70HST: MOV A,#0AAHMOV P3,AACALL DELAY2CPL AMOV P3,AACALL DELAY2JMP ST;===================DELAY1: MOV R7,#200D11: MOV R6,#250DJNZ R6,$DJNZ R7,D11RET;===================DELAY2: MOV R5,#100D111: AJMP DELAY1DJNZ R5,D111RETEND在输入上述程序时,读者已经看到了事先保存待编辑的文件的好处了吧,即Keil会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。
K e i lμV i s i o n仿真软件使用说明(总19页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除Keil μVision2仿真软件使用说明第一部分μVision2集成开发环境μVision2 IDE是德国Keil公司开发的基于Windows平台的单片机集成开发环境,它包含一个高效的编译器、一个项目管理器和一个MAKE工具。
其中Keil C51是一种专门为单片机设计的高效率C语言编译器,符合ANSI标准,生成的程序代码运行速度极高,所需要的存储器空间极小,完全可以与汇编语言媲美。
1.关于开发环境μVision2的界面如图1-1所示,μVision2允许同时打开、浏览多个源文件。
图1-1 μVision2界面图2.菜单条、工具栏和快捷键下面的表格列出了μVision2菜单项命令,工具栏图标,默认的快捷以及他们的描述。
1)编辑菜单和编辑器命令Edit(如表1-1所示)菜单工具栏快捷键描述Home 移动光标到本行的开始End 移动光标到本行的末尾Ctrl+Home 移动光标到文件的开始Ctrl+End 移动光标到文件的结束Ctrl+<- 移动光标到词的左边 Ctrl+-> 移动光标到词的右边 Ctrl+A 选择当前文件的所有文本内容 Undo Ctrl+Z 取消上次操作 Redo Ctrl+Shift+Z 重复上次操作CutCtrl+X Ctrl+Y 剪切所选文本剪切当前行的所有文本 Copy Ctrl+C 复制所选文本 Paste Ctrl+V粘贴Indent Selected Text将所选文本右移一个制表键的距离Unindent Selected Text将所选文本左移一个制表键的距离Toggle Bookmark Ctrl+F2 设置/取消当前行的标签 Goto Next Bookmark F2 移动光标到下一个标签处 GotoPrevious bookmark Shift+F2移动光标到上一个标签处 Clear All Bookmarks清除当前文件的所有标签 Find在当前文件中查找文本 F3 向前重复查找 Shift+F3 向后重复查找Ctrl+F3 查找光标处的单词Ctrl+]寻找匹配的大括号、圆括号、方括号(用此命令将光标放到大括号、圆括号或方括号的前面) Replace替换特定的字符 Find in Files … 在多个文件中查找 Goto Matching brace选择匹配的一对大括号、圆括号或方括号中的内容2)选择文本命令在μVision2中,可以通过按住Shift 键和相应的键盘上的方向键来选择文本。
Keil软件以及程序下载软件使用简介Keil是当前最流行的MCS51单片机开发软件,可以用它来汇编你的汇编语言源程序,编译你的C语言源程序,连接和重定位你的目标文件和库文件,创建HEX文件,调试你的目标程序。
现在有Keil uVision2和uVision3两种版本,程序界面稍有不同,我们主要使用uVision2。
一、Keil uVision2开发环境的使用使用Keil uVision2软件开发单片机程序的步骤一般分如下几步:(1)建立一个新项目(2)建立并编辑源程序文件(3)将源程序文件添加到项目中(4)编译项目,生成目标文件下面通过一个程序的设计过程,详细介绍每一个步骤。
1. 建立一个新项目uVision2是一个标准Windows应用程序,直接点击程序图标就可以启动它。
在windows XP操作系统的桌面上,点击“开始/所有程序”下的Keil uVision2菜单项,启动Keil uVision2软件,如图1所示。
新建一个项目的步骤如图2所示,从uVision2的Project菜单中选择New Project,将打开一个对话框,此对话框要求你输入项目名称。
建议你为每个项目建一个单独的文件夹。
你可以在弹出的对话框中点击新建文件夹的图标来得到一个空的文件夹,然后选择子文件夹并键入项目的名称,如“Project1”,点击[确定]。
这时会弹出“Select Device for Target”对话框,要求选择单片机型号(与目标板型号一致),这里我们假设选择Atmel公司的AT89C51,点击[确定],这样就创建了一个名字为Project1的新项目。
图1 启动Keil uVision2图2 建立新项目2.建立并编辑源程序文件可以用菜单选项File-New来新建一个源文件。
这将打开一个空的编辑窗口让你输入你的源代码。
当你把此文件另存为*.ASM的文件后,uVision2将高亮显示汇编语言语法字符。
我们把我们的例子程序保存为lianxi1.ASM,如图3所示。
keil调试汇编语言Keil是一款广泛用于嵌入式系统开发的集成开发环境(IDE),它支持多种编程语言,包括C语言和汇编语言。
在Keil中进行汇编语言的调试需要编写汇编代码以及在IDE中配置相关设置,接下来我将详细介绍如何在Keil中调试汇编语言。
首先,要在Keil中调试汇编语言,我们需要创建一个新的Keil 项目或者打开一个已有的项目。
在创建新项目或打开项目后,我们可以在项目中添加一个汇编文件,用于编写我们的汇编代码。
在Keil中,汇编文件的后缀通常为.asm,我们可以通过右键点击项目中的文件夹,选择添加→新建文件(或者通过快捷键Ctrl+N)来创建一个新的汇编文件。
创建好汇编文件后,我们可以在文件中编写我们的汇编代码。
在编写汇编代码时,我们需要注意汇编语言的语法和指令格式。
汇编语言的语法因不同的体系结构而异,比如x86汇编语言与ARM汇编语言的语法就有所不同。
因此,在编写汇编代码前,我们需要先了解目标平台的体系结构和相应的汇编语法标准。
在汇编代码中,我们可以使用一系列的汇编指令来进行数据的移动、运算和控制流的操作。
例如,通过MOV指令可以实现数据的移动,通过ADD指令可以实现数据的加法运算,通过CMP指令可以实现数据的比较等。
汇编指令的具体使用方法和参数取决于具体的体系结构和处理器指令集。
编写完汇编代码后,我们需要在Keil中配置一些相关设置,以便能够进行调试。
首先,我们需要在项目属性中设置汇编语言的编译器和链接器选项。
在Keil的项目目录视图中,右键点击项目名称,选择选项,并在弹出的对话框中选择正确的编译器和链接器。
其次,我们需要在Keil的启动文件(startup file)中设置相应的中断向量表和启动代码。
启动文件位于项目文件夹的"startup"子文件夹中,可以通过将文件拖放到Keil编辑器中打开。
在启动文件中,我们需要找到中断向量表和启动代码的位置,并将其修改为适用于我们的汇编代码的中断向量表和启动代码。
实验一使用Keil输入和调试程序(一)实验目的:通过实验掌握Keil C51集成开发环境输入程序和调试程序的方法。
(二)实验仪器:计算机一台STC12学习板一套STC单片机仿真器一套USB连接电缆一根(三)实验内容及步骤:Keil C51 IDE又叫Keil集成开发环境或Keil C51μVision3。
实验要求使用Keil集成开发环境完成实验程序的输入、调试。
Keil是以工程项目的方法管理文件。
所有的文件(源程序文件、头文件和各种技术文档)都是放在工程项目里的统一管理。
下面通过一个实验程序学习使用Keil IDE建立应用程序和调试程序的步骤:✓新建一个工程项目。
✓为工程项目选择目标器件。
✓建立源程序文件,输入程序代码并保存。
将源程序文件添加到工程项目里。
✓为工程项目设置软件、硬件的调试环境。
✓输入、调试和运行实验程序。
要创建的工程项目是:设计一个程序,使学习板上的LED1灯闪亮,电路图如图2-1所示(在第14页)。
该实验工程项目的建立过程如下:1、启动Keil C51的IDE开发环境并建立一个工程项目双击计算机桌面上的Keil C51 IDE图标即可启动Keil C51 IDE开发环境。
如果以前已经建立了工程项目,Keil51 IDE启动后会直接显示原来打开的工程项目。
也可以打开原来已经存在的工程项目。
打开已经存在的项目方法是,从“Project”菜单中选择“Open Project”菜单项,从弹出的对话框中选择要打开的项目。
新建项目文件时,从“Project”菜单中选择“New Project”菜单项,将打开“Create New Project”对话框。
如图1-1所示。
在“Create New Project”对话框中做以下的工作:✧为工程项目选择一个存放路径,在此选择STC51文件夹(若计算机中没有STC51文件夹,则需要建立它)。
✧在文件名输入框里输入,这是为实验工程项目取的工程项目文件名(扩展名是.uv2)。
keil的mdk5使用手册Keil的MDK5(Microcontroller Development Kit 5)是一款为嵌入式开发人员提供的强大工具,它集成了开发所需的各种组件,包括编译器、调试器、仿真器等。
使用MDK5,开发者可以更高效地进行嵌入式系统的设计和开发。
首先,要使用MDK5,您需要先安装它。
安装过程相对简单,只需要按照安装向导的指示进行即可。
安装完成后,您可以通过Keil软件来创建一个新的项目。
在创建项目时,您需要选择您的目标硬件平台和微控制器型号。
接下来,您需要配置您的项目。
在项目配置中,您可以设置编译器的各种选项,例如优化级别、代码生成方式等。
此外,您还可以配置调试和仿真选项,例如选择使用的调试器、仿真器等。
在编写代码方面,MDK5支持多种编程语言,包括C和C++。
您可以使用Keil的代码编辑器来编写和编辑代码。
在编写代码时,您可以使用MDK5提供的各种库和函数,例如标准C库、微控制器特有库等。
编译和调试是嵌入式开发中非常重要的环节。
使用MDK5,您可以轻松地进行编译和调试。
您可以使用Keil的编译器将您的代码编译成可在微控制器上运行的二进制文件。
然后,您可以使用Keil的调试器来调试您的程序。
调试器提供了各种有用的功能,例如设置断点、单步执行、查看变量值等。
除了基本的编译和调试功能外,MDK5还提供了其他有用的工具和功能。
例如,您可以使用仿真器来模拟微控制器的行为。
此外,MDK5还支持多种外部设备,例如串行通信接口、模数转换器等。
这些设备可以通过Keil的设备驱动程序进行配置和使用。
总的来说,MDK5是一款功能强大、易于使用的嵌入式开发工具。
通过使用MDK5,您可以更高效地进行嵌入式系统的设计和开发。
无论您是初学者还是经验丰富的开发者,MDK5都能为您提供全面的支持和帮助。
第2章Keil软件使用说明2.1 Keil工程的建立2.2 工程的设置2.3 编译和链接2.4 调试2.1 Keil1)进入Keil界面单击自己安装的Keilμvision2的图标。
进入Keil后,屏幕显示如图2-2所示。
图2-2 起动Keil软件时的界面2)建立一个工程选择菜单【Project】│【New Project】,界面如图2-3所示。
图2-3 新建工程文件界面3)保存工程选择工程要保存的路径,输入工程名。
例如,建立的文件夹名为“流水灯”,工程名也命名为“流水灯”,然后单击“保存”按钮。
此时,该工程已经建立,扩展名为.uv2,即项目名为“流水灯.uv2”,如图2-4所示。
图2-4 “保存新工程”对话框4)选择系统要用的单片机保存文件后弹出对话框,如图2-5所示,要求选择所设计系统要用的单片机,在此选择AT89C51单片机。
图2-5 “选择单片机”对话框4)选择系统要用的单片机在选择某个单片机,单击“确定”后,弹出如图2-6所示的对话框。
图2-6 “添加启动文件”对话框上述任务完成后,显示2-7所示的界面。
5)建立文件图2-8 新建文件界面选择菜单【File】│【New】,出现如图2-8界面。
在光标所在的窗口输入编写的源程序。
6)文件保存待录入源程序后,选择【File】│【Save】,保存文件为“流水灯.c”,和原来建立的项目放在同一个文件夹下。
如果源文件为汇编语言编写的,则扩展名为“.ASM”。
7)添加文件图2-9 添加文件中出现的菜单在项目窗口下,单击“Target1”前面的“+”,然后在“Source Group 1”选项上单击右键,弹出如图2-9所示对话框。
7)添加文件图2-10 “添加文件”对话框选择“Add Files to Group ‘Source Group 1’”选项,弹出要求添加进本项目的对话框。
如图2-10所示。
7)添加文件图2-11 添加了文件后的窗口将刚建立的“流水灯.c”选中,单击“Add”按钮或鼠标左键双击即可将本文件添加进本项目。
Keil 程序调试窗口上一讲中我们学习了几种常用的程序调试方法,这一讲中将介绍Keil 提供各种窗口如输出窗口、观察窗口、存储器窗口、反汇编窗口、串行窗口等的用途,以及这些窗口的使用方法,并通过实例介绍这些窗口在调试中的使用。
Keil软件在调试程序时提供了多个窗口,主要包括输出窗口(Output Windows )、观察窗口(Watch&Call Statck Windows )、存储器窗口(Memory Window )、反汇编窗口(Dissambly Window )串行窗口(Serial Window )等。
进入调试模式后,可以通过菜单View 下的相应命令打开或关闭这些窗口。
图1是输出窗口、观察窗口和存储器窗口,各窗口的大小可以使用鼠标调整。
进入调试程序后,输出窗口自动切换到Command 页。
该页用于输入调试命令和输出调试信息。
对于初学者,可以暂不学习调试命令的使用方法。
1、存储器窗口存储器窗口中可以显示系统中各种内存中的值,通过在Address 后的编缉框内输入“字母:数字”即可显示相应内存值,其中字母可以是C 、D 、I 、X ,分别代表代码存储空间、直接寻址的片内存储空间、间接寻址的片内存储空间、扩展的外部RAM 空间,数字代表想要查看的地址。
例如输入D :0即可观察到地址0开始的片内RAM 单元值、键入C :0即可显示从0开始的ROM 单元中的值,即查看程序的二进制代码。
该窗口的显示值可以以各种形式显示,如十进制、十六进制、字符型等,改变显示方式的方法是点鼠标右键,在弹出的快捷菜单中选择,该菜单用分隔条分成三部份,其中第一部份与第二部份的三个选项为同一级别,选中第一部份的任一选项,内容将以整数形式显示,而选中第二部份的Ascii 项则将以字符型式显示,选中Float 项将相邻四字节组成的浮点数形式显示、选中Double 项则将相邻8字节组成双精度形式显示。
第一部份又有多个选择项,其中Decimal 项是一个开关,如果选中该项,则窗口中的值将以十进制的形式显示,否则按默认的十六进制方式显示。
Keil 的调试命令、在线汇编与断点设置上一讲中我们学习了如何建立工程、汇编、连接工程,并获得目标代码,但是做到这一步仅仅代表你的源程序没有语法错误,至于源程序中存在着的其它错误,必须通过调试才能发现并解决,事实上,除了极简单的程序以外,绝大部份的程序都要通过反复调试才能得到正确的结果,因此,调试是软件开发中重要的一个环节,这一讲将介绍常用的调试命令、利用在线汇编、各种设置断点进行程序调试的方法,并通过实例介绍这些方法的使用。
一、常用调试命令在对工程成功地进行汇编、连接以后,按Ctrl+F5或者使用菜单Debug->Start/Stop Debug Session 即可进入调试状态,Keil 内建了一个仿真CPU 用来模拟执行程序,该仿真CPU 功能强大,可以在没有硬件和仿真机的情况下进行程序的调试,下面将要学的就是该模拟调试功能。
不过在学习之前必须明确,模拟毕竟只是模拟,与真实的硬件执行程序肯定还是有区别的,其中最明显的就是时序,软件模拟是不可能和真实的硬件具有相同的时序的,具体的表现就是程序执行的速度和各人使用的计算机有关,计算机性能越好,运行速度越快。
进入调试状态后,界面与编缉状态相比有明显的变化,Debug 菜单项中原来不能用的命令现在已可以使用了,工具栏会多出一个用于运行和调试的工具条,如图1所示,Debug 菜单上的大部份命令可以在此找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令。
学习程序调试,必须明确两个重要的概念,即单步执行与全速运行。
全速执行是指一行程序执行完以后紧接着执行下一行程序,中间不停止,这样程序执行的速度很快,并可以看到该段程序执行的总体效果,即最终结果正确还是错误,但如果程序有错,则难以确认错误出现在哪些程序行。
K e i lμV i s i o n仿真软件使用说明-CAL-FENGHAI.-(YICAI)-Company One1Keil μVision2仿真软件使用说明第一部分μVision2集成开发环境μVision2 IDE是德国Keil公司开发的基于Windows平台的单片机集成开发环境,它包含一个高效的编译器、一个项目管理器和一个MAKE工具。
其中Keil C51是一种专门为单片机设计的高效率C语言编译器,符合ANSI标准,生成的程序代码运行速度极高,所需要的存储器空间极小,完全可以与汇编语言媲美。
1.关于开发环境μVision2的界面如图1-1所示,μVi sion2允许同时打开、浏览多个源文件。
图1-1 μVision2界面图2.菜单条、工具栏和快捷键下面的表格列出了μVision2菜单项命令,工具栏图标,默认的快捷以及他们的描述。
1)编辑菜单和编辑器命令Edit(如表1-1所示)菜单工具栏快捷键描述Home 移动光标到本行的开始End 移动光标到本行的末尾Ctrl+Home 移动光标到文件的开始Ctrl+End 移动光标到文件的结束Ctrl+<- 移动光标到词的左边 Ctrl+-> 移动光标到词的右边 Ctrl+A 选择当前文件的所有文本内容 Undo Ctrl+Z 取消上次操作 Redo Ctrl+Shift+Z 重复上次操作CutCtrl+X Ctrl+Y 剪切所选文本剪切当前行的所有文本 Copy Ctrl+C 复制所选文本 Paste Ctrl+V粘贴Indent Selected Text将所选文本右移一个制表键的距离Unindent Selected Text将所选文本左移一个制表键的距离Toggle Bookmark Ctrl+F2 设置/取消当前行的标签 Goto Next Bookmark F2 移动光标到下一个标签处 GotoPrevious bookmark Shift+F2移动光标到上一个标签处 Clear All Bookmarks清除当前文件的所有标签 Find在当前文件中查找文本 F3 向前重复查找 Shift+F3 向后重复查找Ctrl+F3 查找光标处的单词Ctrl+]寻找匹配的大括号、圆括号、方括号(用此命令将光标放到大括号、圆括号或方括号的前面) Replace替换特定的字符 Find in Files … 在多个文件中查找 Goto Matching brace选择匹配的一对大括号、圆括号或方括号中的内容2)选择文本命令在μVision2中,可以通过按住Shift 键和相应的键盘上的方向键来选择文本。
先说一个概念:调试,在企业程序设计里(我把企业商务类型的软件开发叫企业程序设计,把单片机与驱动程序这样接触底层汇编与硬件相关的程序设计叫底层程序设计),调试一般都用来跟踪变量的赋值过程,以及查看内存堆栈的内容,查看这些内容的目的在于观察变量的赋值过程与赋值情况从而达到调试的目的。
由于企业程序的宿主就是开发它的计算机本身,因此企业程序设计比起底层程序设计,特别是单片机的程序设计调试来的更直观,调试也更方便。
单片机的程序设计调试分为两种,一种是使用软件模拟调试,意思就是用开发单片机程序的计算机去模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的,但是软件调试存在一些问题,如计算机本身是多任务系统,划分执行时间片是由操作系统本身完成的,无法得到控制,这样就无法时时的模拟单片机的执行时序,也就是说,不可能像真正的单片机运行环境那样执行的指令在同样一个时间能完成(往往要完成的比单片机慢)。
为了解决软件调试的问题,第二种是硬件调试,硬件调试其实也需要计算机软件的配合,大致过程是这样的:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到硬件调试设备中(这个设备叫仿真器),仿真器仿真全部的单片机资源(所有的单片机接口,并且有真实的引脚输出),仿真器可以接入实际的电路中,然后与单片机一样执行。
同时,仿真器也会返回单片机内部内存与时序等情况给计算机的辅助软件,这样就可以在软件里看到真实的执行情况。
不仅如此,还可以通过计算机断的软件实现单步、全速、运行到光标的常规调试手段。
图1:仿真器总结一下两者的不同与相同:相同点:1:都可以检测单片机执行时序下的片内资源情况(如R0-R7 、PC计数器等)2:可以实现断点、全速、单步、运行到光标等常规调试手段。
不同:1:软件调试无法实现直接连接硬件电路的调试,只能通过软件窗口虚拟硬件端口的电平输出情况而仿真器可以实现与单片机一样的功能的硬件连接,从某种意义上说这个时候仿真器就是一个单片机。
keil程序debug用法在Keil μVision中进行程序调试是嵌入式开发过程中的重要一环。
下面是在Keil中进行程序调试的基本步骤:1. 打开Keil μVision:启动Keil μVision集成开发环境。
2. 加载工程:打开或新建一个Keil工程,确保你的项目文件已加载。
3. 选择目标芯片:在“Project”菜单中,选择“Options for Target"。
在“Target”选项卡中,选择你的目标芯片型号。
确保芯片选型与你实际使用的芯片一致。
4. 配置调试工具:在“Flash Download”选项卡中,配置目标芯片的调试工具。
通常,你需要选择你的调试器型号,设置调试器连接参数。
5. 设置调试模式:在“Debug”菜单中,选择“Start/Stop Debug Session”以进入调试模式。
6. 添加断点:在你希望暂停程序执行的地方设置断点。
右键点击源代码的行号,选择“Toggle Breakpoint”或按下`F9`键。
7. 运行程序:在调试模式下,点击工具栏中的“Start/Stop Debug Session”按钮或按下`F5`键来运行程序。
当程序执行到设置的断点时,会暂停执行。
8. 查看变量值:在调试模式下,你可以查看和监视变量的值。
在“Watch”窗口中添加你感兴趣的变量,它们的值会在每次程序暂停时更新。
9. 单步执行:在调试模式下,你可以使用单步执行来逐行执行代码。
使用工具栏中的“Step Into”(F11), “Step Over”(F10), 和“Step Out”(Shift + F11)按钮。
10. 查看寄存器:在调试模式下,你可以查看和监视CPU寄存器的值。
在“Peripheral”窗口中选择“Register”标签。
11. 查看内存:在调试模式下,你可以查看和监视内存中的数据。
在“View”菜单中选择“Memory”来打开“Memory”窗口。
K e i lμV i s i o n仿真软件使用说明(总19页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除Keil μVision2仿真软件使用说明第一部分μVision2集成开发环境μVision2 IDE是德国Keil公司开发的基于Windows平台的单片机集成开发环境,它包含一个高效的编译器、一个项目管理器和一个MAKE工具。
其中Keil C51是一种专门为单片机设计的高效率C语言编译器,符合ANSI标准,生成的程序代码运行速度极高,所需要的存储器空间极小,完全可以与汇编语言媲美。
1.关于开发环境μVision2的界面如图1-1所示,μVision2允许同时打开、浏览多个源文件。
图1-1 μVision2界面图2.菜单条、工具栏和快捷键下面的表格列出了μVision2菜单项命令,工具栏图标,默认的快捷以及他们的描述。
1)编辑菜单和编辑器命令Edit(如表1-1所示)菜单工具栏快捷键描述Home 移动光标到本行的开始End 移动光标到本行的末尾Ctrl+Home 移动光标到文件的开始Ctrl+End 移动光标到文件的结束Ctrl+<- 移动光标到词的左边 Ctrl+-> 移动光标到词的右边 Ctrl+A 选择当前文件的所有文本内容 Undo Ctrl+Z 取消上次操作 Redo Ctrl+Shift+Z 重复上次操作CutCtrl+X Ctrl+Y 剪切所选文本剪切当前行的所有文本 Copy Ctrl+C 复制所选文本 Paste Ctrl+V粘贴Indent Selected Text将所选文本右移一个制表键的距离Unindent Selected Text将所选文本左移一个制表键的距离Toggle Bookmark Ctrl+F2 设置/取消当前行的标签 Goto Next Bookmark F2 移动光标到下一个标签处 GotoPrevious bookmark Shift+F2移动光标到上一个标签处 Clear All Bookmarks清除当前文件的所有标签 Find在当前文件中查找文本 F3 向前重复查找 Shift+F3 向后重复查找Ctrl+F3 查找光标处的单词Ctrl+]寻找匹配的大括号、圆括号、方括号(用此命令将光标放到大括号、圆括号或方括号的前面) Replace替换特定的字符 Find in Files … 在多个文件中查找 Goto Matching brace选择匹配的一对大括号、圆括号或方括号中的内容2)选择文本命令在μVision2中,可以通过按住Shift 键和相应的键盘上的方向键来选择文本。
Keil软件及其调试功能简介
目前流行的51系列单片机开发软件是德国Keil公司推出的Keil C51软件,它是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为μVision(通常称为μV2)。
Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:μVision IDE集成开发环境(包括工程管理器①、源程序编辑器②、程序调试器③,见图2)、C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-51、RTX51实时操作系统。
应用Keil进行软件仿真开发的主要步骤为:编写源程序并保存—建立工程并添加源文件—设置工程—编译/汇编、连接,产生目标文件—程序调试。
Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。
工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。
首先选择菜单File-New…,在源程序编辑器中输入汇编语言或C语言源程序(或选择File-O pen…,直接打开已用其它编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;然后选择菜单Project-New Project…,建立新工程并保存(保存时无需加扩展名,也可加上扩展名.uv2);工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。
这时工程管理窗口的文件页(Files)会出现“Target1”,将其前面+号展开,接着选择Source Group1,右击鼠标弹出快捷菜单,选择“Add File to Group ‘Source Group1’”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其它文件)。
加入文件后点close返回主界面,展开“Source Group1”前面+号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。
紧接着对工程进行设置,选择工程管理窗口的Target1,再选择Project-Option for Target‘Target1’(或点右键弹出快捷菜单再选择该选项),打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等,如要写片,还必须在Output选项卡中选中“Creat Hex Fi”;其它选项卡内容一般可取默认值。
工程设置后按F7键(或点击编译工具栏上相应图标)进行编译/汇编、连接以及产生目标文件。
成功编译/汇编、连接后,选择菜单Debug-Start/Stop Debug Session(或按Ctrl+F5键)进入程序调试状态,Keil提供对程序的模拟调试功能,内建一个功能强大的仿真CPU以模拟执行程序。
Keil能以单步执行(按F11或选择Debug-Step)、过程单步执行(按F10或选择Debug-Step Over)、全速执行等多种运行方式进行程序调试。
如果发现程序有错,可采用在线汇编功能对程序进行在线修改(Debug-Inline Assambly…),不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。
对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理(Debug-Insert/Remove Breakpoint或Debug-Breakpoints…等)。
在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察目标样机真实的运行状况。
Keil软件Eval版(免费产品)的功能与商业版相同,只是程序的最大代码量不得超过2kB,但对初学者而言已是足够。
Keil软件由于其
强大的软件仿真功能,友好的用户界面以及易于掌握的特点而受到工程技术人员的欢迎,有人甚至认为Keil是目前最好的51单片机开发应用软件。
51单片机数字实验室的应用实例
运用Keil软件并结合数字外围器件只需在PC机上便可进行单片机实验(可称为数字实验室方式),下面以两个实例来说明运用Keil软件进行程序调试(软件模拟仿真)的过程。
例1:单片机(80C51)晶振频率为12MHz,利用T0方式0产生5ms的定时,在P1.0引脚上输出10ms的方波
按前面所述方法步骤对源程序成功汇编、连接后按Ctrl+F5键进入程序调试,再选择菜单Peripherals-I/O-Ports-Port 1打开P1口参数窗口显示P1口状态,选择Peripherals-Timer-Timer 0打开定时器T0窗口显示其参数;这里采用断点调试方式,在中断服务子程序第一行设置断点,出现红色标记,如图3所示。
点击调试工具栏上的Run(运行)按钮,程序执行到断点处停止,如连续点击运行则可从Port1窗口观察到P1.0引脚电平值的变化(1-0-1-…),而此时Regs(寄存器)窗口中的sec值即为定时时间(按5ms幅度递增,会有误差)。
显然该例需要实验者根据P1口(P1.0)的值来对输出的方波进行想象,并不直观。
例2:数字实验仿真板的应用:流水灯实验
针对Keil的软件仿真器,有人提出了利用VC++编写动态链接库仿真单片机外围器件的思路和方法;另有人设计开发了几个外围器件数字实验仿真板,这些实验仿真板相当于是Keil μVersion2仿真环境下的dll插件。
如键盘、LED显示实验仿真板(ledkey.dll)、带有数码管的实验仿真板(simboard.dll)等,见图4所示。
以ledkey仿真板为例,它采用Atmel89C51单片机(含有4kBFLASH ROM)作为主芯片,P1引脚上接8个发光二极管,P3.2-3.5引脚上接4个按钮开关。
安装数字仿真实验板时只需将实验仿真板文件(*.dll)复制到Keil软件的KeilC51Bin文件夹即可。
在使用实验仿真板之前还需对工程进行设置,先选择工程管理窗口的Target1,再选择Project-Option for Target ‘Target1’,打开对话框,选择Debug选项卡,在其左下角的Parameter文本框中输入“-d”和文件名,如使用ledkey.dll实验仿真板,就输入“-dledkey”(整个文本框内容为:-p51 -dledkey),然后点确定即可。
进入程序调试后点击菜单Peripherals,就会看到多出一项“键盘LED仿真板(K)”,选择该项,就会出现图4所示ledkey实验仿真板界面。
流水灯实验是最常见的单片机实验之一,这里我们要实现用单片机控制图4ledkey仿真板上8个LED依次循环发光。
应用Keil 软件,按照步骤进入程序调试状态,并点击菜单Peripherals打开ledkey仿真板,然后运行程序,可通过观察仿真板上灯光的变化,检查程序的正确与否,非常形象生动,而不必再依靠对P1口的值进行观察想象,有助于初学者对单片机基本知识的掌握和激发学习的热情。