将Keil μVision调试器与DS89C4x0配合使用

描述

本应用笔记介绍如何使用Keil μVision2工具套件调试超高速闪存系列微控制器的应用,包括DS89C430和DS89C450。此过程涉及将调试监视器应用程序加载到微控制器中,微控制器通过选定的串行端口与Keil μVision2通信。

概述

本应用笔记的所有开发均使用DS89C440和DS89C450评估板(Rev B)完成。C 应用程序是使用 Keil 的 μVision2 版本 2.40 和 Keil C51 编译器版本 7.10 创建和编译的。调试监视器使用微控制器工具包89.440.2版本加载到DS1C03闪存中。

安装 Keil 调试监视器

有两种不同版本的Keil调试监视器可用于DS89C4X0,具体取决于使用哪个串行端口与主机PC上的Keil μVision2通信。此串行端口将不可用于调试中的应用程序。

 

使用的串行端口 使用的计时器 晶体速度 监视器文件名
串行端口 0 定时器 1 16.384兆赫 mon4x0_v14_s0.十六进制
串行端口 1 定时器 1 16.384兆赫 mon4x0_v14_s1.十六进制

 

这些文件

可供下载

。上面给出的名称适用于最初发布的版本;任何以后的更新都将是“V15”、“V16”等。

在DS89C450评估板上加载选定的调试监视器之前,请按如下方式设置调试板:

6-9 伏直流电源(中心柱正极)应连接到电源插头 J1。

直通 DB9 串行电缆应从 J2(串行 0/加载器)连接到 PC 上的 COM1。

应在Y16处插入384.1 MHz晶体。

DIP 开关 SW1.1-7 和 SW4.1-2 应打开。所有其他 DIP 开关应关闭。

接下来,安装可下载的微控制器工具包 (MTK) 软件包。

加载调试监视器:

打开 MTK。在微控制器类型对话框中,根据插入套件板上DIP-89插槽的处理器类型,选择DS430C89、DS440C89或DS450C40。

打开DS89C450评估板的电源。

选择选项 -> 配置串行端口。 将串行端口选项设置为 COM1 和 14400 波特。

选择目标 ->以 1 波特打开 COM14400。

选择“目标”->“连接到加载程序”。

应出现加载程序提示符(DS89C4X0 加载程序版本...)

在加载程序提示符下,键入“K”并按 ENTER 擦除微控制器闪存。

从菜单中选择文件 -> 加载。选择要使用的调试监视器文件。

加载完成后,选择目标 ->关闭 COM1 并关闭微控制器工具包。

关闭DS89C450评估板的电源。

将拨码开关 SW4.1 设置为 OFF 位置。

请参阅下面的图 1,了解执行此过程时应出现在 MTK 中的输出。

评估板

图1.使用微控制器工具包加载调试监视器。

创建和编译 C 应用程序

本节介绍使用Keil的μVision89集成开发环境为DS430C440/450/2创建和编译示例C应用程序的过程。

创建新项目

在 Keil μVision2 中,从菜单中选择“项目 ->创建新项目”。输入新项目的名称。

将出现“为目标选择设备”对话框,如图 2 所示。在“数据库”下,选择“达拉斯半导体”和您正在使用的特定微控制器(DS89C430、DS89C440 或 DS89C450)。点击确定继续。

评估板

图2.为新的Keil μVision2项目选择设备。

一个新对话框将询问“将 8051 启动代码复制到项目文件夹并将文件添加到项目?选择“是”。

设置项目选项

当项目窗口在左侧打开时,打开“目标 1”。右键单击目标 1,然后选择目标“目标 1”的选项。将出现一个选项对话框。

选择“目标”选项卡。更改此选项卡中的设置,如下所示:

内存模型 - 设置为大:XDATA 中的变量。这告诉编译器在外部 MOVX RAM 中查找变量。这适用于使用硬件设置,例如高速微控制器评估板,该评估板为DS89C430/440/450提供外部数据存储器。

代码 ROM 大小 - 设置为大:64K 程序。

设置“使用多个 DPTR 寄存器”复选框。

在对话框的片外代码存储器部分中,将前两个字段设置为“Eprom 开始:0x8000”和“Eprom 大小:0x3FFF”。

在对话框的片外 Xdata 内存部分中,将前两个字段设置为 Ram 开始:0xC000 和 RAM 大小:0x3FFF。

评估板

图3.DS89C430/440/450的目标选项设置

接下来,选择“调试”选项卡,并按如下所示设置选项(如下面的图 4 所示)。

选择使用和 Keil 监视器-51 驱动程序

设置“启动时加载应用程序”和“直到 main() ”复选框。

单击设置按钮并选择 COM1 和 14400 波特。

评估板

图4.DS89C430/440/450的调试选项设置

添加项目代码

打开一个新文件并输入以下 C 代码:

#include #include main() {   int x = 1;   while (1) {      x++;   } }

将此文件另存为 main.c。该文件不会自动添加到项目中。要添加文件,请右键单击源组 1,然后选择将文件添加到组“源组 1”。选择 main.c 并单击添加,然后单击关闭。

编译和加载项目

若要编译项目,请按 F7,或从菜单中选择“项目 ->生成目标”。如果未发生错误,则会显示消息,指示编译已成功完成,如图 5 所示。

评估板

图5.来自Keil μVision的编译输出。

调试项目

在Keil μVision2中启动调试会话之前,请打开DS89C450评估板的电源,并验证串行电缆是否按如下方式连接:

如果您使用的是串行 0 版本的调试监视器,则应将串行电缆从 COM1 连接到套件板上的 J2 / SERIAL 0 连接器。

如果您使用的是串行 1 版本的调试监视器,则应将串行电缆从 COM1 连接到套件板上的 J3 / SERIAL 1 连接器。

从 Keil μVision2 的菜单中选择调试 ->启动/停止调试会话。如果一切连接正确,将加载编译的项目文件,Keil μVision2 将进入调试模式,如下图 6 所示。从这一点,您可以查看寄存器和变量值,执行分步、断点和其他操作。有关更多详细信息,请参阅 Keil μVision2 文档。

评估板

图6.Keil μVision 的调试输出。

DS89C4X0的调试监视器限制

DS89C430、DS89C440和DS89C450的调试监视器具有以下限制:

所有闪存和所有低于 8000h 的外部 MOVX 内存都保留供调试监视器使用。

使用任一版本的监视器时,将保留以下寄存器/位。

(定时器1)TCON.0-1, TCON.6-7, TMOD.4-7, TL1, TH1, CKCON.4, CKMOD.4

(一般)EXIF.1-2, ACON, ROMSIZE, PMR, WDCON

使用串行 0 版本的监视器时,将保留以下寄存器/位。

P3.0-1, PCON.6-7, SCON0, SBUF0

使用串行 1 版本的监视器时,将保留以下寄存器/位。

P1.2-3, SCON1, SBUF1

关于调试监视器的其他说明

中断将被重定向到适当的矢量加 8000h。例如,外部中断 0 将向量到地址 8003h。

在某些配置中,Keil μVision2 在执行 Go 操作超过几秒钟时可能会与调试监视器失去联系。如果发生这种情况,请通过跟踪代码或从一个断点运行到另一个断点来调试应用程序。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分