3.进行CPU初始化(频率、正常模式、打开所有模块、串口、SDRAM时序参数)
/*
* we do sys-critical inits only at reboot, 我们只在重新启动的时候才进行系统重要部分初始化
* not when booting from ram! 从ram中启动的时候不执行
*/
#ifndef CONFIG_SKIP_LOWLEVEL_INIT //这个很关键
bl cpu_init_crit //跳转到cpu初始化部分
/*
* before relocating, we have to setup RAM timing 在加载之前,先设置RAM的时序
* because memory timing is board-dependend, you will 因为RAM因板子的不同而不同
* find a lowlevel_init.S in your board directory. 在你板子目录里找到lowlevel_init.S这个文件
*/
bl lowlevel_init //跳转到配置EMI即SDRAM时序参数部分
#endif
cpu_init_crit代码如下:
/*
*************************************************************************
*
* CPU_init_critical registers
*
* setup important registers 设置重要的寄存器
* setup memory timing 设置存储器的时序
*
*************************************************************************
*/