(韦东山——嵌入式Linux 应用开发完全手册)
1、使用C语言代码点亮一个LED
C 语言程序执行的第一条指令,并不在main函数中。生成一个C程序的可执行文件时,编译器通常会在我们的代码中加上几个被称为启动文件的代码——crtl.o、crti.o、crtend.o、crtn.o等,它们都是标准库文件。这些代码设置C程序的堆栈等,然后调用main函数。它们依赖于操作系统,在裸板上这些代码无法执行,所以需要自己写一个。
a、crt0.s
它在第 13行设置好栈指针后,就可以通过第15行调用C函数main 了。C 函数在执行前必须设置栈。
【注意】韦东山老师那本教材上面是有点错误的,比如WATCHDOG寄存器的地址就写成了0x56000010。