Keil5-MDK(四)安装高版本AC5编译出错解决方法

前言

自MDK5.37版本起,AC5(ARMCC)编译器不再作为默认组件进行集成安装,用户需单独完成其安装配置。这一变更可能导致基于AC5编译器的工程项目在编译过程中出现异常,具体表现为路径引用错误、字符编码问题等编译故障。本文旨在提供针对高版本安装后AC5编译器出现编译错误的解决方法,以帮助开发者顺利恢复项目编译环境。

一.编译出现问题

由于 “Keil 5.37 ”及之后版本不再默认安装 AC5(ARMCC) 编译器,这可能导致依赖 AC5 编译器的工程无法正常编译。在编译过程中,输出窗口通常会显示如下错误提示:【*** Target ‘xxxx’ uses ARM-Compiler ‘Default Compiler Version 5’ which is not available.】。

二.解决方法

1.下载AC5编译器

点击文章末尾“资源下载”链接进去下载“AC5(ARMCC)”编译器

2.新建AC5编译器文件夹

右键“Keil5” 软件, 选择【打开文件所在的位置】,点击【 Keil_v5】回到上层目录,然后找到【ARM】文件夹点击进去,新建名为【 ARMCC】文件夹(此文件夹名为方便区别AC6,可以自己命名其它名字,文件夹名只要是英文,不能有特殊字符),点击这个文件夹进去,复制上面的路径,下一步安装要用到。

3.安装AC5编译器

双击运行安装文件 ,点击【Next】;在出现许可条款窗口选择打勾同意,然后点击【Next】;在出现路径选择窗口,点击【Browse】进去,在【Folder name】 框粘贴上一步的路径;最后执行安装。

4.keil中添加AC5编译器

按照图中的步骤添加AC5编译器,若添加失败可重复上述步骤多试几次;

5.keil中选择AC5编译器

点开 “魔法棒”,选择【Target】栏中,在【ARM Compiler】选项中选择 “Use default compiler version 5”,最后点击 【OK】

三.添加AC5编译器编译效果

添加AC5编译器之后,点击编译按钮,重新编译这个工程,编译成功。

参考文章

参考优快云这篇文章:Keil MDK5.37以上版本自行添加AC5(ARMCC)编译器的方法

参考优快云这篇文章:Keil MDK 5.37 及之后版本 安装 AC5(ARMCC) 编译器详细步骤

资源下载

AC5编译器下载

### 关于 Keil v5 AC5 编译器文档及相关问题 #### 文档资源 Keil MDK 提供了详细的官方文档来帮助开发者了解和配置其工具链中的各个组件。对于 Arm Compiler 5 (AC5),可以通过访问 [Arm 官方网站](https://developer.arm.com/tools-and-software/embedded/keil-mdk/arm-compiler) 获取完整的编译器手册和技术指南[^1]。 如果需要更具体的指导,可以查阅《Keil MDK User Guide》以及《Arm Compiler 5 Reference Guide》,这些文档通常随软件一起提供,或者可以从官网下载最新版本。 --- #### 解决方法安装并启用 AC5 编译器 自 Keil MDK 5.37 起,默认情况下不再预装 AC5 编译器,因此可能会遇到如下错误提示: > *** Target 'STM32xxxx' uses ARM-Compiler 'Default Compiler Version 5' which is not available. 要解决此问题,需手动安装 AC5 编译器。以下是具体的操作流程说明(基于引用内容整理): 1. **启动安装程序** 打开 Keil MDK安装文件或更新管理器,进入附加组件部分查找 `Arm Compiler 5` 并勾选安装选项[^2]。 2. **完成安装后验证** 操作完成后,重新启动 MDK 工具,此时可以在项目设置的编译器选项中找到已成功安装的 Arm Compiler 5.x 版本[^3]。 需要注意的是,某些旧版工程可能仍依赖特定版本的 AC5(如 5.06u7),建议根据实际需求选择合适的子版本进行安装--- #### 使用注意事项 当切换至 AC5 编译器时,请注意以下几点: - 配置路径:确保项目的工具链路径指向正确的 AC5 文件夹位置。 - 兼容性测试:针对不同硬件平台运行调试,确认无潜在兼容性隐患。 - 更新驱动库:若使用 STMicroelectronics 等厂商的标准外设库,则应同步升级到支持 AC5 的版本。 此外,尽管 AC5AC6 均属于同一产品线下的编译器系列,但由于两者内部实现机制存在差异,在迁移过程中难免会出现一些细微差别,比如语法解析严格度调整或是优化策略改变等问题。 --- ```c // 示例代码片段展示如何定义中断向量表以适配 STM32 微控制器架构特性 __attribute__((section(".isr_vector"))) const uint32_t vectors[] = { /* 初始堆栈指针 */ (uint32_t)&_estack, /* 复位处理函数入口地址 */ (uint32_t)&Reset_Handler, // ...其他异常和服务请求映射项... }; ``` 上述例子展示了通过指定存储区域属性的方式定制化嵌入式系统的引导加载过程,这是利用 C/C++扩展功能的一个典型应用场景之一。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值