在学习C语言基础语法的时候,我们很容易理解函数的调用,比如我们写好一个加法运算的接口,在main函数中定义两个变量,赋好值,再调用写好的接口,就可以得到结果,好像是再简单不过了。其实这件事说简单也简单说复杂也复杂,下面我们以一个简单的arm裸板程序为例揭开C语言的内部机制。
首先是一段用汇编编写的启动代码,主要干两件事:一个是设置栈,一个是调用main函数。
start.S:
.text
.global _start
_start:
ldr sp, =4096
bl main
halt:
bl halt
接下来是main函数,主要以配置两个寄存器,点亮led灯为例,如果没有接触过嵌入式可以把下面的例子当作往某个固定地址写入某个值。
led.c:
int main()