Keil C51 软件使用方法第八章Word格式.docx
《Keil C51 软件使用方法第八章Word格式.docx》由会员分享,可在线阅读,更多相关《Keil C51 软件使用方法第八章Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
![Keil C51 软件使用方法第八章Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/16/efe3b397-67c9-4eac-bd33-be6afc9a38a2/efe3b397-67c9-4eac-bd33-be6afc9a38a21.gif)
可显示I/O口,定时器,中断,串口等外围设备状态;
第二节dScopeforWindows基本操作
1.指定初始化文件
在uVision的Option菜单dScopeDebugger中指定dScope的初始化文件,用uVision的RUN启动dScope将自动加载此初始化文件,自动执行其中命令;
下面是一个例子,可以看出调入一个调试代码的过程。
Ds51.ini:
load8051.dll
loadtest
slog>
>
test.log
xtal=11.0592
definebutton"
gotomain"
"
g,main"
wsRevCounter
wsrm.r
g,main
PARESET
PAserial
PAtimer0
2.观察变量
方法1:
命令行
WSexpression[,numberbase][LINE]
其中numberbase为显示数制,10对应10进制,16对应16进制,缺省为16进制。
LINE为单行显示,缺省为多行显示。
方法2:
setup->
Watchpoints,在对话框中输入变量
3.显示RAM的值
di(x,d):
起始地址,终止地址
d变量名
4.观察堆栈
View->
Call-stack->
Showinvocation,可以跟踪调用过程;
5.中断处理程序调试
在装入8051.dll后,在dScope的主菜单中将增加Peripherial,其有4个字菜单:
I/0port:
Pi端口状态
Interrupt:
中断设置
Timer:
定时器中断状态
Serial:
串口中断状态
设置相应的中断请求标志位即可产生中断。
6.性能分析(PerformanceAnalyzer:
PA)
PA用来分析一段代码执行占用CPU的百分比。
定义:
命令行PAfunc_name
第三节dScopeforWindows命令文件的编制
dScope除了用命令行的方式进行调试以外,还可将各种调试命令汇集于一个调试文件中,然后调用该文件,就可达到自动测试用户源代码的目的。
dScope的命令文件支持C/PL/M的格式,因而编制调试命令文件与编制C语言程序有些类似。
1.地址空间及地址空间类型
(1)地址空间分段
dScope提供的最大可用空间为16M,实际上我们只用以下三段:
①内部数据空间段(0X00段或D段)
0X00:
0X0000~0X00:
0XFFFF(对MSC51而言为0X00:
0X00FF)
②外部数据空间段(0X01段式或X段)
0X01:
0X0000~0X01~0XFFFF
③程序空间段(0XFF段或C段)
0XFF:
0X0000~0XFF:
0XFFFF
(2)地址空间类型
C:
代码空间
D:
内部直接寻址空间
I:
内部间接寻址空间
X:
外部数据空间
B:
位寻址空间
P:
I/O口
EB:
扩展的位寻址空间(MCS251专有)
ED:
扩展的数据空间(MCS251专有)
CO:
常数空间(MCS251专有)
HC:
正常数空间(MCS251专有)
2.常量
dScope支持十六进制、八进制、十进制、二进制常数,其后缀分别为H、Q(O)、T(或无)、Y;
dScope不区分常量的大、小写。
(1)整型常量
分为整型(int),无符号整型(uint,00rd),长整型(long),无符号长整型(Wlong、Word)。
(2)浮点型常量
与ANSIC相同。
(3)字符串常量
与ANSIC相同
(4)字符常量
分为字符型(Char)和无符号字符型(Uchar)一种。
(5)行号常数
指用户程序中的行号,实际上是个地址
(6)位常量(Bit):
0和1
(7)地址常数
地址常数的种类很多,地址常数不同于行号常数,行号常数就是一个地址,而地址数被引用时,实际上是取该地址中的数据。
代码地址常数,如C:
0X0012或0XFF:
0X0012
内部直接寻址地址常数,如D:
0X0068或0X00:
0X0068
内部间按寻址地址常数,如I:
0X0010或0X00:
0X0010
外部数据空间地址常数,如X:
0X0028或0X01:
0X0028
位地址常数,如B:
0X20或B:
0X24.0
扩展的位地址常数(MCS251专有),
扩展的数据空间地址常数(MCS251专有)
常数空间地址常数(MCS251专有)
正常数空间地址常数(MCS251专有)
(8)标识符常量
即用户源程序中的标号、函数名等,实际上代表某一地址。
(9)用户源程序中定义的常数
3.变量
dScope所支持的变量名或标识符最多可由31个字符组成,第一个字母为A~Z,a~z,下划线或问号,后续字符可为字母、数字、下划线和问号。
除CPU变量和系统变量外,dScope不支持全局变量,但可视“define”命令定义的变量为全局变量。
Dscope所支持的变量分为以下几种(变量名称不区分大、小写),支持类型转换:
(1)整型变量
分为整型变量(int)、无符号整型变量(uint/word),长整型(Long)、无符号长整型(Ulong/dword)。
(2)浮点型变量(float)
(3)字符型变量L
分为字符型(char)变量和无符号字符型(Uchar)
(4)位变量(Bit)
(5)系统变量
dScope自己定义了一系列内部变量,用户可对这些变量进行读或读/写操作,可被用户自定义数所引用。
a.Cycles(ReadOnly)
32位变量(Ulong),指示当前程序执行已花费的指令周期(cycle)。
b.Ramsize(R/W)
16位变量(Uint),指示内部可直接寻址的数据空间大小。
c.Radix(R/N)
8位变量(Uchar),决定输出的数制
Radix=0X0A(10进制),Radix=0X10(16进制)
d.-IIP-(R/W)
8位变量(Uchar),指示当前的中断嵌套数目。
e.$(R/W)
32位变量(Ulong),指出PC值,通过对其进行写操作,可改变程序执行的流程。
f.Itrace(R/W)
8位变量(Uchar),决定是否对程序运行情况进行记录
Itrace=1,使能记录操作
Itrace=0,根本上记录操作
g.__Break__(R/W)
8位变量(Uchar)__Break__=1,中止程序的运行
h.__Mode__和__Framesize__是MCS251专有的变量。
(6)CPU变量
即R0~R7、A、C(位变量)、B、DPTR及特殊功能寄存器变量,对这些变量均可进行读、写操作。
(7)用户源程序中定义的变量、数组、结构等
4.运算符
dScope支持ANSIC的运算符,包括算术运算符,逻辑运算符,关系运算符。
5.表达式
以运算符将dScope所支持的常量、变量、函数等连接在一起,就构成了dScope的表达式。
6.数组
dScope不支持在命令文件中定义数组,但可引用用户程序中的数组,引用方式如同C。
7.结构和联合
dScope不支持在命令文件中定义结构和联合,但可引用用户程序中的结构和联合,引用方式如同C,但如要输出整个结构或联合的结果,就要用命令“OBJ”。
8.指针:
不可自定义指针,但支持用户源程序中的指针变量。
9.dScope命令语句
dScope提供了一系列调试命令。
在命令文件中,dScope只支持这些语句及前述定义的表达式,C语言的语句均不被支持,但在命令文件所包含的用户自定义函数(非用户源程序中的函数)中支持C语句,但用户自定义函数中同样不支持数组、结构、联合和指针。
(1)ASM
在线汇编命令,格式如下:
ASMC:
0Xnnnn(或标号);
设定插入汇编指令的地址
ASM汇编指令
插入完毕后,在debug窗口内选择“Assemble->
Assemble”完成编译。
(2)Assign
串行口分配指令,格式如下:
Assignchannel<
unreg>
outreg
对MCS51为:
AssignWin<
SOIN>
Soot
但目前的dScope版本并未提供完整串口窗口功能。
(3)Define
用户自定义变量指令,格式如下:
Define<
类型>
<
变量名>
类型一为如前所述的变量类型,Define指令定义的变量可能为全局变量,可为用户自定义函数所引用。
(4)Display
内存显示命令,格式如下二:
D起始地址,结束地址
地址如前所述的地址常数,标识符常量。
(5)Enter
内存修改指令,格式如下:
E类型地址=表达式[表达式2],[……]
类型如前所述,地址如前所述的地址常数。
表达式如前所述,但如果是函数名称(含标号、指针变量),则关键字E→EP
(6)Map/Resetmap
Map为内存段修改指令,Resetmap将内存段复位或缺省值。
(7)Object
用以引用用户源程序中的结构(联合)、数组、格式如下:
Obj表达式[n,],[Line]
表达式为用户源程序中的数组,结构(联合)名称。
当Line缺省时,数目、结构(联合)的内容按n行输出;
如有Line,则单行输出。
(8)U
反汇编命令,格式如下:
U[地址]
地址包括地址常数及标识符常量,指明反汇编的起始地址。
(9)WK
观察点删除命令,格式如下:
WKn1[n2],[……];
删除指定的观察点,n为字符型,整型
常数
WK*;
删除所有的观察点
(10)WS
观察点设置命令,格式如下:
WS表达式[,n][LINE]
关键字LINE存在时,观察点表达式单行输出
LINE缺省时,观察点表达式n行输出。
(11)G
连续运行命令,格式如下:
G[起始地址],[终止地址]
地址为标识符常量或地址常数,地址缺省时,为连续运行。
(12)T/P
单步运行指令,格式如下:
T/Pn;
n指至单行运行的步数,P指