我正在使用xtensa-esp32-elf-8.2.0工具链进行编译(基于gcc 8)。我还尝试了xtensa-esp32-elf-5.2.0工具链(基于gcc 5)。两者都生成相同的错误消息。
我编写了一个跳转表,该跳转表具有以下10次指令,这些指令基本上用于跳转到特定地址并执行特定指令。但是编译时出现错误,这是>
汇编程序消息:错误:尝试将.org向后移动
.org .LSAC_jumptable_base + (16 * 6) mov a6, a4 l32i a2, sp, 0x08 l32i a4, sp, 0x10 mov a1, a0 rsr a0, excsave1 rfe
我已经在网上冲浪了,但是,大多数页面都没有提供可行的答案,或者他们说这是编译器版本的问题(在我使用最新的工具链时,我认为这不是正确的解决方案)
有人可以帮忙吗
示例使用我的跳转表:
movi a3, .LSAC_jumptable_base
l32i a0, sp, 0
addx8 a2, a2, a3 // a2 is now the address to jump to
l32i a3, sp, 0x0c
jx a2
.org .LSAC_jumptable_base + (16 * 5)
mov a5, a4 //Here, a4 is the correctly read value
l32i a2, sp, 0x08
l32i a4, sp, 0x10
mov a1, a0
rsr a0, excsave1
rfe
.org .LSAC_jumptable_base + (16 * 6)
mov a6, a4
l32i a2, sp, 0x08
l32i a4, sp, 0x10
mov a1, a0
rsr a0, excsave1
rfe
我正在使用xtensa-esp32-elf-8.2.0工具链进行编译(基于gcc 8)。我还尝试了xtensa-esp32-elf-5.2.0工具链(基于gcc 5)。两者都产生相同的错误...
.org .LSAC_jumptable_base + (16 * 5)
mov a5, a4 //Here, a4 is the correctly read value
l32i a2, sp, 0x08
l32i a4, sp, 0x10
mov a1, a0
rsr a0, excsave1
rfe
.org .LSAC_jumptable_base + (16 * 6)