微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > KeilC51使用详解 (三)

KeilC51使用详解 (三)

时间:11-18 来源:互联网 点击:

?ICASE进行处理,非常复杂。再如if( ),while( ),等语句也是代码相对较低的语句,但编译以后比switch-case要高得多。因此建议设计者尽量少用switch-case之类语句来控制程序结构,以提高代码率。除以上两点外,其它因素也会对代码率产生影响,例如:是否用寄存器传递参数 即NOAREGS选项是否有是否包括调试信息:即DEBUG选项是否包括扩展的调试信息:即BJECTEXTEND

第八章 dScope for Windows使用详解

第一节 概述

1. 主窗口(Mainframe Window)

可设置其它各种调试窗口,设置断点、观察点,修改地址空间,加载文件等等;

2. 调试窗口(DEBUG Window)

支持用户程序的各种显示方式,可连续运行,单步运行用户程序,并可在线 汇编;

3. 命令窗口(Command Window)

支持命令行的输入;

4. 观察窗口(Watch Window)

可设置所要观察的变量、表达式等;

5. 寄存器窗口(Registe Window)

显示内部寄存器的内容,程序运行次数等;

6. 串口窗口(Serical Windows)

显示串口接收和发送的数据;

7. 性能分析窗口

显示所要观察的各程序段占用CPU的空间;

8. 内存窗口(Memory Window)

显示所选择的内存中的数据;

9. 符号浏览窗口(Symbol Browser Window)

显示各种符号名称,包括专有符号,用户自定义符号(函数名、变量、标号)等;

10. 调用线窗口(Call-Stack Window)

动态显示当前执行的程序段的函数调用关系;

11. 代码覆盖窗口

提供当前模块内各程序段中被执行代码的比率;。

12. 外围设备窗口(peripherals)

可显示I/O口,定时器,中断,串口等外围设备状态;

第二节 dScope for Windows基本操作

1. 指定初始化文件

在uVision的Option菜单dScope Debugger中指定dScope的初始化文件,用uVision的RUN启动dScope将自动加载此初始化文件,自动执行其中命令;下面是一个例子,可以看出调入一个调试代码的过程。Ds51.ini:load 8051.dllload testslog>>test.logxtal=11.0592define button \"go to main\",\"g,main\"ws RevCounterws rm.rg,mainPA RESETPA serialPA timer0

2. 观察变量

方法1:命令行WS expression [, numberbase ] [ LINE ]其中numberbase为显示数制,10对应10进制,16对应16进制,缺省为16进制。LINE为单行显示,缺省为多行显示。方法2:setup->Watchpoints,在对话框中输入变量

3. 显示RAM的值

d i(x,d):起始地址,终止地址d 变量名

4. 观察堆栈

View->Call-stack->Show invocation,可以跟踪调用过程;

5. 中断处理程序调试

在装入8051.dll后,在dScope的主菜单中将增加Peripherial,其有4个字菜单:I/0 port:Pi端口状态Interrupt:中断设置Timer:定时器中断状态Serial:串口中断状态设置相应的中断请求标志位即可产生中断。

6. 性能分析(Performance Analyzer:PA)

PA用来分析一段代码执行占用CPU的百分比。定义:命令行 PA func_name

第三节 dScope for Windows命令文件的编制

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) 浮点型常量

与ANSI C相同。

(3) 字符串常量

与ANSI C相同

(4) 字符常量

分为字符型(Char)和无符号字符型(Uchar)一种。

(5) 行号常数

指用户程序中的行号,实际上是个地址

(6) 位常量(Bit):

0和1

(7) 地址常数

地址常数的种类很多,地址常数不同于行号常数,行号常数就是一个地址,而地址数被引用时,实际上是取该地址中的数据。C:代码地址常数,如C:0X0012或0XFF:0X0012D:内部直接寻址地址常数,如D:0X

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top