本文主要介绍使用ISD51对CH55x单片机的仿真方法,并给出简单操作例程。
优点
无需硬件电路需求;
可以存在于最终产品中,ISD51免费使用;
串口可继续用于通信,或printf()打印调试。
缺点
使用软件断点程序运行速度相对较慢;
若其他和ISD51系统中断优先级一样或更高,系统就不能再设置断点或单步执行,默认状态ISD51中断函数优先级为0;
仅能ISD51中断和全局中断全部打开时ISD51才能生效,如此,也可以使ISD51在程序运行时停止工作。
支持功能
基本硬件调试功能都能支持,如:变量监视,设置断点等。
使用方法
1.将ISD51.A51和ISD51.H加入项目工程;
2.初始化串口,配置合适的波特率,最后必须使能全局中断;
3.选择合适的ISD51初始化函数;
ISDinit():初始化并运行用户程序,如果KEIL与单片机通信成功,程序就会立即终止运行
ISDwait():初始化ISD51并一直等待KEIL连接上
ISDcheck():周期性检查ISD51连接
4.编译用户程序烧录到单片机内;
5.在KEIL -> option for target -> DEBUG 设置选择ISD51 In-system Debugger,在setup里设置与ISD51串口初始化相对应的串口波特率。
6.点击DEBUG按钮进入硬件调试模式。
ISD51接口函数可在KEIL帮助文档中查到。
图1 ISD51配置设置
波特率与COM口根据需要自己设置,因为IDS51为动态配置连接,所以ISD51 Identification 信息可以忽略。
错误排查:
1: KEIL 串口的设置于MCU串口设置不匹配,如串口号,波特率等信息。
2:单片机只能使用串口0进行在线仿真,不可以使用其他串口。
仿真时可以先测试串口是否正常,先用串口调试工具下发0XA5,单片机正常跑DEBUG程序的时候会相应0xF7,0xFF,0x00,0x00,0x09,0x19,0xAC,如果收到如上所示代码,说明ISD设置正常。
3.必须先烧录带有ISD51的hex文件给单片机,之后才能进行硬件仿真