这几天因为公司的破电脑只有 10G的C盘空间被我装软件以及桌面上放的各种文件给填满了,所以打算把一些软件移到其它盘,删除了KEIL软件以后,发现之前可以同时编译51和ARM 的keil夭折了,所以自己研究了一下,把它的过程记录下来留着以后可作参考。具体方法如下:
第一步到http://www.51hei.com/下载并安装Keil C:
直接找开Keil C一直下一步,中间填下SN码,这个在破解的KEIL C软件里面都会有的。安装完成后的环境如下:
第二步把上图Tools文件用文本的方式打开并复制里面的内容保存起来,内容如下:
BOOK0=HLP\\RELEASE_NOTES.HTM("Release Notes")
BOOK1=HLP\\GS51.PDF("uVision2 Getting Started")
BOOK2=HLP\\C51.PDF("C51 User\’s Guide")
BOOK3=HLP\\C51LIB.CHM("C51 Library Functions",C)
BOOK4=HLP\\A51.PDF("Assembler/Utilities")
BOOK5=HLP\\TR51.CHM("RTX51 Tiny User\’s Guide")
BOOK6=HLP\\DBG51.CHM("uVision2 Debug Commands")
BOOK7=ISD51\\ISD51.HTM("ISD51 In System Debugger")
BOOK8=HLP\\FlashMon.CHM("Flash Monitor")
BOOK9=MON390\\MON390.HTM("MON390: Dallas Contiguous Mode Monitor")
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")
RTOS1=RTXTINY.DLL ("RTX-51 Tiny")
RTOS2=RTX51.DLL ("RTX-51 Full")
Version=V7.0
PATH="D:\\Keil\\C51"
SN=K1DZP-5IUSH-A01UE
第三步安装ADK,这里要注意ADK的版本要比KEIL C的版本高一个等级,只有这样才能兼容,如果不这样的话,可能调试功能部分会有问题。比如KEIL与proteus进行调试时会出现调试不了的问题。
安装ADK同上,直接下一步,有提示要SN号的时候在软件里面找了复制,粘贴就行了。安装路径跟KEIL C的路径一样就行了,我在网上看有人说不能同一个路径,其实同个路径好点,省了过会要复制两次代码,而且还不用搞两个电路在电脑,又麻烦又不方便。安装后的效果如下:
接着打开TOOLS文件,把上面的代码复制,粘贴上去。
[UV2]
BOOK0=UV3\\RELEASE_NOTES.HTM("uVision Release Notes")
BOOK1=
ARMUSE=0
rem ARMUSE= 0:=Cygnus/GNU, 1:=ARM-ADS, 2:=Keil (future)
Version=V2.2
ORGANIZATION="LN"
NAME="admin Michael", "DSD"
EMAIL="LUSSBY"
ARMSEL=1
[C166]
BOOK0=HLP\\RELEASE_NOTES.HTM("Release Notes")
BOOK1=HLP\\GS166.PDF("uVision2 Getting Started")
BOOK2=HLP\\C166.PDF("C166 User\’s Guide")
BOOK3=HLP\\C166LIB.CHM("C166 Library Functions",C)
BOOK4=HLP\\EC166.CHM("EC166 Embedded C++")
BOOK5=HLP\\A166.PDF("A166 & Utilities User\’s Guide")
BOOK6=HLP\\DBG166.CHM("uVision2 Debug Commands")
BOOK7=HLP\\OCDS.CHM("OCDS Debugging")
TDRV0=MONITOR\\MON166.DLL ("Keil Monitor-166 Driver")
TDRV1=OCDS\\CBC166.DLL ("OCDS Driver for C16xU/H/UTAH")
TDRV2=OCDS\\OCDSXC.DLL ("OCDS Driver for XC16x")
RTOS1=RTXTINY.DLL ("RTX-166 Tiny")
RTOS2=RTXFULL.DLL ("RTX-166 Full")
Version=V4.2
BOOK0=HLP\\RELEASE_NOTES.HTM("Release Notes")
BOOK1=HLP\\GS51.PDF("uVision2 Getting Started")
BOOK2=HLP\\C51.PDF("C51 User\’s Guide")
BOOK3=HLP\\C51LIB.CHM("C51 Library Functions",C)
BOOK4=HLP\\A51.PDF("Assembler/Utilities")
BOOK5=HLP\\TR51.CHM("RTX51 Tiny User\’s Guide")
BOOK6=HLP\\DBG51.CHM("uVision2 Debug Commands")
BOOK7=ISD51\\ISD51.HTM("ISD51 In System Debugger")
BOOK8=HLP\\FlashMon.CHM("Flash Monitor")
BOOK9=MON390\\MON390.HTM("MON390: Dallas Contiguous Mode Monitor")
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")
RTOS1=RTXTINY.DLL ("RTX-51 Tiny")
RTOS2=RTX51.DLL ("RTX-51 Full")
Version=V7.0
PATH="D:\\Keil\\C51"
SN=K1DZP-5IUSH-A01UE
BOOK0=HLP\\RELEASE_NOTES.HTM("Release Notes")
BOOK1=HLP\\GS51.PDF("uVision2 Getting Started")
BOOK2=HLP\\C251.PDF("C251 User\’s Guide")
BOOK3=HLP\\C251LIB.CHM("C251 Library Functions",C)
BOOK4=HLP\\A51.PDF("Assembler/Utilities")
BOOK5=HLP\\DBG251.CHM("uVision2 Debug Commands")
TDRV0=BIN\\MON251.DLL ("Keil Monitor-251 Driver")
Version=V3.5
PATH="D:\\Keil\\ARM"
BOOK0=HLP\\RELEASE_NOTES.HTM("Release Notes")
BOOK1=HLP\\ARMTOOLS.chm("Complete User\’s Guide Selection", C)
BOOK2=HLP\\RL_RELEASE_NOTES.HTM("RTL-ARM Release Notes")
BOOK3=HLP\\RVI.chm("RV Compiler Introduction")
BOOK4="C:\\Program Files\\CodeSourcery\\Sourcery G++ Lite\\share\\doc\\arm-2007q3-53-arm-none-eabi\\pdf\\gcc\\gcc.pdf" ("GNU C Compiler",GEN)
TDRV0=ULINK\\ARM7.DLL("ULINK ARM7 Debugger")
Version=3.80a
PATH1="C:\\Program Files\\CodeSourcery\\Sourcery G++ Lite\\"
CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV8) # Drivers for ARM7/9 devices
CPUDLL1=SARMCM3.DLL(TDRV1,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8) # Drivers for Cortex-M devices
BOOK5="C:\\Program Files\\CodeSourcery\\Sourcery G++ Lite\\share\\doc\\arm-2007q3-53-arm-none-eabi\\pdf\\as.pdf" ("GNU Assembler",GEN)
BOOK6="C:\\Program Files\\CodeSourcery\\Sourcery G++ Lite\\share\\doc\\arm-2007q3-53-arm-none-eabi\\pdf\\ld.pdf" ("GNU Linker",GEN)
BOOK7="C:\\Program Files\\CodeSourcery\\Sourcery G++ Lite\\share\\doc\\arm-2007q3-53-arm-none-eabi\\pdf\\binutils.pdf" ("GNU Binary Utilities",GEN)
TDRV1=BIN\\UL2ARM.DLL("ULINK ARM Debugger")
TDRV2=BIN\\UL2CM3.DLL("ULINK Cortex Debugger")
TDRV3=BIN\\AGDIRDI.DLL("RDI Interface Driver")
TDRV4=BIN\\ABLSTCM.dll("Altera Blaster Cortex Debugger")
TDRV5=BIN\\lmidk-agdi.dll("Luminary Eval Board")
TDRV6=Signum\\SigUV3Arm.dll("Signum Systems JTAGjet")
TDRV7=Segger\\JLTAgdi.dll("J-LINK / J-TRACE")
TDRV8=Segger\\JL2CM3.dll("Cortex-M3 J-LINK")
TDRV9=STLink\\ST-LINKIII-KEIL.dll ("ST-Link Debugger")
PATH="D:\\Keil\\ARM"
PATH1="BIN40"
BOOK0=HLP\\RELEASE_NOTES.HTM("Release Notes")
BOOK1=HLP\\ARMTOOLS.chm("Complete User\’s Guide Selection", C)
BOOK2=HLP\\RL_RELEASE_NOTES.HTM("RTL-ARM Release Notes")
BOOK3=HLP\\RVI.chm("RV Compiler Introduction")
BOOK4=
BOOK5=
TDRV0=ULINK\\ARM7.DLL("ULINK ARM7 Debugger")
Version=V0.1
CPUDLL1=SARMCM3.DLL(TDRV1,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8) # Drivers for Cortex-M devices
TDRV1=BIN\\UL2ARM.DLL("ULINK ARM Debugger")
TDRV2=BIN\\UL2CM3.DLL("ULINK Cortex Debugger")
TDRV3=BIN\\AGDIRDI.DLL("RDI Interface Driver")
TDRV4=BIN\\ABLSTCM.dll("Altera Blaster Cortex Debugger")
TDRV5=BIN\\lmidk-agdi.dll("Luminary Eval Board")
TDRV6=Signum\\SigUV3Arm.dll("Signum Systems JTAGjet")
TDRV7=Segger\\JLTAgdi.dll("J-LINK / J-TRACE")
TDRV8=Segger\\JL2CM3.dll("Cortex-M3 J-LINK")
TDRV9=STLink\\ST-LINKIII-KEIL.dll ("ST-Link Debugger")
RTOS0=Dummy.DLL("Dummy")
RTOS1=ARTXARM.DLL ("RTX Kernel")
[KARM]
PATH="D:\\Keil\\ARM"
CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV8) # Drivers for ARM7/9 devices
CPUDLL1=SARMCM3.DLL(TDRV1,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8) # Drivers for Cortex-M devices
BOOK0=HLP\\RELEASE_NOTES.HTM("Release Notes")
BOOK1=HLP\\RL_RELEASE_NOTES.HTM("RTL-ARM Release Notes")
BOOK2=HLP\\ARMTOOLS.chm("Complete User\’s Guide Selection", C)
BOOK3=HLP\\RVI.chm("RV Compiler Introduction")
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("Luminary Eval Board")
TDRV5=Signum\\SigUV3Arm.dll("Signum Systems JTAGjet")
TDRV6=Segger\\JLTAgdi.dll("J-LINK / J-TRACE")
TDRV7=Segger\\JL2CM3.dll("Cortex-M3 J-LINK")
TDRV8=STLink\\ST-LINKIII-KEIL.dll ("ST-Link Debugger")
RTOS0=Dummy.DLL("Dummy")
RTOS1=ARTXARM.DLL ("RTX Kernel")
此时可以发现,当我们打开KEIL的时候,里面有了ARM的头文件,也有51的头文件了,^-^ .
接下来先别高兴,还有一个步骤
要做,那就是分别给ARM和51注册库了。具体是打开安装好的KEIL,在FILE->license Managetment
点PK51 prof.Develpors Kit,复制 CID。接着打开ADK软件里面的注册机,如下
粘贴到CID里面,,TARGET选择51,如果是注册ARM就选择ARM,然后点GENERATE,会在上面横条那生成一串注册码,复制,粘贴到上图LicenseManagetment的New License IdCODE,并点后期ADD LIC即可。
因为注册ARM跟Keil C51的注册一样,就不累赘了。注册完成后效果如下:
可以看到51和ARM都已经注册完成,时间可以使用的时候是到2020年的六月和九月。 至此我们的KEIL软件可以兼容51和ARM单片机了。