ISD51 出版说明
In-System Debugger for 8051 Devices(8051单片机在线调试器)

此文档包含了最新版本的说明及最近的更新特别是对 ISD51 的说明(用户手册没有此说明)

Keil Software,Inc and Keil Elektronik GmbH保留所有此文件中涉及的信息、派生的用户手册以及软件的版权

/*如果发现有错误请提出---blu1译注*/


目 录

  1. ISD51 概况
  2. ISD51 是如何工作的
  3. ISD51 如何与用户程序整合
  4. ISD51 应用程序接口规则
  5. 如何设置 uVision2 用以针对 ISD51 的应用
  6. 使用ISD51调试
  7. 疑难解决
  8. ISD51 存在的一些问题
  9. 技术支持
  10. 联系方法

关于“ISD51 在线调试器”概况

ISD51 (在线调试器)为8051编程用户提供了新的监控调试技术。将 ISD51 进行配置后与您的用户程序连接起来用户就可以通过8051的一个串口直接在芯片上调试程序了。

ISD51的软件和硬件可以工作于最小模式。它可以运行于带有外部或内部程序空间的系统并且不要求增加像冯.诺伊曼架构的数据存储器等的特殊硬件部件。

ISD51 可以工作在像 Philips LPC 系列之类的微型单片机上并且可以完全访问其 CODE 和 XDATA 地址空间。

特 点

要 求

优 点

ISD51是如何工作的?

ISD51 在你的8051系统里增加了一个串口中断函数 (ISD51 中断) 。 当 ISD51 连接到 uVision2 调试器时, 8051 输入 ISD51的中断函数。只要到程序运行一被停止, 8051 就只运行 ISD51 中断服务程序。当 uVision2 调试器发出一个“ Go”的指令, 8051就脱离 ISD51 中断函数并且运行用户程序。

如果没有设置任何断点或者如果所有断点设置为硬件断点, 8051 就会全速运行用户程序。 如果设置了软件断点, 8051在相应8051 CPU指令后面输入 ISD51 中断函数 。ISD51 中断服务程序会检查是否8051程序到了一个断点地址,如果是,开始和 uVision2 调试器通讯。所以, 当使用软件断点时,8051 的程序运行速度会变得相当慢(相差100倍左右) 。

一旦“ISD51 系统在线调试器”被作为中断函数实现,其它和 ISD51 系统的中断优先级一样,甚至比ISD51优先级更高的中断函数中就不能再设置断点或者单步执行了。默认状态下,  ISD51 中断函数使用的中断优先等级为0级。  

uVision2 调试器发送一个 0xA5 的字符到 ISD51 的中断函数中,使用户程序停止并且开始与调试器通讯, 当 uVision2 调试器收到请求信号后,8051 就会开始执行程序。

ISD51 的副作用

使ISD51 和用户程序整合

要将ISD51加入你的设计,可以按以下步骤进行。

  1. ISD51.A51ISD51.H\C51\ISD51复制到你的项目夹(folder)里。
  2. ISD51.A51 加入你的 uVision2 项目(project)。
  3. ISD51.H 加入到 C 主程序函数里面(即在main()内使用 #include "ISD51.H"语句).
  4. 检查ISD51.H的配置设置,如果有必要可以根据你目标硬件的需要修改。默认的配置适合标准的带有256字节DATA/IDATA和带有标准的8051内部串口的标准8051器件。
  5. 将串口的初始化代码加入到你的C主函数里面,你可以从 \C51\EXAMPLES\HELLO 里面的示例程序里面找到
  6. 将适当的 ISD51 初始化函数 加入到你的 C 代码中。
  7. 编译用户程序并且将其用一般编程器烧写到 8051 器件内。

用于展示如何加入ISD51 在 \C51\ISD51\EXAMPLES 目录中找到。

ISD51 应用程序接口例行程序

ISD51 提供了数个定义您可以使用。 这些宏指令定义原型在 \C51\ISD51\ISD51.H  可以找到。

设置 uVision2 以适应 ISD51

一旦将ISD51加入到你的程序中, 你就可以设置 uVision2 调试器用于和 8051 目标系统的通讯。

  1. 在你开始 uVision2 调试器前,运行 8051 应用目标系统。
  2. 在uVision2中, 选择 Project - Options for Target - Debug: Use: Keil ISD51 In-System Debugger.
  3. 在同一会话框中, 选中 Load Application at Startup 以便 uVision2 调试器为你的 8051 用户程序进行特征引导。  
  4. 同一对话框中, 去掉 Go till main 的选择。你的用户程序将在8051目标系统的硬件复位后开始运行。
  5. 在同一对话框中, 打开 ISD51 驱动设置对话框设置以下各项:

COM 端口设置

RTS 和 DTS 的设置

存储器设置

ISD51 驱动工具数据缓存更快的在屏幕上更新。

代码的断点设置

这里的设置是 ISD51 究竟使用软件断点, 硬件断点, 还是两者的组合。

各种各样的设置

核实ROM中的运用程序和当前项目 设置选择在初始化ISD51通讯时是否要让 uVision2 ISD51 Debugger 驱动程序比较 8051 目标系统的程序代码和当前项目的程序代码。为了速度加快调试器和目标系统连接时间,你可以取消这个选项。

ISD51 识别

当 uVision2 Debugger 连接到运行于 8051 目标系统的ISD51上时显示版本号和情况信息。 在调试期间你可以打开 ISD51 驱动设置框查看这些信息。

使用ISD51进行调试

 uVision2 Debugger 一经设定, 您就可以点击 Debug - Start/Stop 开始调试。 uVision2 Debugger 通过 ISD51 软件连接到 8051 目标系统。

ISD51 支持最多的 uVision2 debugger 功能。 比如,你可以在整个代码期间执行单步,设置断点,并且运行您的应用系统。 使用标准的调试器功能能看到变化量。

当使用 IDS51 时  uVision2 的约束

在使用 ISD51 和 uVision2 调试器 的时候有一些您必须注意的约束。

疑难解决

如果 uVision2 调试器没有能够和 ISD51 硬件连接起来,您首先应该核实目标系统的串口是否被正确配置。如果您在使用 uVision2仿真时出现问题,应该检查以下各项:

  1. 选择 Project - Options for Target - Debug: Use Simulator.
  2. 用 Debug - Start/Stop Debug Session 开始进行程序的仿真。 这将用户代码装载到仿真模式。
  3. 开始运行用户代码 (Debug - Go).
  4. 核实 UART 在 Serial Port 对话框 (Peripherals - Serial)的设置。 如果你在 Project - Options for Target - Target - Xtal 中输入了正确的 XTAL 频率,波特率会被显示正确。 通常,波特率不会超过 PC 波特率的 100%,但也不能少于2.5%。
  5. 检查串口通讯 uVision2 仿真should then仿真 IDS51 中断并且显示从串口窗口发来的跟随在六或者更多十六进制数据后的数据 0xF7 。  

如果一切设置正确但一直不能连接到 IDS51 硬件, 您的 8051 代码可以在初始化串口后可以调用 following 函数。

/*
* 测试功能: 使用超级终端核实串口通讯
*/

void TestSerial (void) {
  char c = 'A';

  TI = 1;
  while (1) {
    if (RI) {
      c = SBUF;
      RI = 0;
    }

  while (!TI);

  TI = 0;
  SBUF = c;
  }
}

此函数通过串口输出 A 字符串。 如果你通过串口传送一个字符串到用户程序, 那个字符将会被替代传送。你可以像超文本终端一样检查这个用户终端程序并观察是否 8051 正确地输出一个 A 字符。

ISD51 存在的问题

这里列出所有已发现的 ISD51 In-System Debugger 的问题。

在使用TI MSC1210硬件断点时

TI MSC1210 使用寄存器实现硬件断点,当使用的时候, 可能会带来以下问题:

技术支持

在使用Keil 软件的同时, 我们致力为您提供最好的开发工具和技术支持。 这是我们为您提供众多解决方案的原因:您可以得到完成自己的嵌入式开发项目而需要的技术支持。

您可以在我们的站点上看到很多由我们为您提供的问题的解答, 如果您有任何好的建议,请 给我们意见!

联系方法

如果您在使用当中遇到有关此介绍的任何困难或问题,联系我们的 发行商 或相应办事处技术支持联系。

在美国...

Keil Software, Inc.
1501 10th Street, Suite 110
Plano, TX  75074
USA

800-348-8051 - Sales
972-312-1107 - Support
972-312-1159 - Fax

sales.us@keil.com
- 销售 E-Mail
support.us@keil.com
- 支持 E-mail 
  

在欧洲...

Keil Elektronik GmbH
Bretonischer Ring 15
D-85630 Grasbrunn
Germany

+49 89 456040-0 - Sales
+49 89 456040-24 - Support
+49 89 468162 - Fax

sales.intl@keil.com
- 销售 E-Mail
support.intl@keil.com
- 支持 E-Mail
  


Copyright © Keil Software, Inc. and Keil Elektronik GmbH.
All rights reserved.
Visit our web site at www.keil.com.