安装之前的准备:
1、MDK4.12(Keil uVision 4)
这个是KEIL最新版,至少也要用MDK4.0,之前的版本只能联调51,不能联调ARM。。
2、Proteus 7.7 sp2
这个是Proteus最新版,只有这一个版本两个联调仿真都成功了,之前的版本都不行,不是能联调51不能联调ARM,就是能联调ARM不能联调51。。
3、vdmagdi.exe
这个是一个联调的补丁,貌似只有一个版本。
上面3个软件网上都有下载,如果没有的也可以问我要。
安装方法:
先安装1、2两个,再安装第3个。
设置方法:
1、Proteus中的设置方法:
![Keil与Proteus 联调 仿真 51和ARM 终于成功了! - 江南雨 - 江南雨的博客 Keil与Proteus 联调 仿真 51和ARM 终于成功了! - 江南雨 - 江南雨的博客](http://www.61ic.com/Technology/UploadFiles_8326/201104/20110409224714843.jpg)
勾选最后那个。。USE REMOTE。。。
2、Keil4 配置文件的设置方法:
①、打开Keil的安装根目录,在根目录下有一个配置设置文件:tools.ini,用记事本的方式打开
②、找到“[ARM]”,在代码的第7行就是,可以用“编辑==》查找”
③、在[ARM]中找到“TDRV8=STLink\ST-LINKIII-KEIL.dll ("ST-Link Debugger")”
然后在找到的这句代码后面粘贴上“TDRV9=BIN\VDMARM.DLL ("Proteus VSM Simulator")”
④、把[ARM]下面第三行替换为“CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV9)”
也可以在括号里添加上“,TDRV9”
⑤、找到[ARMADS],重复③和④中替换的地方。
说明。。这个配置的时候不要太死板,虽然③说粘贴上“TDRV9”,但如果已经有“TDRV9”了,就顺推到“TDRV10”“TDRV11”。。
④、把[ARM]下面第三行替换为“CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV9)”的时候,前面你粘贴的是TDRV几,就在后面补上几。。不要你粘贴的是TDRV11,这里还写TDRV9.。。这个就不多说了。。最后面有我的KEIL配置文件的代码。。可以自己看看,注意不要全部拷贝,因为license不一样。。
3、Keil4 联调时的设置方法:
Debug下的设置:
![Keil与Proteus 联调 仿真 51和ARM 终于成功了! - 江南雨 - 江南雨的博客 Keil与Proteus 联调 仿真 51和ARM 终于成功了! - 江南雨 - 江南雨的博客](http://www.61ic.com/Technology/UploadFiles_8326/201104/20110409224715886.jpg)
点击Setting后的设置:
![Keil与Proteus 联调 仿真 51和ARM 终于成功了! - 江南雨 - 江南雨的博客 Keil与Proteus 联调 仿真 51和ARM 终于成功了! - 江南雨 - 江南雨的博客](http://www.61ic.com/Technology/UploadFiles_8326/201104/20110409224715685.jpg)
Utilities的设置:
![Keil与Proteus 联调 仿真 51和ARM 终于成功了! - 江南雨 - 江南雨的博客 Keil与Proteus 联调 仿真 51和ARM 终于成功了! - 江南雨 - 江南雨的博客](http://www.61ic.com/Technology/UploadFiles_8326/201104/20110409224716205.jpg)
说明:
这个设置在仿真LPC系列ARM时无任何问题,其他型号的暂未实验。。如果不按照此设置,将会出现问题。。具体出现什么问题,自己可以试一下,就不多说了。。
附:KEIL配置文件代码:
[UV2]
ORGANIZATION="wdp"
NAME="vip", "wdp"
EMAIL="wdp"
ARMSEL=1
BOOK0=UV4\RELEASE_NOTES.HTM("uVision Release Notes",GEN)
SocketPort=-569014794
[ARM]
PATH="C:\Keil\ARM\"
VERSION=4.12
PATH1="C:\Program Files\CodeSourcery\Sourcery G++ Lite\"
TOOLPREFIX=arm-none-eabi-
CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV10,TDRV11) # Drivers for ARM7/9 devices
CPUDLL1=SARMCM3.DLL(TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8,TDRV9) # Drivers for Cortex-M devices
CPUDLL2=SARMCR4.DLL(TDRV7) # Drivers for Cortex-R4 devices
BOOK0=HLP\RELEASE_NOTES.HTM("Release Notes",GEN)
BOOK1=HLP\ARMTOOLS.chm("Complete User's Guide Selection",C)
BOOK2=HLP\RL_RELEASE_NOTES.HTM("RTL-ARM Release Notes",GEN)
BOOK3=HLP\RVI.chm("RV Compiler Introduction",GEN)
BOOK4=Signum\Docs\SigUV3Arm.htm("Signum Systems JTAGjet Driver Documentation",GEN)
TDRV0=BIN\UL2ARM.DLL("ULINK ARM Debugger")
TDRV1=BIN\UL2CM3.DLL("ULINK Cortex Debugger")
TDRV2=BIN\AGDIRDI.DLL("RDI Interface Driver")
TDRV3=BIN\ABLSTCM.dll("Altera Blaster Cortex Debugger")
TDRV4=BIN\lmidk-agdi.dll("Stellaris ICDI")
TDRV5=Signum\SigUV3Arm.dll("Signum Systems JTAGjet")
TDRV6=Segger\JLTAgdi.dll("J-LINK / J-TRACE")
TDRV7=Segger\JL2CM3.dll("Cortex-M/R J-LINK/J-Trace")
TDRV8=STLink\ST-LINKIII-KEIL.dll ("ST-Link Debugger")
TDRV9=BIN\ULP2CM3.DLL("ULINK Pro Cortex Debugger")
TDRV10=BIN\ULP2ARM.DLL("ULINK Pro ARM Debugger")
LIC0=EXJCX-H1500-FUE4P-M3XTR-1BVKU-LEE4Z
TDRV11=BIN\VDMARM.DLL ("Proteus VSM Simulator")
BOOK5=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver")
[ARMADS]
PATH="C:\Keil\ARM\"
PATH1="BIN40\"
CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV10,TDRV11) # Drivers for ARM7/9 devices
CPUDLL1=SARMCM3.DLL(TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8,TDRV9) # Drivers for Cortex-M devices
CPUDLL2=SARMCR4.DLL(TDRV7) # Drivers for Cortex-R4 devices
BOOK0=HLP\RELEASE_NOTES.HTM("Release Notes",GEN)
BOOK1=HLP\ARMTOOLS.chm("Complete User's Guide Selection",C)
BOOK2=HLP\RL_RELEASE_NOTES.HTM("RTL-ARM Release Notes",GEN)
BOOK3=HLP\RVI.chm("RV Compiler Introduction",GEN)
BOOK4=Signum\Docs\SigUV3Arm.htm("Signum Systems JTAGjet Driver Documentation",GEN)
TDRV0=BIN\UL2ARM.DLL("ULINK ARM Debugger")
TDRV1=BIN\UL2CM3.DLL("ULINK Cortex Debugger")
TDRV2=BIN\AGDIRDI.DLL("RDI Interface Driver")
TDRV3=BIN\ABLSTCM.dll("Altera Blaster Cortex Debugger")
TDRV4=BIN\lmidk-agdi.dll("Stellaris ICDI")
TDRV5=Signum\SigUV3Arm.dll("Signum Systems JTAGjet")
TDRV6=Segger\JLTAgdi.dll("J-LINK / J-TRACE")
TDRV7=Segger\JL2CM3.dll("Cortex-M/R J-LINK/J-Trace")
TDRV8=STLink\ST-LINKIII-KEIL.dll ("ST-Link Debugger")
TDRV9=BIN\ULP2CM3.DLL("ULINK Pro Cortex Debugger")
TDRV10=BIN\ULP2ARM.DLL("ULINK Pro ARM Debugger")
TDRV11=BIN\VDMARM.DLL ("Proteus VSM Simulator")
RTOS0=Dummy.DLL("Dummy")
RTOS1=VARTXARM.DLL ("RTX Kernel")
[C51]
PATH="C:\Keil\C51\"
VERSION=V9.00
BOOK0=HLP\Release_Notes.htm("Release Notes",GEN)
BOOK1=HLP\C51TOOLS.chm("Complete User's Guide Selection",C)
TDRV0=BIN\MON51.DLL ("Keil Monitor-51 Driver")
TDRV1=BIN\ISD51.DLL ("Keil ISD51 In-System Debugger")
TDRV2=BIN\MON390.DLL ("MON390: Dallas Contiguous Mode")
TDRV3=BIN\LPC2EMP.DLL ("LPC900 EPM Emulator/Programmer")
TDRV4=BIN\UL2UPSD.DLL ("ST-uPSD ULINK Driver")
TDRV5=BIN\UL2XC800.DLL ("Infineon XC800 ULINK Driver")
TDRV6=BIN\MONADI.DLL ("ADI Monitor Driver")
TDRV7=BIN\DAS2XC800.DLL ("Infineon DAS Client for XC800")
TDRV8=BIN\UL2LPC9.DLL ("NXP LPC95x ULINK Driver")
RTOS0=Dummy.DLL("Dummy")
RTOS1=RTXTINY.DLL ("RTX-51 Tiny")
RTOS2=RTX51.DLL ("RTX-51 Full")
LIC0=21NPC-7WZIL-4DHKD-89RWQ-BSK4X-A5YUQ
TDRV9=BIN\VDM51.DLL ("Proteus VSM Simulator")
BOOK2=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver")
[KARM]
TDRV0=BIN\VDMARM.DLL ("Proteus VSM Simulator")
BOOK0=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver")