文章目录
本文将 start.S 到 _main 函数之前的代码执行进行一小结,在这段代码中函数执行的过程如下:
reset (arch\arm\cpu\armv7\start.S)
|-> save_boot_params (arch\arm\cpu\armv7\start.S)
|-> save_boot_params_ret (arch\arm\cpu\armv7\start.S)
|-> cpu_init_cp15 (arch\arm\cpu\armv7\start.S)
|-> cpu_init_crit (arch\arm\cpu\armv7\start.S)
|-> lowlevel_init (arch\arm\cpu\armv7\lowlevel_init.S)
|-> s_init (arch\arm\mach-imx\mx6\soc.c)
|-> _main (arch\arm\lib\crt0.S)
这部分的代码的作用是:
- 关闭irq和fiq,设置CPU喂SVC管理模式
- 设置中断向量表
- 关闭MMU和cache
- 设置栈指针,跳转到 _main