c - 如何在ARM代码战士项目中调用C语言的汇编代码?

标签 c assembly arm

我想在我的 C 代码中的某个位置重置 PC 指针,这可能需要一些汇编函数。

所以我按照arm网站上的说明进行操作,然后:

在我的项目的一个 .s 文件中,我添加了:

     PRESERVE8
     AREA    SCopy, CODE
     EXPORT reset 
   reset  
     LDR PC, #0                                             
     END

然后在我的一个 .c 文件中,我做了:

extern void reset();

并在某处调用reset()函数。但是,我总是被告知找不到重置符号。我错过了什么吗?

最佳答案

你可以用纯C来做到这一点:

typedef void(*func)();
func reset = NULL;
reset();

关于c - 如何在ARM代码战士项目中调用C语言的汇编代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25292464/

相关文章:

c++ - __func__ 外部函数定义

c - 内部引导加载程序 ARM cortex M4 NRF52 芯片

assembly - ARM 在 EOR/XOR 和 AND 上进位标志

c - 如何组合两个数组并输出描述中所写的存储值。可能有一些方法可以做到这一点?

c - 使用函数来减少重复性

c - 为什么我在 CS50 Pset 中总是出现段错误?

arm - 对于 Cortex-M3,如何优化 block 复制和右移 + 饱和到 max=5

c - 将汇编语言 (x86) 例程与 C 语言连接起来

c++ - "xor eax, ebp"在 C++ 编译器输出中使用

assembly - ARM 汇编中的 STR 指令不起作用(使用 KEIL)