使用Remote Debugger Drivers实现proteus和keil联合调试

一、安装前的准备

1.KEIL C51或者MDK FOR ARM,我使用的是MDK FOR ARM中内嵌了C51
注:版本必须在4.0之后,否则只能实现C51的联合调试
2.proteus 7安装
注:版本必须在7.7及之后,否则无法实现对C51或者ARM的联合调试
3.Remote Debugger Drivers.exe即vdmagdi.exe
好像只有一个版本
以上均可在官网下载,或者百度也可以
二、安装方法
在安装Remote Debugger Drivers.exe之前必须已经成功安装并破解前两个软件
三、设置方法
1.在Proteus中选择Debug->Enable Remote Debug Monitor,如图在这里插入图片描述
2.在MDK中配置
1)选择菜单栏中Project->Option For Target “工程名”,打开配置选项,

对于创建的C51工程,依次选择Debug->使能Use->选择Proteus VSM Simulator,如图
在这里插入图片描述
进行下面操作之前建议先看本文末尾处的注意
2)对于创建的ARM工程,我们需要打开keil的安装目录的根目录,有TOOLS.INI,使用记事本打开,
1.找到"[ARM]",找到“TDRV19=STLink\ST-LINKIII-KEIL.dll ("ST-Link Debugger")”,之后在这句话后面加上“TDRV20=BIN\VDMARM.DLL ("Proteus VSM Simulator")”
注意“TDRV20”的数字不是固定的,取决于你所安装的下载驱动数量,我们只需要在现有的最后一个后面顺推加1即可。
2.找到"[ARMADS]",找到“TDRV8=STLink\ST-LINKIII-KEIL.dll ("ST-Link Debugger")”,之后在这句话后面加上“TDRV20=BIN\VDMARM.DLL ("Proteus VSM Simulator")”
3.找到之前的"[ARM]",下面拿我所需要添加的NXP的RT1064为例,找到CPUDLL1=SARMCM3.DLL(TDRV0,TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV6,TDRV7,TDRV8,TDRV9,TDRV10,TDRV11,TDRV12)
然后在括号里添加TDRV12,这里同样取决于你之前的数字。
4.找到"[ARMADS]",找到“TDRV8=STLink\ST-LINKIII-KEIL.dll ("ST-Link Debugger")”,之后在这句话后面加上“TDRV20=BIN\VDMARM.DLL ("Proteus VSM Simulator")”
5.对于创建的ARM工程,依次选择Debug->使能Use->选择Proteus VSM Simulator,如图
在这里插入图片描述
以上就成功配置了keil,即可实现proteus和keil联合调试。
注意:

1.若是不确定自己更改的文件是否正确,建议先备份TOOLS.INI文件保证MDK的正常使用。
2.对于上述第3步,TOOLS.INI文件中的[ARM]内容添加,并不是死板的,需要根据“#”之后的备注来添加。例如我添加的是NXP公司生产的RT1064,它是基于Cortex-M,所以我是在CPUDLL1后面添加的,如果你是基于Cortex-R4,那么只需要在CPUDLL2后面添加。
`

下面附上我修改之后的TOOLS.INI文件供参考

[UV2]
ORGANIZATION="1111"
NAME="11", "1"
EMAIL="111"
ARMSEL=1
USERTE=1
TOOL_VARIANT=mdk_std
RTEPATH="E:\MDK5"
CDB0=UV4\STC.CDB ("STC")
BOOK0=UV4\RELEASE_NOTES.HTM("uVision Release Notes",GEN)
[ARM]
PATH="E:\MDK5\ARM\"
VERSION=5.28
PATH1="C:\Program Files (x86)\GNU Tools ARM Embedded\6 2017-q2-update\"
TOOLPREFIX=arm-none-eabi-
CPUDLL0=SARM.DLL(TDRV17,TDRV18,TDRV19)                                                                       # Drivers for ARM7/9 devices
CPUDLL1=SARMCM3.DLL(TDRV0,TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV6,TDRV7,TDRV8,TDRV9,TDRV10,TDRV11,TDRV12,TDRV20)        # Drivers for Cortex-M devices
CPUDLL2=SARMCR4.DLL(TDRV4)                                                                                   # Drivers for Cortex-R4 devices
CPUDLL3=SARMV8M.DLL(TDRV2,TDRV4,TDRV6,TDRV7,TDRV13,TDRV14,TDRV15,TDRV16)                                     # Drivers for ARMv8-M devices
BOOK0=HLP\RELEASE_NOTES.HTM("Release Notes for MDK 5.28",GEN)
BOOK1=HLP\ARMTOOLS.chm("Complete User's Guide Selection",C)
BOOK2=https://developer.arm.com/docs/100966/1160("Fast Models Fixed Virtual Platforms (FVP) Reference Guide Version 11.6 Documentation",GEN)
TDRV0=BIN\UL2CM3.DLL("ULINK2/ME Cortex Debugger")
TDRV1=BIN\ULP2CM3.DLL("ULINK Pro Cortex Debugger")
TDRV2=BIN\ULPL2CM3.dll("ULINKplus Debugger")
TDRV3=BIN\CMSIS_AGDI.dll("CMSIS-DAP Debugger")
TDRV4=Segger\JL2CM3.dll("J-LINK / J-TRACE Cortex")
TDRV5=BIN\DbgFM.DLL("Models Cortex-M Debugger")
TDRV6=STLink\ST-LINKIII-KEIL_SWO.dll ("ST-Link Debugger")
TDRV7=NULink\Nu_Link.dll("NULink Debugger")
TDRV8=PEMicro\Pemicro_ArmCortexInterface.dll("Pemicro Debugger")
TDRV9=BIN\lmidk-agdi.dll("Stellaris ICDI")
TDRV10=SiLabs\SLAB_CM_Keil.dll("SiLabs UDA Debugger")
TDRV11=BIN\ABLSTCM.dll("Altera Blaster Cortex Debugger")
TDRV12=TI_XDS\XDS2CM3.dll("TI XDS Debugger")
TDRV13=BIN\ULP2V8M.DLL("ULINK Pro ARMv8-M Debugger")
TDRV14=BIN\UL2V8M.DLL("ULINK2/ME ARMv8-M Debugger")
TDRV15=BIN\CMSIS_AGDI_V8M.DLL("CMSIS-DAP ARMv8-M Debugger")
TDRV16=BIN\DbgFMv8M.DLL("Models ARMv8-M Debugger")
TDRV17=BIN\UL2ARM.DLL("ULINK2/ME ARM Debugger")
TDRV18=BIN\ULP2ARM.DLL("ULINK Pro ARM Debugger")
TDRV19=Segger\JLTAgdi.dll("J-LINK / J-TRACE ARM")
TDRV20=BIN\VDMARM.DLL ("Proteus VSM Simulator")
DELDRVPKG0=ULINK\UninstallULINK.exe("ULINK Pro Driver V1.0")
LIC0=14HV2-9VJKA-VENHA-1I5EY-57IGB-5IRE2
BOOK3=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver")
[ARMADS]
PATH="E:\MDK5\ARM\"
PATH1=".\ARMCC\bin\"
DEFAULT_ARMCC_VERSION_CM0="Unspecified: use latest compiler version 5"
DEFAULT_ARMCC_VERSION_CM0P="Unspecified: use latest compiler version 5"
DEFAULT_ARMCC_VERSION_CM1="Unspecified: use latest compiler version 5"
DEFAULT_ARMCC_VERSION_CM23="Unspecified: use latest compiler version 6"
DEFAULT_ARMCC_VERSION_CM3="Unspecified: use latest compiler version 5"
DEFAULT_ARMCC_VERSION_CM33="Unspecified: use latest compiler version 6"
DEFAULT_ARMCC_VERSION_CM4="Unspecified: use latest compiler version 5"
DEFAULT_ARMCC_VERSION_CM7="Unspecified: use latest compiler version 5"
DEFAULT_ARMCC_VERSION_SC000="Unspecified: use latest compiler version 5"
DEFAULT_ARMCC_VERSION_SC300="Unspecified: use latest compiler version 5"
DEFAULT_ARMCC_VERSION_ARM7="Unspecified: use latest compiler version 5"
DEFAULT_ARMCC_VERSION_ARM9="Unspecified: use latest compiler version 5"
DEFAULT_ARMCC_VERSION_CR4="Unspecified: use latest compiler version 5"
DEFAULT_ARMCC_VERSION_OTHER="Unspecified: use latest compiler version 6"
CPUDLL0=SARM.DLL(TDRV17,TDRV18,TDRV19)                                                                       # Drivers for ARM7/9 devices
CPUDLL1=SARMCM3.DLL(TDRV0,TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV6,TDRV7,TDRV8,TDRV9,TDRV10,TDRV11,TDRV12,TDRV20)        # Drivers for Cortex-M devices
CPUDLL2=SARMCR4.DLL(TDRV4)                                                                                   # Drivers for Cortex-R4 devices
CPUDLL3=SARMV8M.DLL(TDRV2,TDRV4,TDRV6,TDRV7,TDRV13,TDRV14,TDRV15,TDRV16)                                     # Drivers for ARMv8-M devices
BOOK0=HLP\mdk5-getting-started.pdf("MDK-ARM Getting Started (PDF)",GEN)
BOOK1=HLP\mdk5-getting-started_jp.pdf("MDK-ARM Getting Started (Japanese/PDF)",GEN)
BOOK2=HLP\RELEASE_NOTES.HTM("Release Notes for MDK 5.28",GEN)
BOOK3=HLP\ARMTOOLS.chm("Complete User's Guide Selection",C)
BOOK4=ARMCC\sw\info\releasenotes.html("Release Notes for ARMCC 5.06u6",GEN)
BOOK5=HLP\DUI0592E_02_mdk_getting_started_guide.pdf("ARM Compiler Getting Started Guide v5.06 for 礦ision (PDF)",GEN)
BOOK6=HLP\DUI0375G_02_mdk_armcc_user_guide.pdf("ARM Compiler v5.06 for 礦ision (PDF)",GEN)
BOOK7=HLP\DUI0377G_02_mdk_armlink_user_guide.pdf("ARM Linker v5.06 for 礦ision (PDF)",GEN)
BOOK8=HLP\DUI0378G_02_mdk_libraries_user_guide.pdf("ARM Libraries and Floating Point Support Guide v5.06 for 礦ision (PDF)",GEN)
BOOK9=HLP\DUI0379G_02_mdk_armasm_user_guide.pdf("ARM Assembler User Guide v5.06 for 礦ision (PDF)",GEN)
BOOK10=HLP\DUI0459F_02_mdk_fromelf_user_guide.pdf("Using the fromelf Image Converter v5.06 for 礦ision (PDF)",GEN)
BOOK11=HLP\DUI0590E_02_mdk_armar_user_guide.pdf("Creating Static Software Libraries with armar v5.06 for 礦ision (PDF)",GEN)
BOOK12=HLP\DUI0591E_02_mdk_errors_and_warnings_reference_guide.pdf("ARM Compiler Error and Warnings Reference Guide v5.06 for 礦ision (PDF)",GEN)
BOOK13=HLP\DUI0593E_02_mdk_migration_compatibility_guide.pdf("ARM Migration and Compatibility Guide v5.06 for 礦ision (PDF)",GEN)
BOOK14=ARMCLANG\sw\info\releasenotes.html("Release Notes for Arm Compiler 6.12",GEN)
BOOK15=ARMCLANG\sw\hlp\compiler_user_guide_100748_0612_00_en.pdf("Arm Compiler User Guide Version 6.12 (PDF)",GEN)
BOOK16=ARMCLANG\sw\hlp\migration_and_compatibility_guide_100068_0612_00_en.pdf("Arm Compiler Migration and Compatibility 6.12 (PDF)",GEN)
BOOK17=ARMCLANG\sw\hlp\errors_and_warnings_reference_guide_100074_0612_00_en.pdf("Arm Compiler Errors and Warnings Reference Guide Version 6.12 (PDF)",GEN)
BOOK18=ARMCLANG\sw\hlp\libraries_user_guide_100073_0612_00_en.pdf("Arm Compiler Arm C and C++ Libraries and Floating-Point Support User Guide Version 6.12 (PDF)",GEN)
BOOK19=ARMCLANG\sw\hlp\armclang_reference_guide_100067_0612_00_en.pdf("Arm Compiler armclang Reference Guide Version 6.12 (PDF)",GEN)
BOOK20=ARMCLANG\sw\hlp\armasm_user_guide_100069_0612_00_en.pdf("Arm Compiler armasm User Guide Version 6.12 (PDF)",GEN)
BOOK21=ARMCLANG\sw\hlp\armlink_user_guide_100070_0612_00_en.pdf("Arm Compiler armlink User Guide Version 6.12 (PDF)",GEN)
BOOK22=ARMCLANG\sw\hlp\armar_user_guide_100072_0612_00_en.pdf("Arm Compiler armar User Guide Version 6.12 (PDF)",GEN)
BOOK23=ARMCLANG\sw\hlp\fromelf_user_guide_100071_0612_00_en.pdf("Arm Compiler fromelf User Guide Version 6.12 (PDF)",GEN)
BOOK24=ARMCLANG\sw\hlp\scalable_vector_extension_guide_100891_0612_00_en.pdf("Scalable Vector Extension Guide Version 6.12 (PDF)",GEN)
BOOK25=ARMCLANG\sw\hlp\arm_instruction_set_reference_guide_100076_0100_00_en.pdf("Arm Instruction Set Version 1.0 Reference Guide (PDF)",GEN)
BOOK26=http://infocenter.arm.com/help/topic/com.arm.doc.dui0837g/index.html("Fixed Virtual Platforms Reference Guide",GEN)
TDRV0=BIN\UL2CM3.DLL("ULINK2/ME Cortex Debugger")
TDRV1=BIN\ULP2CM3.DLL("ULINK Pro Cortex Debugger")
TDRV2=BIN\ULPL2CM3.dll("ULINKplus Debugger")
TDRV3=BIN\CMSIS_AGDI.dll("CMSIS-DAP Debugger")
TDRV4=Segger\JL2CM3.dll("J-LINK / J-TRACE Cortex")
TDRV5=BIN\DbgFM.DLL("Models Cortex-M Debugger")
TDRV6=STLink\ST-LINKIII-KEIL_SWO.dll ("ST-Link Debugger")
TDRV7=NULink\Nu_Link.dll("NULink Debugger")
TDRV8=PEMicro\Pemicro_ArmCortexInterface.dll("Pemicro Debugger")
TDRV9=BIN\lmidk-agdi.dll("Stellaris ICDI")
TDRV10=SiLabs\SLAB_CM_Keil.dll("SiLabs UDA Debugger")
TDRV11=BIN\ABLSTCM.dll("Altera Blaster Cortex Debugger")
TDRV12=TI_XDS\XDS2CM3.dll("TI XDS Debugger")
TDRV13=BIN\ULP2V8M.DLL("ULINK Pro ARMv8-M Debugger")
TDRV14=BIN\UL2V8M.DLL("ULINK2/ME ARMv8-M Debugger")
TDRV15=BIN\CMSIS_AGDI_V8M.DLL("CMSIS-DAP ARMv8-M Debugger")
TDRV16=BIN\DbgFMv8M.DLL("Models ARMv8-M Debugger")
TDRV17=BIN\UL2ARM.DLL("ULINK2/ME ARM Debugger")
TDRV18=BIN\ULP2ARM.DLL("ULINK Pro ARM Debugger")
TDRV19=Segger\JLTAgdi.dll("J-LINK / J-TRACE ARM")
TDRV20=BIN\VDMARM.DLL ("Proteus VSM Simulator")
RTOS0=Dummy.DLL("Dummy")
RTOS1=VARTXARM.DLL ("RTX Kernel")
ARMCCPATH0="ARMCC" ("5.06 update 6 (build 750)")
ARMCCPATH1=".\ARMCLANG" ("V6.12")
DELDRVPKG0=ULINK\UninstallULINK.exe("ULINK Pro Driver V1.0")
[C51]
PATH="E:\MDK5\C51\"
VERSION=V9.01
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=BU39H-WJQSZ-83ZMD-89GTJ-VXYRE-MRUH0
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")

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值