有没有一种方法可以在不使用C ABI的情况下在ARM上设置程序计数器?

时间:2019-02-23 13:16:56

标签: rust ffi

此代码用于将程序计数器设置为ARM体系结构上的vector_table的地址:

static mut JUMP: Option<extern "C" fn()> = None;
JUMP = Some(core::mem::transmute(vector_table));
(JUMP.unwrap())();

我使用let vector_table = *((address + 4) as * const u32);

计算向量表

有什么方法可以在纯Rust代码中表达相同的内容?

等效的C代码是:

((void (*)(void))address[1])();

addressuint32_t *address,因此您将其偏移4个字节以命中向量表。

0 个答案:

没有答案