一、EXYNOS4412上电启动流程
可以看出,不管是固化在irom里的代码还是三星加密代码都是不需要我们系统/驱动工程师所深究的,所以我们弄清楚了启动流程,接下来来看具体代码。
二、代码段最前端的start.S文件
u-boot上电一启动首先运行的是start.S文件,这是u-boot的第一阶段的代码
start.s:
.globl _start
_start: b reset
ldr pc,_undefined_instruction
ldr pc,_software_interrupt
ldr pc,_prefetch_abort
ldr pc,_data_abort
ldr pc,_not_used
ldr pc,_irq
ldr pc,_fiq
/*_start是一个函数的起始地址,也是编译、链接后程序的起始地址。(此为bootloader第一阶段的代码)U_boot运行的第一/条命令是b Reset 异常向量表(位置固定,不可更改)*/
_undefined_instruction:.word undefined_instruction
_software_interrupt: .word software_interrupt
_prefetch_abort: .word prefetch_abort
_data_abort: .word data_abort
_not_used: .word not_used
_irq: .word irq
_fiq: .word fiq
_pad: .word 0x12345678 /* now 16*4=64 */
/*用 . word 修饰 函数入口地址是让pc程序计数器能够跳到更远的地址(异常向量表异常函数入口地址)*/
_TEXT_BASE:
.word CONFIG_SYS_TEXT_BASE (0x43E00000)
</