STM32初次编译时遇到的ARM编译器问题解析

写在开始的话:本文件描述了一系列笔者遇到的问题,可能都有,建议一一对照,避免遗漏;

文章主要目的是提供解决思路,其中的截图大多为问题解决后的图,所以并不非常细致,希望对遇到相同问题的伙伴有帮助。

以下文字为笔者在对STM32工程模板进行编译时一开始呈现的提示错误信息,可作对比参考:

Build started: Project: STM32_Demo

*** 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.

错误信息意为工程编译所需的ARM编译器版本5不存在,该问题的解决请见“二、”

一、芯片未找到:没下载芯片包(pack)

1、症状:

图 1 芯片包缺失弹窗提示

除此之外,Options forTarget的Device左下的白底方框也显示空白样,正常应为:

图 2 芯片包安装成功后的显示示例

2、原因:keil未安装含有该芯片的芯片包

3、解决方法:安装对应芯片包

step1:打开pack installer

图 3 pack installer位置

Step2:在Pack Installer中搜索并安装芯片包

如下图,左半边有devices的为芯片设备列表,在搜索框输入图1提示的所需芯片STM32F103ZE。(devices和packs的位置在左还是右不重要,重要的是在devices部分搜索)

图 4 Pack Installer界面

如图,devices列表里面出现的我们需要的芯片STM32F103ZE,点击该芯片,右边packs里面有一Device Specific,随之从0 Packs变为2 Packs。

可以看到其描述“STM… selected”,意为在Device Specific下的packs包含我们所需芯片,下载其一即可(网上更多提及的是DFP的pack)。

未下载时打圈处显示为灰色图标+install,点击后开始下载,显示为图中绿色图标+Up to date表示下载完成。

(注:所需时间较长,请耐心等待;网络不好时可能下载失败,建议在网络状况良好时下载)

图 5 Pack Installer中搜索芯片及芯片包安装状态检查

如图4,下载时也可通过下方日志观察下载情况,右下角online字样的左侧会显示芯片包下载的百分之进度。

图 6 Pack Installer正下方的日志

二、ARM编译器不存在:自行下载

1、症状:编译时keil给出错误提示

*** 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.

文字给出的提示,是在ARM编译器5已经下载,但是未正确配置时的操作。

2、原因:

参考KEIL MDK5.37版本自行添加AC5(ARMCC)编译器_armcc.exe下载-CSDN博客,可以得知从MDK5.37开始,AC5(ARMCC)编译器不再默认安装,需要独立安装。

我们可以通过Help中的about uvision查看版本信息

图 7 Help——>about uvision

笔者的keil版本为5.41(方框里的第一行),原装配置的编译器版本为6.22,所以需要自行安装ARM编译器5。

图 8 keil的相关信息

3、解决方法:

step1:ARM编译器5安装向导程序的下载

Downloads – Arm Developer

下滑至Win32处,点击右下角的download开始下载。

图 9 ARM编译器5安装向导程序的下载位置

此处的文件ARMCompiler_506_Windows_x86_b960.zip是ARM编译器5安装的向导程序,下载路径不重要,但最好放在易找到的文件夹中。

step2:ARM编译器5的安装

解压ARMCompiler_506_Windows_x86_b960.zip,按照图中路径,找到setup文件(安装向导),点击“setup”文件后点击next,直到需要选择路径。

图 10 安装向导程序的路径位置

——编译器安装路径的强烈建议

查找keil安装路径:由于keil软件与编译器通常在同一文件夹中,所以可以从原装编译器的路径推导出新编译器应下载的位置;

见图8方框中第二排的信息,笔者的keil安装路径为D:\Apps\Keil_v5,为避免许可证缺失的情况,建议参考下图中的路径(别加Bin!!!),D:\Apps\Keil_v5\ARM\ARM_Compiler_5.06u7(即在原本的ARM文件夹下再建一个ARM_Compiler_5.06u7文件夹,作为ARM编译器5的安装位置)。

图 11 ARM编译器5配置好时的keil信息页面

如出现下图中pending…的问题,可无视,直接点击next,确定开始安装

图 12 pending…问题例图

step3:配置编译器

恭喜你!成功安装了ARM编译器5,接下来我们可以按照keil的提示进行编译器的配置。

(1)'Manage Project Items – Folders/Extensions' to manage ARM Compiler Versions.

按照下图的顺序点击;

路径与编译器安装路径一致:keil安装路径+\ARM\ARM_Compiler_5.06u7;

选好路径之后记得点“OK”!!!

图 13 添加ARM编译器的新版本

如在此处遇到compiler ‘Keil_v5\ARM\ARMCC\Bin\ArmCC.exe‘ not found的问题,请检查ARM编译器5下载路径是否有误,可参考:

compiler ‘Keil_v5\ARM\ARMCC\Bin\ArmCC.exe‘ not found的解决方法_armcc.exe no found-CSDN博客

(2)'Options for Target – Target' to select an ARM Compiler Version for the target.

选择新出现的“Use Default compiler version 5”,然后点击最下面的“OK”

图 14 为项目选择所需编译器版本

三、可能出现的许可证缺失问题——两个方法

症状:keil编译报错

Error: C9555E: Failed to check out a license.

解决方法:

1、参照

【Keil】解决Error: C9555E: Failed to check out a license. & 添加新的编译器 – xgj_0817 – 博客园,是把 ARM_Compiler_5.06u7 文件夹放在 …\Keil_v5\ARM\ 路径下,该方法已在前文提过。

2、但笔者在找到这个方法之前还参考豆包的说法,添加了环境变量,不清楚是否有影响,故在此处一并提出:

(1)右键点击 “此电脑”,选择 “属性”。

(2)点击 “高级系统设置”,在弹出的窗口中选择 “环境变量”。

(3)在 “系统变量” 区域,点击 “新建”,变量名输入ARMLMD_LICENSE_FILE,变量值输入许可证文件的完整路径,亦为keil安装路径+\ARM\ARM_Compiler_5.06u7

图 15 系统变量ARMLMD_LICENSE_FILE与其路径

(4)然后点击 “确定” 保存设置。

作者:用户633700

物联沃分享整理
物联沃-IOTWORD物联网 » STM32初次编译时遇到的ARM编译器问题解析

发表回复