嵌入式设备启动过程(ARM )
1.SOC内部IROM固化代码,在上电后,被加载到内部IRAM上运行;(此部分做基本的硬件初始化,判断从TF卡/USB/EMMC哪一个存储设备中启动,硬件上通过拨码开关来确定)
2.IRAM运行存储介质中BootLoader的第一阶段(初始化系统时钟、初始化内存,并把BootLoader第二阶段搬移到内存中)
3.内存中运行BootLoader第二阶段(初始化基本的硬件设备(串口、EMMC、SD卡)、加载操作系统到内存中)
4.内存中运行操作系统(Linux、Windows、CE)
5.挂载文件系统
6.运行应用程序
1.u-boot 和Linux内核之间的参数传递
R0:0 没有实际意义
R1: 开发板的ID
R2: 其他参数在内存中开始地址
2.R2保存的地址中保存内存的开始地址和内存的大小,该内存中保存的参数信息是按照双方约定的格式传递的;
3.Linux 2.6之后,tag列表来传递,其格式:tag首地址+偏移得到另一个tag
一个tag 节点:tag头+ 大小+内容