【问题标题】:Error: Thumb does not support conditional execution错误:Thumb 不支持条件执行
【发布时间】:2021-06-01 16:16:16
【问题描述】:

我正在使用 Thumb 为 Cortex-M7 编写程序集。

it eq                       
eoreq r1, r0, r7
pop {r0}

我正在使用 arm-gcc,它会引发两个错误。

错误:Thumb 不支持条件执行

错误:IT 块中不允许指令 -- `pop {r0}'

我没有看到这里出了什么问题,如果有人可以帮助我,我将不胜感激。

【问题讨论】:

  • 请显示一个完整的 gnu 汇编器命令行来演示该问题
  • 所有这些代码都与最小示例相关吗?

标签: assembly arm thumb


【解决方案1】:

出现这种情况是因为您没有在汇编程序中设置统一语法,并且旧的划分语法不支持一般指令上的条件代码(或者我认为如此)。提供指令

.syntax unified

在文件的开头从分割语法切换到统一语法。这应该可以解决您观察到的问题。

【讨论】:

  • 这部分解决了问题。我在堆栈管理方面遇到了一些问题,这是通过利用 CubeMX 生成的板启动文件解决的(但这不是问题的一部分,只是为了清楚起见)
  • @DiogoJDO 下次请立即回答后续问题。您很幸运,我能够在您不提供额外详细信息的情况下诊断出问题,但通常情况并非如此。如果提问者没有回应,问题很快就会结束。
猜你喜欢
  • 1970-01-01
  • 2017-09-28
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-20
  • 2014-11-11
  • 2013-10-21
相关资源
最近更新 更多