引言
在设计DS80C400硅软件时可以由C 语言编程者来访问
C 语言编程者可以访问网络堆栈存储器管理器
自然
地
调试手段之一是使用Keil 的MON390
?aê1ó??àêó?÷
±??aó|ó?±ê????ê?á??aD?òòêy
演示所需要的条件
本篇应用笔记描述如何使用TINIm400模板和TINIs400接口板
另外还需要两条串行电缆
并用于从用户程序中读取标准
输出
并需要通过一个插针/插孔
转换器或一个空调制解调适配器连接下图所示为接口板和主板连接着两条串
行电缆(一条与空调制解调适配器相连)
图1. 使用监视器工作时所需的连接器
应用笔记 2777
用Keil MON390 编程TINIm400
请确认已下载Keil uVision2 IDE的最新版本(https://www.wendangku.net/doc/5717881179.html,提供下载)uVision2 IDE的最新
版本为2.37
为了解使用与DS80C400相关的Keil工具
它提供了更全面的介绍如何开始编程和执行程序
生成和下载监视器程序至TINIm400模板
文件mon400.hex必须从Keil源程序中生成工程文件应该包括了监视器源
程序打开工程文件mon400.Uv2
并存放在同一目录下就可以115200波特率使用TINIm400的串口2与监视器主机通信
JavaKit是TINI SDK的一部分
请按照docs\Running_JavaKit.txt(也是TINI SDK下载的一部分)文
件中的指示安装和运行JavaKit?éò??úhttps://www.wendangku.net/doc/5717881179.html,/mailman/listinfo/tini中查到TINI问题列表目录并在线提
供了解决方案
打开与DS80C400的串行装载器通信的PC串口
一旦该端口被打开将出现DS80C400装载器提示窗口
DS80C400 Silicon Software - Copyright (C) 2002 Maxim Integrated Products
Detailed product information available at https://www.wendangku.net/doc/5717881179.html,
Welcome to the TINI DS80C400 Auto Boot Loader 1.0.1
>
从这里开始File Load HEX as TBIN并找到mon400.hex文件然后
可以看到如下显示信息
输入并回车但监视程序已经开始运行
用Keil监视器实现HelloWorld
Keil为监视器提供了一个简单的HelloWorld型应用的源程序可以被编译连
接快速显示其功能在这一节将讲述如何配置一个简单的
以便开发者可以在自己的工程文件中使用监视器程序
我们给工程文件起名hellomon′óDallas Semiconductor下的列表中找到DS80C400Use Extended Linker Use Extended Assembler è?oóμ??÷OK继续
Copy Dallas DS80C390 Startup Code to Project Folder and Add File to Project 时No我们将提供自己的启动代码
在uVision2 IDE应用程序中打开Source Group 1选择并点击Add Files to Group ‘Source Group 1’?????t1y???÷???astartup400.a51并点击
Source Group 1?í?é?′μ??′3ìDò???t??μ¥
?òμ?USE_MONITOR的定义使该行代码如下
$set (USE_MONITOR = 1)
同时将XTALMULT也设置为1
Target 1并选择Memory ModelLarge
Code Rom Size Contiguous Mode
Use On-Chip Arithmetic Accelerator’far’ memory type support栏目中Start0x70000作为Size的大小在Off-chip XDATA Memory中填入0x10000Size
图2. 步骤5配置选项
6) 继续在对话框中选择Debug选项一个是
Use紧接着一个下拉列表框在下拉列表框中选择Setting????á??óμ?TINIs400接口板串口2的PC 机串口Baudrate并确认标记为的检查框被选中
图3. 调试器的配置选项
7) 按F7键编译连接的结果应该没有出错信息
编译连接与将监视器装载到TINIm400模板进入菜单Start/Stop Debug Session在IDE的左侧现在监视器已经在运行
9) 在菜单下选择用同样的方法打开
和Symbol Window处选择CurrentMAIN这样将显示在main()方法中使用到的局部变量的地址Memory Window±ê???a的编辑框中键入i: 0x00???éò?·¢??×ó2à??′??÷r0至r7对应的数值
图4. main()方法中观察窗口所显示的内容
图5. 设置为观察内部RAM的存储器窗口
10) 回到源程序文件main.c
2¢?????ó??à′°′F5键运行一个黄色箭头指向当前执行到的代码行局部变量array, i和j将出现在观察窗口
如果JavaKit仍是打开的状态那么
的信息将显示在JavaKit终端
注意到随着新代码的运行同时寄存器和SFR内容也在变化你也可以使用符号表中提供的地址
如果要停止调试Debug Start/Stop Debug Session如果需要再次启动监视器程序并键入)或重新上电来复位电路板
App Note 2777: 在TINIm400中使用Keil的MON390 程序为了能够中断运行代码要实现这个功能
ES2 = 1;
不过那么找到那一行$IF (SERIAL = 2)?ú???ü??oˉêy?áê?μ?μ?·?2?è?ò?DD
orl T3CM, #040H ; 打开定时器3
orl SCON2,#002H ; 串口2发送标志置位
setb es2 ; 这一行是新添加的!!!
JMP MONSTART
重新编译连接并重新装载监视器程序在程序末尾的循环部分插入一行
按F5键通过每个断点然后按下停止按钮也可以单步执行
USING DS80C400 LIBRARIES WITH THE KEIL MONITOR
用KEIL 监视器调用DS80C400程序库
当在程序中调用DS80C400 C程序库时任何一个使用到C程序库的应用程序都需要调用init_rom函数可是
为了修改init_rom函数所作的某些改动应紧接着调用init_usekeilmonitor函数为了使该调用更直观
如果在应用程序中作如下行定义后
#define MONITOR
以下将通过一个简单的联网应用程序来演示这个过程
用作数学运算服务器(该应用程序将接收两个16位数执行上一节的步骤1到6μ±è?
?′′ú???éò??ú±??aó|ó?±ê??μ??′3ìDò??μμ?D?òμ?1°üà¨DHCP 库插件任务调度程序使用的方法与添加startup400.a51和main.c文件相同可以使用该工程现成的工程文件只要打开该文件
2) 首先来观察执行的过程
Output选项下并从下拉列表框中选择HEX-386
???ˉ′ú???DUSE_MONITOR的值可以保持1
±àò?á??óoó?á2úéúò?D?oˉêy?′±?μ÷ó?μ??ˉ??
?éò?o????ü??
×°??éú3éμ?hex文件(在本例中在装载完成后再键入X回车几秒钟以后
4) 在命令提示窗口中这个java程序是客户端应用程序
javac connect.java
5) 接下来在PC上运行connect程序第二个参数是端口号
该命令行如下所示
java connect 180.0.6.131 15555
DS80C400代码将分别以十六进制和十进制形式显示收到的数字
并显示信息
6) 停止客户端
7) 在main.c文件中找到函数init_romó|???ó×?μ÷ó?USE_KEIL_MONITOR宏
该宏功能什么都没有做该宏功能会调用一个函数回到文件main.c的开始部分
按F7键编译连接该工程文件
回到Project Options窗口的Debug选项
接下来使用监视器开始调试并按F5键运行
当单步执行完do_dhcp()以后
9) 在tcp_test()函数中调用recv之后的下一行代码if (temp != 0xFFFF)处设置断点并观察JavaKit
的输出调试器将到达新的断点从调用send开始到调用recv以后监视器程序暂停DS80C400执行
使用Keil监视器的局限性
目前不过随着Keil今后监视器程序新版本的发布
使用Keil监视器时
Keil监视器程序对调试网络应用程序来说并不理想监视器使所有中断都不能被触发Ethereal (https://www.wendangku.net/doc/5717881179.html,/)是调试网络传输程序的好工具
通常如果不起作用
结论
Keil监视器程序为Dallas Semiconductor连续存储器模式处理器提供了一种有效的工具
该监视器程序可以与其他方法结合使用该监视器程序是一套完整
技术中的一部分
相关链接
ftp://https://www.wendangku.net/doc/5717881179.html,/pub/tini/ds80c400/c_libraries/appnotes/monitor_appnote_source.zip
TINI软件开发套件
https://www.wendangku.net/doc/5717881179.html,
高速微控制器用户指南
https://www.wendangku.net/doc/5717881179.html,/arpdf/Design/DS80C400UG.pdf C程序库工程文件主页
https://www.wendangku.net/doc/5717881179.html,/j2se/downloads.html
Java通信API
在DS80C400中使用Keil工具
Maxim Integrated Products, Inc.
120 San Gabriel Drive Sunnyvale, CA 94086 Phone: 408-737-7600 Fax: 408-737-7194 Dallas Semiconductor 4401 S. Beltwood Parkway Dallas, TX 75244 Phone: 972-371-4448 Fax: 972-371-4799
产品说明/样品申请网址
https://www.wendangku.net/doc/5717881179.html,/MaximProducts/products.htm 订购信息
ftp://https://www.wendangku.net/doc/5717881179.html,