关于STC系列MCU,硬件仿真的心得。
介绍
STC-Monitor硬件仿真,和Keil提供的Keil-Monitor原理类似,都是通过在MCU的RAM或者ROM上开辟一段空间用来存放仿真程序。
在硬件仿真时,Keil先和这个仿真程序交互,这个仿真程序再控制我们自己写的程序,以此来实现断点、单步、全速、查看变量值、寄存器值等基本的仿真调试操作。
STC-Monitor分为两个部分,一个是安装在Keil中的调试组件(相当于上位机),一个是下载到MCU中的仿真程序(相当于下位机)。
操作
我们需要先把仿真程序烧录到我们的MCU中,才能让MCU具备仿真功能,在STC8系列里面,绝大多数型号是占用XRAM最后768个字节作为仿真程序的执行空间。烧录方法是使用STC-ISP助手的下载。
同理,上位机部分也是通过STC-ISP助手安装到Keil中(它和STC的芯片包一同注入到Keil当中)。
之后,在Keil里面选择硬件仿真,然后设置仿真COM口和波特率即可。
但我们有一些问题要特别注意,这是我们能够正确仿真的关键。
1.在Keil 的debug按钮按下之前,我们需要对MCU进行断电复位(最好是串口下载器也断电,防止其他应用占用这个COM口),让程序从仿真程序开始执行。
2.保证用户自己的程序,对XRAM的使用不得访问最后768个字节,也不能对这768个字节进行清零初始化( ELL已经对启动文件做了优化,大家不用担心)。
3.使用硬件仿真,会占用P3.0和P3.1两个IO口,要将串口1的工作IO切换到别的复用IO上。
4.仿真使用的通讯波特率(在Keil debug里面设置),要大于等于115200。
5.断点不易过多。
6.对于STC8,XRAM小于2K的型号,不建议使用硬件仿真,容易跑飞,可以先用资源丰富的型号仿真完毕,再烧录到对应MCU中。
7.仿真过程中,不能对MCU进行复位。
8.仿真过程中,要保证串口稳定(保证供电稳定)。
ZSXQ_20210525_153122656.png (976.16 KB)
关于STC系列MCU,硬件仿真的心得。
STC-Monitor硬件仿真,和Keil提供的Keil-Monitor原理类似,都是通过在MCU的RAM或者ROM上开辟一段空间用来存放仿真程序。
在硬件仿真时,Keil先和这个仿真程序交互,这个仿真程序再控制我们自己写的程序,以此来实现断点、单步、全速、查看变量值、寄存器值等基本的仿真调试操作。
STC-Monitor分为两个部分,一个是安装在Keil中的调试组件(相当于上位机),一个是下载到MCU中的仿真程序(相当于下位机)。
我们需要先把仿真程序烧录到我们的MCU中,才能让MCU具备仿真功能,在STC8系列里面,绝大多数型号是占用XRAM最后768个字节作为仿真程序的执行空间。烧录方法是使用STC-ISP助手的下载。
同理,上位机部分也是通过STC-ISP助手安装到Keil中(它和STC的芯片包一同注入到Keil当中)。
之后,在Keil里面选择硬件仿真,然后设置仿真COM口和波特率即可。
但我们有一些问题要特别注意,这是我们能够正确仿真的关键。
1.在Keil 的debug按钮按下之前,我们需要对MCU进行断电复位(最好是串口下载器也断电,防止其他应用占用这个COM口),让程序从仿真程序开始执行。
2.保证用户自己的程序,对XRAM的使用不得访问最后768个字节,也不能对这768个字节进行清零初始化( ELL已经对启动文件做了优化,大家不用担心)。
3.使用硬件仿真,会占用P3.0和P3.1两个IO口,要将串口1的工作IO切换到别的复用IO上。
4.仿真使用的通讯波特率(在Keil debug里面设置),要大于等于115200。
5.断点不易过多。
6.对于STC8,XRAM小于2K的型号,不建议使用硬件仿真,容易跑飞,可以先用资源丰富的型号仿真完毕,再烧录到对应MCU中。
7.仿真过程中,不能对MCU进行复位。
8.仿真过程中,要保证串口稳定(保证供电稳定)。