如何使用ARM DS解决重定位警告L6437W?

问题描述 投票:0回答:1

我正在为 Cortex-R5 编写一些启动代码。代码编译、链接和运行没有问题。但是,我收到以下警告。

Warning: L6437W: Relocation #REL:7 in startup.o(VECTORS) with respect to my_symbol. Branch relocation to untyped symbol in object startup.o, target state unknown.

该代码调用

bl
my_symbol
,其中包含大约 90 条左右的指令和
bx lr
来返回。

创建的ROM并不大(~30K),条目位于HIVEC(0xFFFF_0000)中。我在 ARM 编译器错误和警告参考指南版本 5.06u1 中查找了警告。该文本不是很有帮助,并且包含拼写错误。

来自参考指南:

L6437W:Relocation #<rel_class>:<idx> in <objname>(<secname>) with respect to <armsym>. Branch relocation to untyped symol in object <armobjname>, target state unknown.

如有任何帮助,我们将不胜感激。

assembly arm
1个回答
0
投票

我想说错误消息相当清楚。无论使用什么工具创建包含符号 my_symbol 的目标文件,都没有设置符号的类型,因此链接器必须猜测符号目标处的指令集是arm(32位指令)还是thumb(16位指令)命令对其进行搬迁。

一切正常的事实意味着它猜测正确,但如果您想消除警告,那么您将需要编辑问题以说明哪个工具创建了包含该符号的对象。

© www.soinside.com 2019 - 2024. All rights reserved.