Realview MDK 中调试脚本的详细解析
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 的值。
}
评论暂时关闭