处理器上电以后,首先执行引导程序,引导程序把内核加载到内存,然后执行内核,内核初始化完成以后,启动用户空间的第一个进程。
嵌入式设备通常使用NOR闪存作为只读存储器来存取引导程序。NOR闪存的容量比较小,最小读写单位是字节,程序可以直接在芯片上执行。从物理地址0取指令,也就是到NOR闪存的起始位置取指令。
嵌入式设备通常使用U_Boot作为引导程序。U_Boot(Universal Boot Loader)是德国DENX软件工程中心开发的引导程序,是遵循GPL条款的开源项目。
_start是U_Boot程序入口,直接跳转到标号reset执行,附上reset、_main及run_main_loop代码及注解,大家一起来学习哈: