将Keil μVision调试器与DS52x0安全微控制器配合使用

描述

本应用笔记介绍如何使用Keil μVision2工具套件调试DS5250高速安全微控制器的应用。该过程包括将调试监视器应用程序加载到DS5250中,DS2通过选定的串行端口与Keil μVision<>通信。

本应用笔记的所有开发均使用DS5250和DS52x0评估板(Rev A)完成。C 应用程序是使用 Keil 的 μVision2 版本 2.40 和 Keil C51 编译器版本 7.10 创建和编译的。调试监视器使用微控制器工具套件(MTK)52.0.2版本加载到DS2x0评估板RAM中。

安装 Keil 调试监视器

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

 

使用的串行端口 使用的计时器 晶体速度 监视器文件名
串行端口 0 定时器 1 11.0592兆赫 周一5250s0x11.hex
串行端口 0 定时器 1 22.1184兆赫 周一5250s0x22.hex
串行端口 1 定时器 1 11.0592兆赫 周一5250s1x11.hex
串行端口 1 定时器 1 22.1184兆赫 周一5250s1x22.hex
外部串行端口 2 没有 任何 周一5250s2.十六进制

 

要获取这些文件,请通过我们的模拟支持中心联系微控制器技术支持小组。

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

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

应将直通 DB9 串行电缆从主机 PC 上的 J3 (串行 0) 连接到 COM1。

应插入 11.0592 MHz 或 22.1184 MHz 晶体。(可以使用不同的晶体速度,但这会导致与加载器通信时具有不同的波特率。

除 A1-A4、B1 和 B2 应打开外,所有 DIP 开关都应关闭。

接下来,安装微控制器工具包 (MTK) 软件包,该软件包可在 https://www.analog.com/en/product-category/microcontrollers.html 加载调试监视器:

打开 MTK。在微控制器类型对话框中,选择DS5240/50

打开DS52x0评估板的电源。

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

选择“目标”->以 1 波特打开 COM9600

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

应出现加载程序提示符(DS5250 安全加载程序...)

在加载程序提示符下,键入“W MSIZE 12”并按回车键。

在加载程序提示符下,键入“W MCEN E0”并按回车键。

在加载程序提示符下,键入“W MCON 81”并按回车键。

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

加载完成后,选择“目标 ->关闭 COM1”。

关闭DS52x0评估板的电源。将 DIP 开关 B1 设置为 OFF 位置。

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

微控制器

图1.使用 MTK 加载调试监视器。

创建和编译 C 应用程序

本节描述使用Keil的μVision5250集成开发环境为DS2创建和编译示例C应用的过程。

创建新项目

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

将出现“为目标选择设备”对话框,如图 2 所示。在“数据库”下,选择“达拉斯半导体DS5250”。选中“使用扩展链接器”和“使用扩展汇编程序”框,然后单击“确定”继续。

微控制器

图2.为新的Keil μVision5250项目选择DS2。

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

设置项目选项

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

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

内存模型 - 设置为大:XDATA 中的变量

代码 ROM 大小 - 设置为连续模式:16 MB 程序

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

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

在对话框的片外 Xdata Memory 部分中,将前两个字段设置为 Ram 开始:0x8000RAM 大小:0x10000

微控制器

图3.DS5250的目标选项设置。

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

选择使用,然后选择 MON390 - 达拉斯连续模式

单击设置按钮并选择 COM19600 波特

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

微控制器

图4.DS5250的目标调试设置。

添加项目代码

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

#include 
#include 

void main()
{
   while (1) {
      P0 = 0x80;
      P0 = 0x40;
      P0 = 0x20;
      P0 = 0x10;
      P0 = 0x08;
      P0 = 0x04;
      P0 = 0x02;
      P0 = 0x01;
   }
}

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

接下来,打开文件 START390。A51 并注释掉以下行(在 STARTUP1 标签之后):

;         MOV     TA,#0xAA        ; Enable access to P4CNT
;         MOV     TA,#0x55
;         P4CNT_VAL EQU (SBCAN SHL 6) OR (PCES SHL 3) OR (P4PF)
;         MOV     P4CNT,#P4CNT_VAL
;
;         MOV     TA,#0xAA        ; Enable access to P5CNT
;         MOV     TA,#0x55
;         P5CNT_VAL EQU (SP1EC SHL 5) OR (CX_IO SHL 3) OR (P5PF)
;         MOV     P5CNT,#P5CNT_VAL
 

达拉斯半导体DS5250监视器自动将微控制器设置为连续模式。因此,微控制器会错误地解释第一个指令地址。对 START390 进行此附加更改。A51 文件:

?C_STARTUP      LABEL   NEAR

$IF MONITOR
                LJMP    STARTUP1
$ELSE
                DB      02H     ; LJMP in Classic 8051 Mode
                DW      WORD0 STARTUP1
                RSEG    ?C_C51STARTUP
$ENDIF
 

然后在“项目-组件”、“环境和书籍-项目组件”中创建新目标,并将该新目标设置为当前目标。在项目 - 目标选项 - AX51 中添加条件程序集控制符号 MONITOR。

编译项目

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

微控制器

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

调试项目

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

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

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

如果您使用的是调试监视器的串行 2(外部串行)版本,则应使用 DB1 到 6x2 适配器电缆将串行电缆从 COM9 连接到套件板上的 J2 / SERIAL 5 连接器。

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

DS5250的调试监视器具有以下限制。

使用监视器时,您无法启用扩展堆栈。监视器使用此区域进行数据存储。

申请必须从0x8000开始。

应用程序不得写入矢量 RAM。

使用外部串行监视器时,不支持串行中断模式。

微控制器

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

审核编辑:郭婷

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

全部0条评论

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

×
20
完善资料,
赚取积分