一、C语言工程简介
把模板在linux解压出来
代码写在interface.c就可以了。
map.lds是链接脚本文件(负责代码的排布)
include中是头文件,src中是写好的源代码
start.s是启动代码,在interface.c之前运行,把cpu和栈做一个初始化
二、启动代码分析
.text
.global _start
_start:
/*
* Vector table
* 异常向量表(占32个字节)
*/
b reset
b .
b .
b .
b .
b .
b .
b .
reset:
/*
* Set vector address in CP15 VBAR register
*/
ldr r0, =_start @把异常向量表的值给r0
mcr p15, 0, r0, c12, c0, 0 @Set VBAR (把r0寄存器的值放到p15协处理器中的c12寄存器)
/*
* Set the cpu to SVC32 mode, Disable FIQ/IRQ
* 把cpu模式改成SVC模式,改成ARM状态,关闭FIQ/IRQ中断
*/
mrs r0, cpsr
bic r0, r0, #0x1f
orr r0, r0, #0xd3
msr cpsr ,r0
/*
* Defines