在keil下使用伟福系列仿真器的方法

V8系列仿真器嵌入Keil调试环境驱动:★ 在keil下使用伟福系列仿真器的方法:★

0. 准备工作:(以下假设keil的安装路径为:C:\Keil\)
将压缩包中的WAVE_V8目录复制到C:\Keil\目录下,
将USBD12.DLL、VW.FMD、VW.MDB复制到C:\Keil\UV2或者C:\Keil\UV3目录下。
1. 用文本编辑软件(例如记事本、EDITPLUS)打开C:\Keil\TOOLS.INI。
2. 找到[C51]项下的"TDRV0=..."字串;
3. 找到其中的"TDRV0=.., TDRV1=.., …"等字符;
4. 在最后一个“TDRVx=...”(例如TDRV5=...)的行末回车,加上下面字串:
TDRV?=..\WAVE_V8\VW_C.DLL) ("伟福 V 系列仿真器")
或者:
TDRV?=..\WAVE_V8\VW_E.DLL) ("WAVE V Series Emulator")
其中?按照原有的TDRVx递增;VW_C.DLL为中文版,VW_E.DLL为英文版,
5. 将 TOOLS.INI 存盘退出文本编辑器即可,附件有一个名为TOOLSdemo.INI的范例.
6. 启动 "uV2/uV3" 开发环境;
7. 打开项目,选择 "Project" 菜单下的 "Options for Target ..." 菜单;
8. 在弹出页面上选择“Debug”页面,选择右边选择硬件驱动的“Use: ...”下拉选择框中,
选择 "伟福 V 系列仿真器" 或者"WAVE V Series Emulator";
如果下拉框中未列出上述选项,说明TOOLS.INI修改不正确。
9. 点击下拉框右边的"Settings" ,如能打开WAVFE仿真器设置对话框,表明驱动已正确安装。
如果下拉框中未列出上述选项,说明VW_C.DLL或VW_E.DLL安装不正确。
完成上述设置后,即可在keil uV2(uV3)界面下使用伟福系列仿真器。
如需改变仿真器设置,只需要在选择驱动邮编的"Settings" 按钮在对话框中选择正确的仿真器、仿真头,确定即完成设置。




伟福V8和V5仿真器在Keil uVision2/uVision3调试环境使用指南

第一步:设置前的准备
在所有的设置前,必须先安装好VW调试软件和Keil调试环境,选择好安装路径,在下面的设置中将会用到。


第二步:安装V8/V5/SH51/SP51仿真器在Keil硬件驱动
启动VW调试环境,打开“帮助”菜单下的“安装KEIL驱动”,在弹出的对话框中正确选择已经安装的keil安装路径。

第三步:调试模式设置
在Keil uVision2中打开项目,选择Project\Options for Target 'XXX'或点击如下图所示的图标:

出现如下的项目设置对话框:



如上图所示,切换到“Debug”选项卡,将默认的Use Simulator(使用软件模拟器)切换到Use...“XXX”,选择“伟福V系列仿真器”(WAVE V series Driver 为英文版),然后将以下的两项都选中:Load Application at Sta...,Go till main...,
然后点击Settings,进入仿真器设置对话框,如下图所示:


然后进入 “仿真头设置”,如下图所示:



设置好以后两次确定, 即完成了仿真器的设置

,回到keil的Debug选项卡,再次确定完成项目设置。
*注:如果在第二步的“安装KEIL驱动”后上述下拉框中没有“伟福V系列仿真器”,那么第二步操作可能由于某些原因例如tools.ini属性是只读的等原因而安装失败了,可以参照网站“下载专区”的第三页中的“Wave V系列仿真器嵌入Keil调试环境驱动”进行手动安装keil驱动。





第四步:开始调试项目

在完成上述设置后,编译项目,编译完成后,,Keil uVision2也环境将自动进入Debug模式,这时就可以调试程序了。
如果调试过程中由于通信和断电等问题时,Keil uVision2环境将会出现如下图的错误窗口,用户可以排除故障后点击Try Again重试,但是建议在出错后,重新退出Debug模式,重新编译、连接,自动进入Debug模式。






【使用伟福VW调试环境和Keil uVision2调试环境的区别】

伟福V8/V5/SH51/SP51仿真器同时支持KEIL的uVersion2调试界面。用户可以直接在KEIL的uVersion界面中使用伟福仿真器。这对于习惯了KEIL界面的用户来说很方便。但需要说明的是,KEIL是专业的编译器提供商(软件开发商),而不是仿真器生产商, 对仿真器的支持毕竟有限,如不支持运行时间统计,跟踪器,逻辑分析仪等。而且对断点的支持也不好,在使用时要注意。
区别:
1. 一次最多设十个硬件断点,超过十个断点,KEIL将使用连续机器指令单步执行,而不是实时运行。
2. C语言中的单步运行也不是实时的,而是采用连续机器指令单步执行。

连续机器指令单步执行:

C语言 对应机器指令
i = 0x1234; MOV 1BH, #12H
MOV 1CH, #34H

一条C语句通常对应多条机器指令,在伟福WAVE6000调试界面中,一条C语句中所有的机器指令是连续实时运行的,而在KEIl的环境中,是每次执行一条机器指令,进入监控,把当前状态上传给KEIL,KEIL判断C语句对应的机器指令是否执行完,如未完再次单步。如对于 for (i=0; i<20000; i++); 这样的语句,不要用单步跟踪,非实时地执行这条语句需要很长时间。所以在WAVE6000调试环境下,不支持#pragma asm/#pragma endasm直接插入汇编语句;


相关文档
最新文档