怎样让Keil软件同时兼容51单片机和ARM单片机的问题

相信学ARM的童鞋大多数都是先学过51的,你如果用Keil这样的编译环境的话,也许你会发现之前学校51的Keil开发环境无法兼容ARM,或者你在做项目,同时要用到Keil开发51单片机和ARM单片机,这个时候就开始无奈了,发现装了keil C或ADK 里面都只有51或者ARM一种单片机核可供选。难道要我们分别安装这两个软件?答案是不可取的,经过了解,KEIL公司是被ARM公司收购了,自从是一家人以后,它们总该相处得好点吧,至少兼容问题总不能自家人排斥自家人,那就太不够意思了,呵呵。
这几天因为公司的破电脑只有 10G的C盘空间被我装软件以及桌面上放的各种文件给填满了,所以打算把一些软件移到其它盘,删除了KEIL软件以后,发现之前可以同时编译51和ARM 的keil夭折了,所以自己研究了一下,把它的过程记录下来留着以后可作参考。具体方法如下:
第一步到http://www.51hei.com/下载并安装Keil C:
直接找开Keil C一直下一步,中间填下SN码,这个在破解的KEIL C软件里面都会有的。安装完成后的环境如下:
图片[1]-怎样让Keil软件同时兼容51单片机和ARM单片机的问题-我爱单片机

第二步把上图Tools文件用文本的方式打开并复制里面的内容保存起来,内容如下:

[C51]
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
我用的软件兼容性还是蛮好的,里面有C251,,,C51的声明段,因为我只要用到51和ARM兼容,所以我只把C51的代码复制下来就行了。
第三步安装ADK,这里要注意ADK的版本要比KEIL C的版本高一个等级,只有这样才能兼容,如果不这样的话,可能调试功能部分会有问题。比如KEIL与proteus进行调试时会出现调试不了的问题。
安装ADK同上,直接下一步,有提示要SN号的时候在软件里面找了复制,粘贴就行了。安装路径跟KEIL C的路径一样就行了,我在网上看有人说不能同一个路径,其实同个路径好点,省了过会要复制两次代码,而且还不用搞两个电路在电脑,又麻烦又不方便。安装后的效果如下:图片[2]-怎样让Keil软件同时兼容51单片机和ARM单片机的问题-我爱单片机

接着打开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

[C51]
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
[C251]
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
[ARM]
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")
[ARMADS]
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
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
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的头文件了,^-^ .
接下来先别高兴,还有一个步骤图片[3]-怎样让Keil软件同时兼容51单片机和ARM单片机的问题-我爱单片机
要做,那就是分别给ARM和51注册库了。具体是打开安装好的KEIL,在FILE->license Managetment
点PK51 prof.Develpors Kit,复制 CID。接着打开ADK软件里面的注册机,如下
图片[4]-怎样让Keil软件同时兼容51单片机和ARM单片机的问题-我爱单片机

粘贴到CID里面,,TARGET选择51,如果是注册ARM就选择ARM,然后点GENERATE,会在上面横条那生成一串注册码,复制,粘贴到上图LicenseManagetment的New License IdCODE,并点后期ADD LIC即可。
因为注册ARM跟Keil C51的注册一样,就不累赘了。注册完成后效果如下:
图片[5]-怎样让Keil软件同时兼容51单片机和ARM单片机的问题-我爱单片机

可以看到51和ARM都已经注册完成,时间可以使用的时候是到2020年的六月和九月。 至此我们的KEIL软件可以兼容51和ARM单片机了。



版权声明 1 本网站名称:我爱单片机
2 本站永久网址:https://52dpj.com
3 本站部分内容来源于网络,仅供学习参考,如侵权,请联系站长 QQ:737313573删除处理。
4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
7加入本站QQ群:775957568,一起学习单片机开发。
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享