记录一个坑关于STM32 ARM Compiler Version

在用 Keil 进行 STM32 开发的时候,一开始下载,下载的 ARM 编译器是 Version6,他就不兼容老的代码,就很抽象。

所以必须要更换编译器。

可以去官网下载编译器 Downloads - Arm Developer ,也可以自己找资源哈(百度网盘 请输入提取码

那编译器下载好后,要注意安装的地址,一定要在keil5安装的 ARM 目录下,不然会报License错误。

例如:

ARMLMD_LICENSE_FILE is not set. You must set this to the path to your license.
Information about this error is available at: http://ds.arm.com/support/lic87/m1
 General licensing information is available at: http://ds.arm.com/support/licensing/
 If you need further help, provide this complete error report to your supplier or license.support@arm.com.
 - ARMLMD_LICENSE_FILE: unset
 - LM_LICENSE_FILE: unset
 - ARM_TOOL_VARIANT: unset
 - ARM_PRODUCT_PATH: unset
 - Product location: C:\soft\arm-compiler-Version5\sw\mappings
 - Toolchain location: C:\soft\arm-compiler-Version5\Bin
 - Selected tool variant: product
 - Checkout feature: compiler5
 - Feature version: 5.0202006
 - Flex error code: -1
Product: ARM Compiler 5.06
Component: ARM Compiler 5.06 update 7 (build 960)
Tool: ArmCC [4d365d]
".\Objects\Project.axf" - 28 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed:  00:00:01

后面就是添加编译器了

选择安装的编译器version5的地址就好了。

<think>好的,我现在需要帮助用户解决许可证文件未设置导致的报错问题,具体是Error C9555E,提示ARMLMD_LICENSE_FILE环境变量未配置。用户想知道如何正确配置这个环境变量。 首先,我得回忆一下关于ARM许可证配置的知识。通常,使用ARM的工具链比如DS-5或者Keil时,需要设置ARMLMD_LICENSE_FILE环境变量指向许可证文件或许可证服务器。如果这个变量没有设置,或者设置不正确,就会出现无法检出许可证的错误。 接下来,我需要考虑用户可能的操作系统环境。根据用户提供的引用[1]中的路径,他们可能在Linux环境下工作,特别是嵌入式开发,可能使用Petalinux或者类似的工具链。比如引用[1]中的环境变量设置涉及arm-xilinx-linux-gnueabi编译器,这可能是在交叉编译环境中遇到的问题。 用户的问题核心是设置ARMLMD_LICENSE_FILE环境变量。正确的做法通常是设置该变量指向许可证文件的位置,或者指向许可证服务器的地址。例如,如果许可证文件是.dat格式,存放在某个路径下,那么需要将变量指向该文件的路径。或者,如果使用网络许可证服务器,可能需要设置为端口@服务器地址,比如8224@licenseserver.com。 另外,用户可能遇到许可证文件路径不正确的情况,需要检查文件是否存在,权限是否正确。例如,许可证文件是否可读,路径是否正确,是否有空格或特殊字符需要转义。此外,许可证服务器是否可达,端口是否开放,这些也是可能的问题点。 根据引用[1],用户在设置其他环境变量时使用了export命令,因此可能是在Linux的shell环境中配置。因此,解决方案应该包括在终端中临时设置变量,或者在配置文件中永久设置,比如.bashrc或.profile。 可能的步骤包括: 1. 确定许可证文件的位置,比如/opt/arm/licenses/license.dat。 2. 临时设置环境变量:export ARMLMD_LICENSE_FILE=/path/to/license.dat。 3. 永久设置,将上述export命令添加到用户的shell配置文件中。 4. 验证设置是否生效,比如运行arm相关的命令看是否还报错。 同时,需要注意许可证文件的有效性,可能许可证过期或者未包含所需的特性。这可能需要用户联系管理员确认许可证有效。 另外,用户可能混淆了ARM的不同工具链,比如是否使用了正确版本的许可证。例如,不同的ARM工具可能需要特定格式的许可证,或者需要更新许可证文件。 还有,查看官方文档是否有其他要求。比如,有时候可能需要同时设置其他环境变量,或者需要运行许可证管理工具如lmutil来检查许可证状态。 总结步骤: - 确认许可证文件的路径或服务器地址。 - 设置ARMLMD_LICENSE_FILE变量指向该路径或服务器。 - 验证设置,检查错误是否解决。 - 如果问题依旧,检查许可证文件的有效性和格式。 最后,可能还需要考虑权限问题,比如用户是否有权限读取许可证文件,或者许可证服务器是否允许该用户的访问。</think>要解决ARMLMD_LICENSE_FILE环境变量未配置导致的Error C9555E报错,需按照以下步骤操作: ### 1. **确认许可证文件位置** - ARM工具链需要指向有效的许可证文件(扩展名通常为.dat),例如: ```bash /opt/arm/licenses/license.dat ``` - 若使用网络许可证服务器,格式为:`端口@服务器地址`(如:`8224@192.168.1.100`) ### 2. **设置环境变量** - **临时设置**(当前终端有效): ```bash export ARMLMD_LICENSE_FILE=/path/to/license.dat ``` - **永久设置**(推荐): ```bash echo 'export ARMLMD_LICENSE_FILE=/path/to/license.dat' >> ~/.bashrc source ~/.bashrc ``` 若使用其他shell(如zsh),请修改对应配置文件(如`.zshrc`)[^1]。 ### 3. **验证配置** - 检查变量是否生效: ```bash echo $ARMLMD_LICENSE_FILE ``` - 运行ARM编译工具(如armclang),确认是否仍报错。 ### 4. **常见问题排查** - **文件权限问题**:确保许可证文件可读: ```bash chmod 644 /path/to/license.dat ``` - **网络许可证问题**:检查服务器端口是否开放: ```bash telnet 192.168.1.100 8224 # 替换为实际IP和端口 ``` - **许可证有效性**:使用`lmutil`工具检查: ```bash lmutil lmdiag -c $ARMLMD_LICENSE_FILE ``` ### 5. **补充配置(可选)** - 若工具链集成在IDE中(如Keil),需在IDE设置中同步配置许可证路径[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xwhking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值