我正在为 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.
如有任何帮助,我们将不胜感激。
我想说错误消息相当清楚。无论使用什么工具创建包含符号 my_symbol 的目标文件,都没有设置符号的类型,因此链接器必须猜测符号目标处的指令集是arm(32位指令)还是thumb(16位指令)命令对其进行搬迁。
一切正常的事实意味着它猜测正确,但如果您想消除警告,那么您将需要编辑问题以说明哪个工具创建了包含该符号的对象。