Realview MDK 中调试脚本的详细解析

和其他集成开发环境一样,Realview MDK 中也使用了调试脚本。调试脚本除了可以初始化软硬件的调试环境以外,还可以初始化Flash 的烧写环境,甚至可以提供信号函数模拟片上外围设备。所以在使用Realview MDK 调试和烧写的过程中,到处都有调试脚本的身影。下面将分三个方面详细地研究调试脚本的编写和使用。在介绍调试脚本之前,先必须了解Realview MDK 预定义的一些常用命令和函数的用法。

1. 常用预定义命令的说明及注意事项:
下表是一些常用的预定义命令和函数的语法格式及说明。

预定义的命令语法

 

描述

 

MAP

 

开始地址, 结束地址 在内存中映射一段存储区域

 

Go

 

开始地址,结束地址 程序从开始地址运行,到结束地址停止

 

DIR VTREG

 

显示所有的CUP 引脚寄存器

 

预定义的函数

 

描述

 

void rwatch (ulong address)

 

信号函数被延时,直到函数参数地址被读取

 

void wwatch (ulong address)

 

信号函数被延时,直到函数参数地址被写入

 

void swatch (float seconds)

 

信号函数延时参数指定的时间,单位为S

 

void twatch (ulong states)

 

信号函数延时参数指定的CUP 周期

 

uchar _RBYTE (address)

 

在参数指定的地址处读取1 个字节的数据

 

ulong _RWORD (address)

 

在参数指定的地址处读取1 个整型的数据

 

ulong _RDWORD (address)

 

在参数指定的地址处读取1 个长整型的数据

 

uchar _WBYTE (address, uchar val)

 

向参数指定的地址处写入1 个字节的数据

 

void _WWORD (address, uint val)

 

向参数指定的地址处写入1 个整型的数据

 

void _WDWORD (address, ulong val)

 

向参数指定的地址处写入1 个长整型的数据

 

2. 调试脚本在硬件仿真中的应用

Realview MDK 编译链接好的程序在硬件上运行之前,要求硬件具有合适的环境(例如,时钟的配置、存储控制的配置等),一般这些工作是由启动代码完成
的。在Realview MDK 中,通过调试脚本使用MDK 预先定义好的寄存器读写命名设置硬件环境。这一工作在硬件调试之前是必须进行的。下面是一个初始化硬

件环境的调试脚本函数:

FUNC void Setup (void)
{
_WWORD(0xfffffd44 ,0x00008000); // 配置看门狗模式寄存器;
_WWORD(0xfffffd60 ,0x00320100); // 配置电压效验模式寄存器;
_WWORD(0xfffffc20 ,0x00000601); // 配置主晶振寄存器;
_WWORD(0xfffffc2c ,0x00191C05); // 配置锁相环寄存器;
_WWORD(0xfffffc30 ,0x00000007); // 配置主时钟寄存器;
_WWORD(0xfffffd08 ,0xa5000001); // 配置复位控制模式寄存器;
pc = 0x200000; // 设置PC 的值。
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/pssjz.html