本应用笔记介绍如何使用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评估板的电源。
选择选项 ->配置串行端口。将串行端口选项设置为 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 的调试输出。
国家智能传感器创新中心招蜂引蝶,mCube签约落户上海嘉定
LC振荡电路设计
碳基芯片能否取代硅基芯片?
第四屏之无纸时代
电机驱动器 PCB 布局准则你知道多少
将Keil μVision调试器与DS52x0安全微控制器配合使用
串口屏解决方案:大彩智能屏在美容行业的应用
小米发布第二代电视产品,售1999 元人民币
黄章“翻身之作”魅族新旗舰机在北京正式发布
常用运算放大器
SystemVerilog中的Protected成员
我国电缆行业发展状况
鹏博士转让宽带用户,加快向新兴领域转型
为提升电动汽车的充电速度有什么办法
倾倒开关工作原理及功能简析
纳米技术在微电子连接上的设计应用
云南省将“互联网+会诊”服务进一步拓展
大数据华而不实么?大数据的本质是什么?
金典始终致力于给消费者提供高品质、高营养的有机奶
深度扫描功能上线!一键扫除电脑隐形故障