嵌入式学习---(linux驱动)
uboot版本号:
imx6ull版本号:
linxu启动流程:(系统上电开始)
1. 先执行OCROM的启动程序(确定启动方式)
2. 拷贝bootloader程序到内存
2.1 OCROM的程序中先读取emmc中的HEAD(IVT,DCD)等信息,根据该信息初始化好 内存,拷贝uboot.bin到内存中,执行uboot.bin。(uboot.bin首次被加载的内存的低 地址处,自己搬移自己到高地址处运行)。
2.2 拷贝uboot.bin的前半部分(最多128KB)到OCRAM中,uboot.bin在前半部分将内存初 始化好,拷贝自己的后半部分到内存中 ,执 行后半部分。
3. uboot启动到最后阶段时搬移(如果emmc方 式:读取emmc中的kernel到内存中,如果tftp
方式:通过tftp下载kernel到内存中)kernel到 内存的0x80800000地址处(搬移dtb文件到内存 的0x83000000地址处), 向kernel传参,启动内核
4. 内核启动到最后阶段,根据bootloader传递 的参数加载(挂载的形式:本地及nfs)根文件系 统及设置终端(控制台)
5. 根文件系统挂载完成后,内核中的init进程 退化为用户可见的init进程,init进程加载各种 配置、启动各种脚本(程序)、启动shell至此操作系统启动完成,用户可以在shell下运行程 序