專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

怎樣讓Keil軟件同時(shí)兼容51單片機(jī)和ARM單片機(jī)的問(wèn)題

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年08月04日   【字體:
        相信學(xué)ARM的童鞋大多數(shù)都是先學(xué)過(guò)51的,你如果用Keil這樣的編譯環(huán)境的話,也許你會(huì)發(fā)現(xiàn)之前學(xué)校51的Keil開發(fā)環(huán)境無(wú)法兼容ARM,或者你在做項(xiàng)目,同時(shí)要用到Keil開發(fā)51單片機(jī)和ARM單片機(jī),這個(gè)時(shí)候就開始無(wú)奈了,發(fā)現(xiàn)裝了keil C或ADK 里面都只有51或者ARM一種單片機(jī)核可供選。難道要我們分別安裝這兩個(gè)軟件?答案是不可取的,經(jīng)過(guò)了解,KEIL公司是被ARM公司收購(gòu)了,自從是一家人以后,它們總該相處得好點(diǎn)吧,至少兼容問(wèn)題總不能自家人排斥自家人,那就太不夠意思了,呵呵。
        這幾天因?yàn)楣镜钠齐娔X只有 10G的C盤空間被我裝軟件以及桌面上放的各種文件給填滿了,所以打算把一些軟件移到其它盤,刪除了KEIL軟件以后,發(fā)現(xiàn)之前可以同時(shí)編譯51和ARM 的keil夭折了,所以自己研究了一下,把它的過(guò)程記錄下來(lái)留著以后可作參考。具體方法如下:
第一步到http://www.torrancerestoration.com/ 下載并安裝Keil C:
直接找開Keil C一直下一步,中間填下SN碼,這個(gè)在破解的KEIL C軟件里面都會(huì)有的。安裝完成后的環(huán)境如下:


第二步把上圖Tools文件用文本的方式打開并復(fù)制里面的內(nèi)容保存起來(lái),內(nèi)容如下:

 
[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的聲明段,因?yàn)槲抑灰玫?1和ARM兼容,所以我只把C51的代碼復(fù)制下來(lái)就行了。
第三步安裝ADK,這里要注意ADK的版本要比KEIL C的版本高一個(gè)等級(jí),只有這樣才能兼容,如果不這樣的話,可能調(diào)試功能部分會(huì)有問(wèn)題。比如KEIL與proteus進(jìn)行調(diào)試時(shí)會(huì)出現(xiàn)調(diào)試不了的問(wèn)題。
安裝ADK同上,直接下一步,有提示要SN號(hào)的時(shí)候在軟件里面找了復(fù)制,粘貼就行了。安裝路徑跟KEIL C的路徑一樣就行了,我在網(wǎng)上看有人說(shuō)不能同一個(gè)路徑,其實(shí)同個(gè)路徑好點(diǎn),省了過(guò)會(huì)要復(fù)制兩次代碼,而且還不用搞兩個(gè)電路在電腦,又麻煩又不方便。安裝后的效果如下:

接著打開TOOLS文件,把上面的代碼復(fù)制,粘貼上去。
[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")
此時(shí)可以發(fā)現(xiàn),當(dāng)我們打開KEIL的時(shí)候,里面有了ARM的頭文件,也有51的頭文件了,^-^   .
接下來(lái)先別高興,還有一個(gè)步驟
要做,那就是分別給ARM和51注冊(cè)庫(kù)了。具體是打開安裝好的KEIL,在FILE->license Managetment
點(diǎn)PK51 prof.Develpors Kit,復(fù)制 CID。接著打開ADK軟件里面的注冊(cè)機(jī),如下


粘貼到CID里面,,TARGET選擇51,如果是注冊(cè)ARM就選擇ARM,然后點(diǎn)GENERATE,會(huì)在上面橫條那生成一串注冊(cè)碼,復(fù)制,粘貼到上圖LicenseManagetment的New License IdCODE,并點(diǎn)后期ADD LIC即可。
因?yàn)樽?cè)ARM跟Keil C51的注冊(cè)一樣,就不累贅了。注冊(cè)完成后效果如下:


可以看到51和ARM都已經(jīng)注冊(cè)完成,時(shí)間可以使用的時(shí)候是到2020年的六月和九月。 至此我們的KEIL軟件可以兼容51和ARM單片機(jī)了。
關(guān)閉窗口

相關(guān)文章