Linux内核笔记汇总【持续更新】
更好的阅读体验请见:硬核26000字分析uboot启动过程
汇编阶段
最先执行的是汇编文件start.S,这个文件跟架构有关,例如芯片架构是arm926ejs,那路径就在arch/arm/cpu/start.S
。
.globl reset
reset:
/*
* set the cpu to SVC32 mode
*/
mrs r0,cpsr
bic r0,r0,#0x1f
orr r0,r0,#0xd3
msr cpsr,r0
/*
* we do sys-critical inits only at reboot,
* not when booting from ram!
*/
#ifndef CONFIG_SKIP_LOWLEVEL_INIT
bl cpu_init_crit
#endif
** bl _main**
bl命令是先跳转然后返回到跳转前的地方。
没有定义**CONFIG_SKIP_LOWLEVEL_INIT
**宏,所以执行cpu_init_crit