【ARM】MDK-编译时Linker Error:Internal fault

news/2024/12/26 4:59:12/

【更多软件使用问题请点击亿道电子官方网站】

1、 文档目标

记录问题ARMCLANG: Linker Error: Internal fault: [0xb3b91b:6120001]的解决方案,以及添加原厂对于该问题的说明链接,为同事解决该问题提供参考。

2、 问题场景

客户在编译时linking中出现报错信息

.\SPIN32G0601-JXPR-VSH SPIN32G0601-JXPR-VSHaxf: Internal fault: [0xb3b9b:6120001]

图2-1

此问题在Arm Compiler version 6.11中引入。到目前为止,我们只在链接器分散文件包含. any选择器和区段具有随机大小时看到过它。当从目标对话框中选择使用内存布局选项时,µVision创建包含. any选择器的分散文件。

注:在极少数情况下,使用 Arm 编译器版本6.11或 Arm 编译器版本 6.12生成应用程序时,会出现该报错。

3、软硬件环境

1)、软件版本:MDK 5.27 Arm 编译器版本 6.12

2)、电脑环境:Windows 10

3)、外设硬件:无

4、解决方法

方法1)、更改编译器优化级别。

首先点击图4-1-1标记1处快捷方式,进入 Options for Target 目标窗口- ,并选择C/C++(AC6)。uVision中,可以根据如图4-1-1的标记 3 选择优化的级别。

当需要调试时,将优化级别从0(-0)更改为1(-01)(建议),反之亦然。对应用程序版本使用不同的优化级别(1或更高)。

图4-1-1

方法2)、更改设置One ELF Section per Function

首先点击图4-2-1标记1处快捷方式,进入 Options for Target 目标窗口- ,并选择C/C++(AC6)。uVision中,可以根据如图4-2-1的标记 3 取消One ELF Section per Function的选择,编译后无报错。

图4-2-1

注意:如果不能使用Arm编译器版本6.13,有不同的方法来解决这个问题。前两种解决方法很简单,并尝试改变部分大小,但它们可能起作用,也可能不起作用。唯一安全的解决方法是不要在链接器分散文件中使用ANY选择器。

方法3)、最安全的解决方法是将链接器分散文件中的.ANY选择器替换为*(如果可能的话)。如果你使用的是自定义散射文件,你可以这样修改它:

修改前

图4-3-1

修改后

图4-3-2

注:如果您在uVision的目标链接器对话框选项中选择了目标对话框中的“ Use Memory Layout from Target Dialog ”选项,µVision将为您生成分散文件。在这种情况下,您需要禁用此选项并手动编辑已经创建的散射文件。

图4-3-3

方法4)、将Arm Compiler version 更新至6.13及以上版本,该编译器版本为Keil MDK 5.29版本的一部分,更加直接的方法更新软件版本至Keil MDK 5.29及以上版本。

官网参考链接:ARMCLANG: Linker Error: Internal fault: [0xb3b91b:6120001]

 

————————————————————————

​ 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。


http://www.ppmy.cn/news/1558180.html

相关文章

Go语言注释规范

Go语言注释规范 1.注释规范包注释文件注释结构体注释和接口注释函数和方法的注释代码逻辑注释 2.Goland注释相关配置包注释和文件注释配置Goanno插件 1.注释规范 包注释 包注释是对包的介绍,每个包都至少有一个包注释,在同一个包下,任一一个…

【文档搜索引擎】缓冲区优化和索引模块小结

开机之后,首次制作索引会非常慢,但后面就会快了 重启机器,第一次制作又会非常慢 这是为什么呢? 在 parserContent 里面,我们进行了一个读文件的操作 计算机读取文件,是一个开销比较大的操作, …

独一无二,万字详谈——Linux之文件管理

Linux文件部分的学习,有这一篇的博客足矣! 目录 一、文件的命名规则 1、可以使用哪些字符? 2、文件名的长度 3、Linux文件名的大小写 4、Linux文件扩展名 二、文件管理命令 1、目录的创建/删除 (1)、目录的创建 ① mkdir…

CCF算法学习-1

1. B - Piano 问题描述 有一个无限长的钢琴键盘。是否存在一个连续的片段,其中包含 W 个白键和 B 个黑键? 设 S 为通过无限重复字符串 wbwbwwbwbwbw 形成的字符串。 是否存在 S 的一个子字符串,其中包含 W 个 w(白键&#xff09…

新手SEO指南如何入门与实操技巧分析

内容概要 在数字化时代,搜索引擎优化(SEO)已成为网站流量获取的重要手段。针对新手,理解SEO的基础是入门的第一步。本文将从多个方面为新手提供系统性的知识,帮助他们掌握SEO的核心概念和实用技巧。 首先&#xff0c…

MongoDB教程002:文档(表)的增删改查

文章目录 1.4 文档基本CRUD1.4.1 文档的插入1.4.1.1 单个文档的插入1.4.1.2 批量插入 1.4.2 文档的基本查询1.4.3 文档的更新1.4.4 删除文档 1.4 文档基本CRUD 文档(document)的数据结构和JSON基本一样。 所有存储在集合中的数据都是BSON格式。 1.4.1…

【深入理解网络协议】

深入理解网络协议 一、基础模型 OSI模型 OSI模型是国际标准化组织(ISO)提出的一个参考模型,它将网络通信过程划分为7个层次,每一层都有特定的功能和责任。 [!TIP] 说明 层次: 物理层:负责传输原始比特流…

外连接转AntiJoin的应用场景与限制条件 | OceanBase SQL 查询改写系列

在《SQL 改写系列:外连接转内连接的常见场景与错误》一文中,我们了解到谓词条件可以过滤掉连接结果中的 null 情形的,将外连接转化为内连接的做法是可行的,正如图1中路径(a)所示。此时,敏锐的你或许会进一步思考&#…