这两天闲着没事在整整51,发现一个比较爽的东西----ISD51(In System Debug),这是一个在线仿真的好东西,只需串口无需昂贵的仿真器就能使用Keil IDE的大部分仿真功能.经过一番摸索,终于把它搞定.先把资料整理整理.
概况
ISD51 (在线调试器)为8051编程用户提供了新的监控调试技术。将 ISD51 进行配置后与您的用户程序连接起来用户就可以通过8051的一个串口直接在芯片上调试程序了。
ISD51的软件和硬件可以工作于最小模式。它可以运行于带有外部或内部程序空间的系统并且不要求增加像冯.诺伊曼架构的数据存储器等的特殊硬件部件。
ISD51 可以工作在像 Philips LPC 系列之类的微型单片机上并且可以完全访问其 CODE 和 XDATA 地址空间。
特 点
- 用单步和复合软件断点控制程序执行。
- 观察和改变CPU寄存器和存储器。
- 有权使用 SFR。
- 支持一些8051单片机可用寄存器的硬件断点 。
- 当没有设置软件断点时,8051用户程序可以全速运行。 硬件断点不影响运行速度。
要 求
- 一个8051兼容串口。
- 500-700 字节的程序代码在相应数量的特殊寄存器中运行。
- 6 字节堆栈空间。
- 1 字节 IDATA RAM 。
- 为每个软件断点预留2 字节 IDATA RAM 。
优 点
- 对目标系统没有电路上的特殊要求。
- ISD51 可以被用于任何标准8051派生系列。
- 程序代码可以写在单片机内部 Flash/EPROM/ROM 或者外部 EPROM 中。
- 不再要求有冯.诺伊曼架构的存储器, XDATA 空间, 寄存器和位可寻址空间。
- ISD51 可以被连接或存在于最终成品中。ISD51 固件是可以免费使用的。
- 由于它仅在最初原代码可以被访问,所以 ISD51 能保护您的软件投资。
ISD51是如何工作的?
ISD51 在你的8051系统里增加了一个串口中断函数 (ISD51 中断) 。 当 ISD51 连接到 uVision调试器时, 8051 输入 ISD51的中断函数。只要到程序运行一被停止, 8051 就只运行 ISD51 中断服务程序。当 uVision2 调试器发出一个"Go"的指令, 8051就脱离 ISD51 中断函数并且运行用户程序。
如果没有设置任何断点或者如果所有断点设置为硬件断点, 8051 就会全速运行用户程序。如果设置了软件断点, 8051在相应8051 CPU指令后面输入 ISD51 中断函数 。ISD51 中断服务程序会检查是否8051程序到了一个断点地址,如果是&