内联 ARM 汇编指令

Inline ARM assembly instructions

我想在我的 Rust 代码中 运行 一些 ARM 汇编指令,因为我的目标是 raspberry pi。问题是生锈抱怨以下内容:

unsafe {
    asm!("ldr r0, =0x3f200000");
}

我得到 error: Only valid when first operand is register。但是 r0 是一个 ARM 寄存器(?)。

此外,我不想使用原始地址,而是想使用常量,但我也无法让它工作,在阅读了关于此的 rust documentation 之后,我仍然无法理解假定的语法.

r0 是 Aarch32 模式下的有效寄存器名称。 如果你是 运行 Aarch64 模式下的 Rust,你应该使用 ldr x0, =0x3f200000ldr w0, =0x3f200000