内联 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, =0x3f200000
或 ldr w0, =0x3f200000
我想在我的 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, =0x3f200000
或 ldr w0, =0x3f200000