本应用笔记介绍如何使用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.十六进制 |
要获取这些文件,请通过我们的vwin 支持中心联系微控制器技术支持小组。
在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评估板的电源。
选择选项 ->配置串行端口。将串行端口选项设置为 COM1 和 9600 波特。
选择“目标”->以 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 开始:0x8000 和 RAM 大小:0x10000。
图3.DS5250的目标选项设置。
接下来,选择“调试”选项卡,并按如下所示设置选项(如下面的图 4 所示):
选择使用,然后选择 MON390 - 达拉斯连续模式。
单击设置按钮并选择 COM1 和 9600 波特。
设置“启动时加载应用程序”和“直到 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 的调试输出。
审核编辑:郭婷
-
微控制器
+关注
关注
48文章
7542浏览量
151310 -
连接器
+关注
关注
98文章
14476浏览量
136424 -
keil
+关注
关注
68文章
1212浏览量
166838
发布评论请先 登录
相关推荐
评论