【嵌入式】keil5安装(同时兼容C51和STM32)

        最近在开发STM32的时候,安装Keil5,遇到STM32和C51的共存的问题,在网上找了很多方法,又遇到一些bug,最终还是弄好了。因此将处理的过程记录下来,希望对遇到相同问题的朋友一些启发。

1、下载安装包

Keil Product Downloads官网链接:Keil Product Downloads

2、安装C51

先安装C51的安装包,再安装STM32的。

需要注意一下几点:

  • 关闭360等杀毒软件;
  • 以管理员方式进行安装和破解;
  • 不能有中文路径或字符。

首先在安装的盘里面建立两个文件夹, "KeilC51" 是安装51的安装地址,"KeilSTM32" 是STM32的安装地址。

双击C51的安装包,开始安装,51的安装很简单,如下图所示,选择安装地址KeilC51

这些空格随便填一个空格就行

之后继续选择next,51就基本安装完了,下面开始安装STM32。

3、安装STM32

双击STM32安装包直接下一步到如下图所示,选择安装地址:  KeilSTM32

注意那个Pack的地址会自动找到路径,如果不会自动找到路径的话自行补充路径。而且注意Pack地址字母的大小写,不然在之后安装芯片包的时候,与芯片包的安装地址不对,会报以下错:

报错提示: the specified CMSIS Pack Root directory does NOT exist! Please take a moment to review if the value is correct or create a new one via cpackget init command

随便填一个空格就行

至此,C51和STM32都安装好了,但现在还不能用,还需进行破解和共存

4、C51和STM32共存

分别打开C51和STM32安装位置~D盘的  KeilC51  和  KeilSTM32 文件夹。

将C51文件夹内的C51 和 UV4复制粘贴到KeilSTM32路径下,选择替换:

然后分别打开  KeilC51  和  KeilSTM32 文件夹内的TOOLS.INI文件,将KeilC51的TOOLS.INI文件内容全部赋值粘贴到 KeilSTM32的TOOLS.INI文件最下边。

粘贴过去后,一定要修改KeilSTM32的TOOLS.INI文件原本KeilC51的TOOLS.INI文件的C51的路径。

将其从:PATH="D:\KeilC51\C51\"  改成:PATH="D:\KeilSTM32\C51\"

然后打开KeilSTM32路径下的Keil5(也可以将这个文件UV4创建快捷方式放到桌面)

5、C51和STM32破解

C51和STM32破解这里就不在阐述了,百度一下有很多教程。只需注意以下几点就行:

  • 关闭360等杀毒软件;
  • 以管理员方式进行安装和破解;

破解之后,在图中的两个框都有Expires:Dec 2032的字样,就破解完成了。

6、安装芯片包

建议直接下载芯片包安装,较快。

 直接双击pack包,选择安装地址。

注意:芯片包的安装地址跟安装STM32时候的pack地址相同,规避字母大小写,否则会产生错误。

至此,完毕!

7、可能会遇到的其他问题

1、C51仿真器的安装位置

如果在之后的51单片机使用中,需要用到仿真器,那么仿真器的安装位置应该安装在STM32的安装地址"KeilSTM32" 上。(安装在C51的安装位置可不可行我不知道,没试过,有空可以自行尝试)

如下所示是普中C51开发板的仿真器的驱动安装:

并且在连接好电脑和仿真器之后,才继续安装驱动,并用管理员身份运行安装,最好要把 360 等杀毒软件先关掉 。

下图是安装好仿真器之后,验证可行性的测试。连接好C51开发板,打开一个C51的工程文件,可以通过编译和进行调试。

2、Keil_5.37以上版本编译会报错

我这里安装的是Keil_539版本。

编译一个STM32工程之后报错,错误提示如下:

*** Target 'Target 1' uses ARM-Compiler 'Default Compiler Version 5' which is not available.
*** Please review the installed ARM Compiler Versions:'Manage Project Items - Folders/Extensions' to manage ARM Compiler Versions.'Options for Target - Target' to select an ARM Compiler Version for the target.
*** Build aborted.
Build Time Elapsed:  00:00:01

这时打开keil 软件会发现下图方框哪里会显示:Missing Compiler Version 5(这里我是解决问题之后截的图)

这是因为MDK5.37及以上的版本,默认不再安装Compiler Version 5,而这些例程却是用Compiler Version 5编译器,所以需要手动安装下Compiler Version 5编译器。

解决方式:从之前老版本的arm文件夹中找到【ARMCC文件夹】,将【ARMCC文件夹】粘贴到新ARM路径下。或者下载以下提供的链接;

这里提供一个ARMCC文件

链接:百度网盘 请输入提取码

提取码:yvpq

下载好ARMCC文件之后,将其放到keil(stm32)的安装目录的ARM目录之下,如图所示:

然后,按下图所示步骤添加路径: 

添加好路径之后,在魔术棒里面的Target去设置ARM Compiler,就多出了个V5.06 update 7(build 960)

再次编译,就编译成功了!!!!!!

注意:如果编译还是出错,可以选择使用默认的:   use default compiler version 5,就可以编译通过了。

希望这篇文章对您有所帮助。

如有误导之处请指出!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/1495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新牛市新方向:探索加密货币生态的未来

序章:牛市来袭,新的探索 新的牛市来临,带来了加密货币世界的一次次惊喜。比特币、以太坊、Solana等生态系统在这场盛宴中展现出各自的独特魅力,带来了一场场引人入胜的探索之旅。让我们跟随着这些生态系统的脚步,一起…

基础算法前缀和与差分

前言 本次博客会介绍一维和二维的前缀和,以及一维二维差分的基本使用,尽量画图,多使用配合文字 使大家理解,希望有所帮助吧 一维前缀和 问题描述 这里有一个长度为n的数组,我们要算出【2,5】区间的元素和 暴力思…

Mogdb 5.0新特性:SQL PATCH绑定执行计划

前言 熟悉Oracle的dba都知道,生产系统出现性能问题时,往往是SQL走错了执行计划,紧急情况下,无法及时修改应用代码,dba可以采用多种方式针对于某类SQL进行执行计划绑定,比如SQL Profile、SPM、SQL Plan Base…

Linux——网络管理nmcli

nmcli 不能独立使用,需要对应的服务启动 1. NetworkManager.service 2. 网络配置和服务不相关 3. 通过 nmcl i 建立网络配置和网卡之前的映射关系 网卡 简称:nmcli d DEVICE :物理设备 TYPE: 物理设备类型 ethernet 以太网…

C++设计模式:适配器模式(十四)

1、定义与动机 定义:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作。 动机: 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境…

强固型工业电脑在码头智能闸口、OCR(箱号识别)、集装箱卡车车载电脑行业应用

集装箱卡车车载电脑应用 背景介绍 针对码头集装箱卡车的调度运用, 结合码头TOS系统设计出了各种平台的车载电脑(VT系列)和车载LED显示屏(VLD系列),同时提供各种安装支架,把车载电脑固定到狭小的驾驶室中;同时提供了各种天线选择(…

【JVM常见问题总结】

文章目录 jvm介绍jvm内存模型jvm内存分配参数jvm堆中存储对象:对象在堆中创建分配内存过程 jvm 堆垃圾收集器垃圾回收算法标记阶段引用计数算法可达性分析算法 清除阶段标记清除算法复制算法标记压缩算法 实际jvm参数实战jvm调优jvm常用命令常用工具 jvm介绍 Java虚…

高速公路交通运输大数据平台解决方案

前言 交通运输行业面临着多重挑战。其管控困难,涉及广泛地理范围,导致监控成本高且难以及时响应;同时,行业内数据量大,地理信息数据繁多,缺乏高效的可视化工具来揭示数据规律并优化业务;货运和…

回溯算法-组合问题

回溯算法-组合问题 77. 组合 问题描述 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输入:n 4, k 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ]示例 2&a…

05集合-CollectionListSet

Collection体系的特点、使用场景总结 如果希望元素可以重复,又有索引,索引查询要快? 用ArrayList集合, 基于数组的。(用的最多) 如果希望元素可以重复,又有索引,增删首尾操作快? 用LinkedList集合, 基于链表的。 如果希望增…

基于SpringBoot + Vue实现的奖学金管理系统设计与实现+毕业论文+答辩PPT

介绍 角色:管理员、学院负责人、学校负责人、学生 管理员:管理员登录进入高校奖助学金系统的实现可以查看系统首页、个人中心、学生管理、学院负责人管理、学校负责人管理、奖学金类型管理、奖学金申请管理、申请提交管理、系统管理等信息 学院负责人:学院负责人登录系统后&am…

python3--lxml pytoml.core.TomlError expected_equals报错解决

文章目录 一、问题二. 解决方法:三. 参考:四. 总结 一、问题 在ubuntu的armbian上的python3中安装lxml时报错了 安装命令是 pip3 install lxml报错简略信息如下图 File "/usr/share/python-wheels/pytoml-0.1.2-py2.py3-none-any.whl/pytoml/par…

2.1K Star微软开源的高质量 iot库

功能描述 该项目是一个开源的 .NET Core 实现,旨在帮助开发者构建适用于物联网(IoT)设备和场景的应用程序。它提供了与传感器、显示器和输入设备等相互作用所需的 GPIO 引脚、串口等硬件的接口。该仓库包含 System.Device.Gpio 库以及针对各种板卡(如 Ra…

redis底层数据结构之ziplist

目录 一、概述二、ziplist结构三、Entry结构四、为什么ZipList特别省内存五、ziplist的缺点 上一篇 redis底层数据结构之SDS 下一篇 明天更新 一、概述 一种连续内存空间存储的顺序数据结构,每个元素可以是字符串或整数。优点:节省内存空间。适用于存储小规模的列表…

STM32 | USART实战案例

STM32 | 通用同步/异步串行接收/发送器USART带蓝牙(第六天)随着扩展的内容越来越多,很多小伙伴已经忘记了之前的学习内容,然后后面这些都很难理解。STM32合集已在专栏创建,方面大家学习。1、通过电脑串口助手发送数据,控制开发板LED灯 从题目中可以挖掘出,本次使用led、延…

【Linux文件系统开发】认知篇

【Linux文件系统开发】认知篇 文章目录 【Linux文件系统开发】认知篇一、文件系统的概念二、文件系统的种类(文件管理系统的方法)三、分区四、文件系统目录结构五、虚拟文件系统(Virtual File System)1.概念2.原因3.作用4.总结 一…

减肥变成一种趋势!足球直播是一种刺激——早读(逆天打工人爬取热门微信文章解读)

看直播是打发时间的好方式 引言Python 代码第一篇 洞见 跌入粪坑的钟美美,才是真正的“人间清醒”第二篇 人民日报 来了!新闻早班车要闻社会政策 结尾 变化是生活的法则 而直播的比赛则是这一法则的缩影 每一秒都可能带来转折和惊喜 充满了未知和奇迹 引…

磁盘损坏无法读取:原因、恢复方案与防范之道

在数字化信息爆炸的时代,磁盘作为数据存储的重要载体,承载着无数重要的文件和资料。然而,当磁盘突然损坏,无法读取数据时,我们往往会陷入困境,焦虑不已。面对这种情况,我们该如何应对&#xff1…

Yolo-world使用

1、安装 python pip install ultralytics 前往官网下载模型:https://docs.ultralytics.com/models/yolo-world/#key-features 我这里使用yolov8s-world.pt举例 最简单的使用示例 if __name__ __main__:model YOLO(model/yolov8s-world.pt)results model.pre…

中仕公考:考公还是考编?区别是什么?

公务员和事业编应该如何选择?区别在哪里?中仕为大家总结以下几点,看完就明白了! 事业编制:主要指从事事业单位工作人员所获得的稳定的事业单位编制。 公务员:是指在各级政府机关中,行使国家行政职权,执行国家公务的…