APP下载

基于Keil μVision模拟器构建软件调试测试环境

2012-04-17吴瑾,郭华

空间控制技术与应用 2012年4期
关键词:调试单片机

吴 瑾,郭 华

(北京控制工程研究所,北京 100190)

本文研究了一种基于ARM公司Keil μVision模拟器[1]的单片机软件调试测试环境的制作方法.用户需开发的部分为符合μVision编程接口约定的WIN32动态链接库(后文简称μVision动态链接库扩展).这是一种纯软件方式的仿真模拟环境,无需任何单片机硬件,具有可靠性强、灵活性强、可定制性强、制作周期短、成本低等优点.

文中首先介绍了μVision模拟器提供的编程接口,之后描述了如何应用这些接口构建一个完整的单片机软件调试测试环境.

1 μVision编程接口

1.1 接口函数

Keil μVision提供给动态链接库扩展使用的接口函数十分全面,主要包括如下几类:

1)系统配置定义类,主要用于定义用户特定的特殊寄存器和虚拟寄存器、设置寄存器内存监视、创建定时时钟等:AgsiDefineSFR、AgsiDefineVTR、AgsiDeclareInterrupt、AgsiSetWatchOnSFR、AgsiSetWatchOnVTR、AgsiSetWatchOnMemory、AgsiCreateTimer、AgsiDefineMenuItem.

2)存储器读写类,用于运行过程中获取和写入存储器数据:AgsiWriteSFR、AgsiReadSFR、Agsi-WriteVTR、 AgsiReadVTR、 AgsiWriteMemory、 AgsiReadMemory.

3)模拟器状态获取类,运行过程中获取模拟器状态,如当前模拟器时间、中断状态等:AgsiGet-States、AgsiGetProgramCounter、AgsiIsInInterrupt、Agsi-IsSleeping、AgsiGetExternalClockRate、AgsiGetInternal-ClockRate、AgsiGetClockFactor、AgsiGetLastMemory-Address.

4)模拟器控制类,用于对模拟器进行控制操作:AgsiSetTimer、AgsiSetSFRReadValue、AgsiStopSimulator、AgsiTriggerReset、AgsiUpdateWindows、Agsi-HandleFocus、AgsiMessage、AgsiExecuteCommand.

具体这些接口函数的参数、功能、返回值可参考ARM公司提供的接口编程开发手册[2].

Keil μVision对用户开发的μVision动态链接库扩展有如下要求:

1)引用 Agsi.h/Agsi.cpp 文件;

2)必须为WIN32动态链接库形式[3](推荐使用Microsoft Visual C++6.0(后文简称VC)开发);

3)必须具备μVision指定的入口函数,其名称和形式必须为:

extern“C”DWORD AGSIEXPORT AgsiEntry(DWORD nCode,void*vp).

1.2 动态链接库扩展入口函数

Keil μVision要求动态链接库扩展必须具备AgsiEntry入口函数,它是μVision模拟器与动态链接库扩展实现数据交互的主要途径,μVision模拟器在运行的各个阶段,主动调用AgsiEntry函数,传递……

登录APP查看全文

猜你喜欢

调试单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
小议PLC与单片机之间的串行通信及应用
基于航拍无人机的设计与调试
核电厂主给水系统调试
无线通信中频线路窄带临界调试法及其应用
基于单片机的平衡控制系统设计
调压柜的调试与试运行探讨
工业电气设备控制系统的安装与调试