【发布时间】:2017-03-21 18:53:25
【问题描述】:
我正在尝试学习 arm cortex m4 的汇编编码。
__asm volatile (
" LDR r0,=MY_NUM \n" /* Restore the context. */
" \n"
".align 2 \n"
"MY_NUM: .word 0x12345678 \n"
);
我在 ldr 指令中收到“错误 #29:预期的表达式”。 如何解决?
【问题讨论】:
-
建议:不要使用内联汇编。这是一个复杂的事情,最好在你学会独立汇编之后留下来;)
-
感谢回复,
-
感谢回复,但我想使用 cortex m4 的汇编编码,我该如何处理?我在 FreeRTOS 端口中看到了内联汇编,我试图在我的代码中实现它。
-
@TejalBhardwaj - 如果您希望使用 Cortex-M4 的程序集...那么您只需编写独立的 ARMv7 程序集。您特定的基于 Cortex-M4 的硬件的供应商可能已经提供了您需要的所有示例文件;特别是关于启动代码;这是“启动”所必需的 - 假设您有一个裸机环境。
-
如果您在 C 中需要它,那么内联是唯一的方法。但是,如果可以的话,您可以在单独的文件中编写整个 asm 函数并从 C 中调用它们。
标签: assembly arm cortex-m3 stm32f4discovery