第3章
CHAPTER 3


Keil μVision(C51)开发工具





本章将简要介绍用于开发STC 8051单片机所需要的Keil μVision5集成开发环境,以及该集成开发环境的设计流程,并通过一个简单的C语言设计实例说明Keil μVision5的基本开发流程。

通过本章内容,可以初步了解STC 8051单片机的软件开发环境,并初步掌握由Keil μVision5实现单片机程序开发的基本设计流程。



视频讲解


3.1Keil μVision集成开发环境介绍

Keil公司于2014年推出了集成开发环境μVision5,它是一个基于Windows操作系统(32位/64位)的开发平台。

3.1.1软件功能介绍

μVision5提供了功能强大的编辑器,并且提供了管理工程的功能。μVision5集成了用于开发嵌入式应用的所有工具,包括: C/C++编译器、宏汇编器、链接器/定位器和HEX文件生成器。通过该集成开发环境提供的下列功能,可以帮助程序员加速开发的过程。

(1) 全功能的源代码编辑器。

(2) 用于配置开发工具的元件库。

(3) 用于创建和维护工程的工程管理器。

(4) 用于对嵌入式设计文件进行处理的汇编器、编译器和链接器。

(5) 用于所有开发环境设置的对话框界面。

(6) 集成了带有高速CPU和外设仿真器的源码级和汇编器级调试器工具。

(7) 用于对目标硬件进行软件调试的高级GDI接口,以及Keil ULINK调试适配器。

(8) 用于将应用程序下载到Flash存储器的Flash编程工具。

(9) 手册、在线帮助、器件手册和用户指南。

注意: STC使用自己专用的STCISP工具将应用程序下载到STC单片机的Flash存储器中。

μVision5集成开发环境和调试器是整个Keil开发工具链的中心,它们提供了大量的特性以帮助程序开发人员快速完成嵌入式应用的开发。

μVision5提供了建立模式(Build Mode),用于创建应用程序,以及调试模式(Debug Mode),用于调试应用程序。通过μVision5集成的仿真器或者实际的硬件系统,设计者可以对应用程序进行调试。比如: 通过STC提供的下载工具STCISP和USB下载电缆,设计者可以在实际系统上通过Keil集成开发环境对应用程序进行在线调试。

注意: 并不是所有的STC15系列单片机都支持硬件调试功能,设计者可以参考STC15系列单片机手册以了解是否支持对单片机进行硬件仿真。本书介绍的IAP15W4K58S4和STC8系列单片机均支持对单片机的硬件仿真(在线调试)功能。

3.1.2软件的下载

为方便对本书后续内容的学习,本节将介绍μVision5软件的下载方法,下载μVision5集成开发环境的步


图3.1进入下载界面入口(一)

骤如下。


注意: 在进行下面的过程前,必须保证网络正常连接。

(1) 在计算机浏览器地址栏中,输入http://www.keil.com,登录Keil官网。

(2) 在打开的Keil官网左侧的Software Downloads下找到并单击Product Downloads,如图3.1所示。


(3) 在打开的页面中,出现Download Products页面。在该页面中,单击C51,如图3.2所示。


(4) 打开C51界面,该界面提供了列表,需要填写相关信息,如图3.3所示。

注意: 凡是标识黑体的项,都需要提供信息,Email信息必须真实有效。



图3.2进入下载界面入口(二)


(5) 当填写必要的信息后,单击该页面下方的Submit按钮。

(6) 出现新的界面。在该界面下,单击C51V961.EXE图标,如图3.4所示。




图3.3进入下载界面入口(三)




图3.4进入下载界面入口(四)



(7) 出现“下载”对话框,显示了下载软件的进度,如图3.5所示。



图3.5“下载”对话框显示下载软件的进度


3.1.3软件的安装

本节将介绍Keil μVision5软件的安装方法,主要步骤如下。 

(1) 下载完软件后,在“下载”对话框单击“在文件夹中显示”按钮。

(2) 进入到保存安装文件的目录中。在该目录中,找到并双击C51V961.exe。

(3) 按照安装过程中的提示信息完成软件的安装。在安装软件的过程中,默认安装路径为C:\Keil_v5。

(4) 安装成功后,在Windows 11操作系统桌面的底部单击“开始”按钮,弹出浮动菜单。单击浮动菜单右上角的“全部”按钮,定位到标题为“K”的窗口,在该窗口中,出现Keil μVision5图标,如图3.6(a)所示;同时,在Windows 11操作系统桌面上出现名字为Keil μVision5的图标,如图3.6(b)所示。



图3.6成功安装μVision5后的图标


注意: 在安装完成后需要获取许可文件,否则在对程序进行处理时会出现异常情况。
打开Keil μVision集成开发环境后,在主界面主菜单下,选择File→License Management选项,出现License Management对话框界面。在该界面中,添加License许可证文件。

当安装完Keil μVision5后,在默认安装路径C:\Keil_v5路径下,给出了该集成开发环境的文件夹结构,如表3.1所示。

表3.1Keil μVision集成开发环境文件夹结构





文件夹内容
C:\Keil_v5\UV4μVision命令文件
C:\Keil_v5\C51C51工具链的默认基本文件夹
C:\Keil_v5\C51\ASM用于宏汇编器的汇编器源文件模板和包含文件
C:\Keil_v5\C51\BINμVision工具链的可执行文件
C:\Keil_v5\C51\Examples示例程序
C:\Keil_v5\C51\FlashMon用于Flash监控器和预配置版本的配置文件
C:\Keil_v5\C51\HLP用于μVision/C51的在线文档
C:\Keil_v5\C51\INC用于C编译器的包含文件
C:\Keil_v5\C51\ISD51用于ISD51在系统调试器和预配置版本的文件
C:\Keil_v5\C51\LIB运行库和MCU启动文件
C:\Keil_v5\C51\Mon51用于Monitor51(用于传统8051单片机)的配置文件
C:\Keil_v5\C51\Mon390用于Monitor390(用于达拉斯连续模式)的配置文件
C:\Keil_v5\C51\RtxTiny2RTX51 Tiny V2实时操作系统


3.1.4导入STC单片机元件库

在Keil μVision集成开发环境中完成STC单片机软件开发流程前,需要将STC公司的单片机元件库导入到Keil μVision集成开发环境中,导入STC单片机元件库的步骤如下。

(1) 在本书提供的资料中,找到并双击STC公司提供的AIappISPV6.94X.exe文件,打开主界面,如图3.7所示。



图3.7STCISP软件主界面


(2) 在该界面内的右侧窗口中,单击“Keil仿真设置”标签。在该标签页面下,单击“添加型号和头文件到Keil中,添加STC仿真器驱动到Keil中”按钮,如图3.7所示。



图3.8选择路径界面

(3) 在“浏览文件夹”对话框中,出现“请选择Keil的安装目录…”提示信息,如图3.8所示,
将路径定位到c:\Keil_v5目录下。
读者根据自己安装的μVision5路径选择所指向的路径。

(4) 单击“确定”按钮,
出现添加STCMCU器件成功的消息对话框界面。

至此,成功地将STC单片机的元器件库添加到μVision5集成开发环境中。

注意: STC单片机的头文件保存在c:\Keil_v5\C51\INC\STC目录下。

3.1.5软件的启动


下面介绍μVision5软件的启动方法: 
在Windows 11操作系统桌面中,单击“开始”按钮,弹出浮动菜单。单击浮动菜单右上角的“全部”按钮。在浮动菜单中,单击Keil μVision5图标,或者在Windows 11操作系统桌面上,单击Keil μVision5图标,
出现Keil μVision5启动界面,如图3.9所示。



图3.9Keil μVision5启动界面


3.2Keil μVision软件开发流程介绍

通过Keil μVision集成开发环境开发STC 8051单片机软件程序的流程如图3.10所示。从STC单片机应用的角度而言,程序开发的任务包含两方面。



图3.10通过Keil μVision集成开发环境开发STC 8051单片机软件程序的流程


(1) 编写硬件驱动,并提供应用程序接口函数API。

(2) 基于API编写应用程序,使得单片机系统能满足应用要求。

传统情况下,8051单片机的程序开发都是直接面向于底层硬件的,即先编写硬件驱动,然后基于硬件驱动进行编写,也就是通常所说的“裸奔”。这种开发方法的最大局限性在于程序的可移植性较差、维护成本高。此外,由于这种开发方式没有使用操作系统进行支持,很难实现多任务的协同分时处理。

随着单片机应用程序开发要求的不断提高,程序设计思想也发生了明显的变化,主要体现在如下方面。

(1) 使用API函数封装底层具体的硬件,而应用程序开发者只需要调用这些API函数即可,这样就显著降低了应用程序对底层的依赖性,使得应用程序具有更好的可移植性。

(2) 在单片机程序开发中,引入操作系统的支持,这样可以支持多任务的分时协同同步处理,显著提高了复杂应用程序的可靠性。


3.2.1明确软件需求

对于编写软件代码的程序员,在开始编写软件代码前,需要明确并完成下面的要求。

(1) 了解所提供的硬件的性能。

(2) 了解STC单片机的软件开发环境Keil μVision5所能实现的功能。

(3) 明确软件代码所要实现的功能。

(4) 绘制用于表示软件代码实现过程的数据流程图和程序流程图。

(5) 进一步明确程序的概要设计和详细设计方案。

3.2.2创建设计工程

在使用Keil μVision集成开发环境创建设计工程时,需要完成下面的任务。

(1) 指定工程所在的路径和文件夹。

(2) 命名工程。

(3) 从单片机元器件库中,找到STC单片机元器件库,并添加软件开发所使用的单片机型号。

3.2.3编写汇编/C程序代码

在创建完设计工程后,需要编写汇编/C程序代码,包括如下内容。

(1) 如果使用汇编语言开发软件代码,则添加汇编源文件; 如果使用C语言开发软件代码,则添加C源文件。

(2) 通过Keil μVision集成开发环境提供的编辑器,在源文件中输入汇编/C语言代码。

在程序设计中,软件代码是指与C/汇编语言相关的文件类型,包括.h头文件、.c文件和.a51汇编文件等。

(3) 编写完汇编/C程序代码后,保存设计源文件。

3.2.4汇编器对汇编语言的处理

汇编器允许程序员使用MCU助记符指令编写程序代码。在一些对速度、代码长度和对硬件控制的精确程度有要求的应用中,必须使用汇编语言编写代码。Keil开发环境中的汇编器软件工具将汇编语言助记符翻译/转换为可执行的机器码,同时支持源码级符号调试,以及对宏处理的强大能力。

汇编器将汇编代码源文件翻译成可重定位的目标模块,以及可以创建带有符号表和交叉引用细节的列表文件。并且,将完整的行号、符号和类型信息写到所生成的文件中。通过这些信息,可以在调试器中准确地显示程序变量,行号则用于μVision调试器和第三方调试工具的源代码级调试。

Keil汇编器支持不同类型的宏处理器(取决于结构)。

(1) 标准宏处理器(Standard Macro Processor,SMP)。它是一种比较容易使用的宏处理器,允许在汇编程序中使用与其他汇编器兼容的语法规则来定义和使用宏。

(2) 宏处理语言(Macro Processing Language,MPL)。它是字符串替换工具,与Intel的ASM51宏处理器兼容。MPL包含一些预定义的宏处理器函数,它提供了一些有用的操作,比如字符串操作和数字处理。

在程序设计中,使用宏减少了开发和维护时间。汇编器提供的宏处理器还具有其他特点,包括根据命令行命令对汇编程序进行有条件汇编。代码部分的有条件汇编可以帮助程序员设计出最短长度的代码,同时也允许从相同的汇编源文件中生成不同的应用程序代码。

3.2.5C编译器对C语言的处理

Keil ANSI C编译器可以用于为STC 8051结构的单片产生快速压缩的代码。与通过汇编器转换的汇编语言相比,采用通过C编译器转换的C语言编程同样可以得到高效率的目标代码。对于程序员而言,与采用汇编语言编写代码相比,使用以C语言为代表的高级语言编写代码具有下面的优势。

(1) 不要求掌握处理器指令集的知识,只要求最初级的处理器架构知识。

(2) 由编译器负责寄存器的分配、不同存储器类型和数据类型的寻址。

(3) 当程序接收到正规的结构时,可以将其分解成不同的函数,这样就有利于源代码的重用,使得应用程序结构更好。

(4) 将带有指定操作的不同选择进行组合,可以提高程序的可读性。

(5) 所使用的关键字和操作函数更接近人的思维习惯。

(6) 极大地缩短了软件开发和调试的时间。

(7) C运行库包含很多标准的例程,比如: 格式化输出、数字类型转换和浮点算术运算。

(8) 采用了模块化的程序结构,因此很容易将已经存在的程序包含到新的程序中。

(9) C语言遵循ANSI标准,因此它非常容易移植,即很容易将应用从一个处理器架构移植到另一个处理器架构中。

3.2.6库管理器生成库文件

库管理器创建和维护目标模块库,这些目标模块库由C编译器和汇编器创建。库文件提供了一个便捷的方式,用于引用和组合大量可以被链接器使用的模块。

通过使用库,链接器可以解析用于当前程序的外部变量和函数,提取库中的模块。如果需要的话,可以将其添加到当前的应用程序中。在应用程序中,没有被调用的那些模块中的例程不会出现在最终的输出文件中。链接器从库中所提取的目标模块可以像其他模块那样被正确地处理。

在程序设计中,使用库的好处主要包括安全、运行速度快以及能够将代码长度降到最小。库可以提供大量的函数和例程,不需要给出源代码。

程序员使用μVision工程管理器提供的库管理器建立的是库文件,而不是可执行程序。可以在Options for Target对话框的output标签页面下,选中Create Library前面的复选框,或者通过命令提示符调用库管理器。

3.2.7链接器生成绝对目标模块文件

链接器/定位器将目标模块组合为一个可执行程序,它解析外部和共同的引用,并且为可重定位的程序段分配绝对地址。链接器处理由编译器和汇编器所创建的目标模块,并且自动包含所需要的库模块。

程序员可以从命令行调用链接器,或者让μVision自动调用它。默认的链接器命令可以适配大多数的应用程序,无须使用额外的选项。但是,它也可以为应用程序指定设置。

注意: 在Keil μVision完成编译和链接,生成目标文件后,会生成下面的文件。

(1) .lst: 对应文件在编译器中的行号,占用的代码空间等。

(2) .lnp: 对应项目,包含了什么文件,生成什么文件等信息。

(3) 无后缀文件: 这个是最终生成的文件。

(4) .obj: 是编译器生成的目标文件。

(5) .m51: 这个文件很重要,可以用文本编辑器打开。当软件设计中出现问题时,必须通过这个文件才能分析这些问题,比如覆盖分析,混合编程时查看函数段名等,里面都是链接器的连接信息,例如有哪些代码段、数据段,都是多大,被定位到单片机哪个地址,哪个函数调用了哪个函数,没有调用哪个函数,工程代码总大小,内存使用总大小等。

3.2.8目标到HEX转换器

目标到HEX转换器用于将链接器所创建的绝对目标模块转换为Intel十六进制文件。Intel十六进制文件是ASCII文件,它对应用程序的十六进制表示。通过STC公司提供的stcisp软件,可以将Intel十六进制文件写到STC单片机的程序存储器Flash中。

3.2.9调试器调试目标代码

μVision集成开发环境中集成了图形化的调试器,它提供的特性如下。

(1) 不同单步模式的C源代码级或者汇编代码级的程序执行。

(2) 访问复杂断点的多重断点选项。

(3) 用于查看和修改存储器、变量和MCU寄存器的窗口。

(4) 列出了用于调用栈窗口的程序调用树。

(5) 用于查看片上控制器外设状态细节的外设对话框。

(6) 用于调试命令入口的命令提示符和类似C的脚本语言。

(7) 记录了运行程序时间统计信息的执行统计。

(8) 用于安全性比较苛刻的应用测试的代码覆盖统计。

(9) 记录和显示变量和外设I/O信号值的逻辑分析仪。

该调试器提供了下面两种工作模式,包括仿真器模式和目标模式。

1. 仿真器模式

仿真器模式将调试器配置为只用于软件产品,即精确的模拟目标系统,包括指令和片上
外设。这允许在有可用的真实硬件平台之前,提前对应用程序代码进行测试,这样可以加速嵌入式系统的软件开发过程。在仿真器模式下,下面是调试器提供的特性。

(1) 允许在没有实际硬件平台的情况下,在计算机上对代码进行测试。

(2) 软件进行早期的功能调试,改善软件整体可靠性。

(3) 允许设置硬件调试器不允许的断点。

(4) 相对于添加了噪声的硬件调试器仿真可以提供优化的输入信号。

(5) 允许贯穿信号处理算法的单步运行。当MCU停止时,会阻止外部信号。

(6) 使对会破坏真实外设的失败场景的检查更加容易。

2. 目标模式

在目标模式下,调试器将与真实的STC单片机硬件系统进行连接。使用调试界面下已经提供的STC Monitor51 Driver驱动程序对STC单片机系统进行调试。通过USB串口电缆,将PC的USB口和STC单片机的串口进行连接,通过STC单片机串口对实际硬件目标系统进行调试。

思考与练习31: 在对编程语言(汇编/C)的处理过程中,编译器/汇编器的作用是。

思考与练习32: 在对所生成的目标代码处理时,链接器的作用是。

思考与练习33: 对单片机进行的调试,分为模式和模式,它们各自的作用。(提示: 分为仿真器模式和目标模式,也称为软件仿真模式和硬件调试模式,有些也称之为脱机调试和连机调试模式。)



视频讲解


3.3Keil μVision基本开发流程的实现

本节将通过一个简单的C语言程序,对C语言程序框架及开发流程进行详细说明。内容包括建立新的设计工程、添加新的C语言文件、设计建立、下载程序到目标系统、硬件在线调试。 

3.3.1建立新的设计工程

本节将建立新的设计工程,建立新设计工程的步骤如下。

(1) 打开μVision5集成开发环境。

(2) 在μVision5集成开发环境主界面主菜单下,选择Project→New μVision Project。

(3) 出现Create New Project对话框,选择并定位到合适的路径,然后在文件名右侧的文本框中输入top。

注意: 表示该工程的名字是top.uvproj。
可在本书配套资源的STC_example\例子31目录下,在Keil μVision5集成开发环境下打开该设计。

(4) 单击OK按钮。

(5) 出现Select a CPU Data Base File对话框,在其中的下拉框中,选择STC MCU Database选项。

(6) 单击OK按钮。


(7) 出现Select Device for Target‘Target 1’...对话框界面,如图3.11所示。在该界面上方的下拉框中,选择STC MCU Database。然后,在下面的左侧窗口中找到并展开STC前面的“+”。可以看到以列表的形式给出了可用的STC单片机型号。在展开项中,找到并选择STC15W4K32S4。



图3.11器件选择界面


注意: ① 全书涉及的是STC公司的IAP15W4K58S4单片机。该单片机属于STC15W4K32S4系列。

② 当使用STC8系列单片机时,根据使用的硬件平台选择所对应的单片机型号即可。


(8) 单击OK按钮。

(9) 出现Copy‘STARTUP.A51’ to Project Folder and Add File to Project?对话框界面。该界面提示是否在当前设计工程中添加STARTUP.A51文件。



图3.12新建工程界面

(10) 单击“否(N)”按钮。

(11) 在主界面左侧窗口中,选择Project标签。在该标签窗口下,给出了工程信息,如图3.12所示。


其中,顶层文件夹名字为Target1。在该文件夹下,存在一个Source Group 1子目录。

3.3.2添加新的C语言文件


本节将为当前工程添加新的C语言文件。添加C语言文件的步骤如下。

(1) 在图3.12中右击Source Group 1出现浮动菜单。在浮动菜单内,选择Add New Item to Group ‘Source Group 1’选项。

(2) 出现Add New Item to Group‘Source Group 1’对话框,如图3.13所示,按下面设置参数。

① 在左侧窗口中,选中C File(.c)。

② 在Name右侧的文本框中输入main。


图3.13选择C语言文件模板


该C语言的文件名称为main.c; 
如果使用汇编语言编程,则选择Asm File(.s)。


(3) 单击Add按钮。


(4) 在图3.12所示的Project窗口中,就会在Source Group 1子目录下添加名字为main.c的C语言文件。

(5) 在右侧窗口中,自动打开main.c文件。

(6) 输入C程序代码,如代码清单31所示。

代码清单31main.c文件

sfr P4 =0xc0; //定义P4端口的地址

sbit P46=P4^6;              //定义P4.6引脚

void main()

{

long int i=0;

while(1)

{

P46=0;                  //设置P4.6引脚为低

for(i=0;i<100000;i++);  //延迟

P46=1;                  //设置P4.6引脚为高

for(i=0;i<100000;i++);  //延迟

}		

}

(7) 保存设计代码。

3.3.3设计建立

本节将对设计建立(Build)参数进行设置,并实现对设计的建立过程,其步骤主要包括:

(1) 在如图3.12所示的窗口中,选中Target 1文件夹,并右击,出现浮动菜单。在浮动菜单内,选中Options for Target ‘Target 1’...选项。

(2) 出现Options for Target ‘Target 1’对话框界面。在该对话框界面下,选中Output选项卡,如图3.14所示。在该选项卡界面下,选中Create HEX File的复选框。 



图3.14Output标签页下的选项


注意: 该设置用于说明在建立过程结束后,会生成可用于编程STC单片机的十六进制HEX文件。

(3) 单击OK按钮,退出目标选项对话框界面。



图3.15建立过程中输出的信息

(4) 在主界面主菜单下,选择Project→Build target。开始对设计进行建立的过程。在下面的Build Output窗口中给出了建立过程的信息,如图3.15所示。从该窗口输出的信息可知,建立过程包括编译(compile)、链接(link),并且最终生成top.hex文件。

3.3.4下载程序到目标系统


本节将使用STC公司专用的下载工具STCISP,将top.hex文件下载到单片机的片内程序存储器中,步骤如下。

(1) 打开AIappISPV6.94X软件工具。

(2) 通过USB电缆将STC单片机硬件开发平台和PC连接。

(3) 单击“打开程序”按钮,定位到STC_example\例子31\Objects目录下,选择top.hex文件。

(4) 单击AIappISPV6.94X软件左下方的“下载/编程”按钮。

(5) 操作目标系统的上电按钮,使得单片机系统先断电再上电。

(6) AIappISPV6.94X工具自动将top.hex文件下载到单片机IAP15W4K58S4的程序存储器中。

思考与练习34: 观察开发平台上LED的状态,验证设计是否成功。



3.3.5硬件在线调试

硬件在线调试(硬件仿真)是IAP15W4K58S4提供的一个重要的功能,通过硬件在线调试能够发现软件仿真时不能探测到的一些更深层次的设计问题。比如: 当程序不能响应外部中断的时候,可能有以下几种情况: 全局中断没有使能; 对应的外部中断没有使能; 中断服务程序代码有问题(没有进入中断服务程序; 没有从中断服务程序正常返回),这些可能性只有通过硬件在线调试功能才能确认。因此,软件仿真绝不能代替硬件在线调试。

本节将通过该设计实例,介绍硬件在线调试的基本设计流程,主要步骤如下。

(1) 保持定位在刚才的top.hex文件目录下,并且使STC单片机开发平台通过USB正确连接到PC的USB接口。



图3.16Keil仿真设置入口

(2)  打开STCISP软件,在该软件工具右侧找到并打开Keil仿真设置选项卡,如图3.16所示。在该选项卡设置界面中,单击“将所选目标单片机设置为仿真芯片(宽压系统,支持USB下载)”按钮。

(3) 给STC单片机开发平台执行先断电再上电的操作,将top.hex文件成功下载到STC单片机中。

(4)  在Keil μVision集成开发环境的Project窗口中单击Target,出现浮动菜单。在浮动菜单内,选择Options for Target ‘Target 1’...选项。

(5)  在Options for Target ‘Target 1’对话框中单击Debug标签,如图3.17所示。在该标签界面中,将默认选中Use Simulator前面的复选框切换到选择Use的复选框。并且在Use的下拉框中选择STC Monitor51 Driver。
Use Simulator用于软件仿真(脱机仿真),而Use: STC Monitor51 Driver用于硬件仿真(在线调试)。



图3.17Keil仿真目标设置


(6) 单击下拉框右侧的Settings按钮,出现Target Setup对话框。特别要注意,这里选择的COM Port应该与STCISP软件中所检测到的串口号相同,在此处使用COM8设置(根据自己PC的串口号),Baudrate(波特率)默认设置为115200。

(7) 单击OK按钮,退出Target Setup对话框。

(8) 单击OK按钮,退出Options for Target ‘Target 1’对话框。



图3.18在C源文件上设置断点

(9) 打开main.c文件,单击第9行和第11行所对应的灰色区域,为第9行和第11行代码设置断点。

(10) 在Keil μVision集成开发环境主界面主菜单下,选择Debug→Start/Stop Debug Session选项,进入调试器界面。

(11) 在调试界面内按F5键,进行硬件断点调试(见图3.18)。此时可以观察STC硬件开发平台上LED灯的变化情况。

(12) 调试完成后,通过再次选择Debug→Start/Stop Debug Session选项,退出调试器界面。

思考与练习35: 硬件在线调试体现软件和硬件协同调试的重要思想,通过尝试执行纯软件仿真,比较并体会两者的联系和区别。