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