Keil C51與uV3共存的辦法

本文介绍了一种解决uVision2 (uV2) 和 uVision3 (uV3) 在同一开发环境中编译C51程序时出现的兼容性问题的方法。通过调整tool.ini文件中配置项的顺序,使uV2能够正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 系統先安裝uV3後, ARM的license可以正常工作; 隨後再安裝uV2, 編譯C51的程式碼後不能正常工作, 出現下列錯誤訊息:

--- Error: CAN't execute 'C:/Keil/ARM/BIN/A51.EXE'

 

 
解決辦法 --> 開啟tool.ini, 並且將uV2相關的[c51]移動到最前面, 如下:

[UV2]
ORGANIZATION="BlackfinFreak"
NAME="Chen ShengYang"
EMAIL="
chan@msa.hinet.xet"
ARMSEL=1
BOOK0=UV2/RELEASE_NOTES.HTM("uVision2 Release Notes")
Version=V2.2
BOOK1=UV2/UV2.HLP("uVision2 User's Guide")
[C51]
PATH="C:/Keil/C51"
SN=K1DZP-5IUSH-A01UE
Version=V7.0
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")
[ARM]
PATH="C:/Keil/ARM/"
PATH1="C:/Cygnus/"
BOOK0=HLP/RELEASE_NOTES.HTM("Release Notes",GEN)
BOOK1=HLP/ARMTOOLS.chm("Complete User's Guide Selection",C)
BOOK2=HLP/RV_Intro.chm("RV Compiler Introduction",GEN)
BOOK3=C:/Cygnus/Manuals/2_compile.pdf("GNU C Compiler",GEN)
BOOK4=C:/Cygnus/Manuals/4_libs.pdf("GNU C Run-Time Libraries",GEN)
BOOK5=C:/Cygnus/Manuals/5_tools.pdf("GNU C Utilities",GEN)
BOOK6=C:/Cygnus/Manuals/6_auxtools.pdf("GNU C Assembler",GEN)
TDRV0=BIN/UL2ARM.DLL("ULINK ARM Debugger")
TDRV1=BIN/UL2CM3.DLL("ULINK Cortex-M3 Debugger")
TDRV2=BIN/AGDIRDI.DLL("RDI Interface Driver")
TDRV3=BIN/lmidk-agdi.dll("Luminary Eval Board")
TDRV4=Signum/SigUV3Arm.dll("Signum Systems JTAGjet")
LIC0=65ID6-DLQ8T-566Q2-8BJLL-TEXWB-YPNS0
[ARMADS]
PATH="C:/Keil/ARM/"
PATH1="BIN30/"
BOOK0=HLP/RELEASE_NOTES.HTM("Release Notes",GEN)
BOOK1=HLP/ARMTOOLS.chm("Complete User's Guide Selection",C)
BOOK2=HLP/RTL_RELEASE_NOTES.HTM("RTL-ARM Release Notes",GEN)
BOOK3=HLP/RVI.chm("RV Compiler Introduction",GEN)
BOOK4=HLP/RV_cc.pdf("RV Compiler and Libraries",GEN)
BOOK5=HLP/RV_asm.pdf("RV Assembler",GEN)
BOOK6=HLP/RV_link.pdf("RV Linker/Utilities",GEN)
TDRV0=BIN/UL2ARM.DLL("ULINK ARM Debugger")
TDRV1=BIN/UL2CM3.DLL("ULINK Cortex-M3 Debugger")
TDRV2=BIN/AGDIRDI.DLL("RDI Interface Driver")
TDRV3=BIN/lmidk-agdi.dll("Luminary Eval Board")
TDRV4=Signum/SigUV3Arm.dll("Signum Systems JTAGjet")
RTOS0=Dummy.DLL("Dummy")
RTOS1=ARTXARM.DLL ("RTX Kernel")
[KARM]
PATH="C:/Keil/ARM/"
BOOK0=HLP/RELEASE_NOTES.HTM("Release Notes",GEN)
BOOK1=HLP/RTL_RELEASE_NOTES.HTM("RTL-ARM Release Notes",GEN)
BOOK2=HLP/ARMTOOLS.chm("Complete User's Guide Selection",C)
BOOK3=HLP/RV_Intro.chm("RV Compiler Introduction",GEN)
BOOK4=HLP/RV_cc.PDF("RV Compiler and Libraries",GEN)
BOOK5=HLP/RV_asm.pdf("RV Assembler",GEN)
BOOK6=HLP/RV_link.pdf("RV Linker/Utilities",GEN)
TDRV0=BIN/UL2ARM.DLL("ULINK ARM Debugger")
TDRV1=BIN/UL2CM3.DLL("ULINK Cortex-M3 Debugger")
TDRV2=BIN/AGDIRDI.DLL("RDI Interface Driver")
TDRV3=BIN/lmidk-agdi.dll("Luminary Eval Board")
TDRV4=Signum/SigUV3Arm.dll("Signum Systems JTAGjet")
RTOS0=Dummy.DLL("Dummy")
RTOS1=ARTXARM.DLL ("RTX Kernel")

### Keil v5 支持C51STM32项目共存的配置方法 Keil v5 是一款功能强大的集成开发环境 (IDE),能够支持多种微控制器架构的开发工作,包括传统的8051系列单片机和现代的ARM Cortex-M系列(如STM32)。通过合理的配置,可以实现C51STM32项目的共存。 #### 工具准备 为了使Keil v5 同时支持C51和STM32项目,需要确保安装以下组件: - 安装完整的 **Keil MDK** 软件包。 - 下载并安装适用于C51的工具链。 - 确保已下载适合STM32的设备支持库及相关驱动程序。 #### 配置步骤说明 ##### 修改 `Tools.ini` 文件 可以通过编辑 `Tools.ini` 文件来扩展Keil v5 的功能范围。具体操作如下: 将旧版本中的 `Tools.ini` 文件内容复制至当前使用的Keil v5 版本目录下,并替换其中的所有路径指向新版本的位置[^2]。此过程需谨慎处理,以免因路径错误导致软件无法正常运行。 ##### 设置多目标编译选项 在实际开发过程中,针对不同类型的MCU创建独立的工程项目是非常重要的。对于每一个新的工程,在新建时应正确选择对应的器件型号及其关联的编译器类型。例如,当建立一个基于STM32F4xx芯片的新工程时,则应该选取相应的STMicroelectronics提供的官方支持包;而对于传统51单片机应用场合,则选用标准C51编译链接方案即可完成初始化设定[^1]。 ##### 自定义快捷方式管理多个工程文件 考虑到日常工作中可能频繁切换不同类型的目标平台,建议为常用的不同种类工程分别制作专属桌面快捷图标或者利用脚本来简化启动流程。这样不仅可以提高工作效率还能减少人为失误几率。 ```python import os def open_project(project_path): """模拟打开指定路径下的KEIL工程""" command = f'"C:\\Program Files\\Arm\\Keil_v5\\UV4\\uVision.exe" "{project_path}"' os.system(command) if __name__ == "__main__": c51_proj = r"C:\Projects\C51_Project.uvprojx" stm32_proj = r"D:\Workspaces\STM32_Projects\BlinkyLED.uvprojx" choice = input("Enter 'c' to Open C51 Project or 's' for STM32:") if choice.lower() == 'c': open_project(c51_proj) elif choice.lower() == 's': open_project(stm32_proj) ``` 上述Python脚本提供了一个简单的命令行界面让用户快速切换到所需的KEIL工程上。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值