S5PV210启动原理
ARM启动顺序
BL0(IROM)的作用
初始化系统时钟,设置看门狗,初始化栈和堆
加载BL1
BL1的作用
初始化RAM,关闭Cache,设置栈
加载BL2
BL2的作用
初始化其他外设
加载OS内核
reset状态
GPIO
1)实验伪代码:
1. GPJ2 GPJ2_0 - GPJ2_3
2. GPJ2CON, 0XE0200280 = 0x00001111
3. GPJ2DAT, 0xE0200284
2)汇编代码:
.text
.global _start
_start:
LDR R0, =0xE0200280
MOV R1,#00001111
STR R1,[R0]
LDR R0,=0xE0200284
MOV R1,#00
STR R1,[R0]
loop:
B loop
makefile
led_on.bin:led_on.S
arm-linux-gcc -c -o led_cn.o led_cn.S
arm-linux-ld -Ttext 0x2000000 led_on.c -o led_on.elf
arm-linux-objcopy -O binary -S led_on.elf led_on.bin
clean:
rm -f *.c *.elf *.bin
-
C语言代码
#define GPJCON (*(volatile ubsigned long *)0xE0200280) #define GPJDAT (*(volatile ubsigned long *)0xE0200284) int main() { GPJCON = 0x000011; GPJDAT = 0x00; }
了解开发板资源的步骤
- 找CPU,为了找到系统上电后,第一条执行的代码。
ARM:异常向量表(reset) - 0x0 接的是什么芯片
- 芯片公司重定义的地址。
片内资源:SFR
片外资源: - BOOT程序:
设置时钟clock