1.mtdpartsԴ?源码?
mtdpartsԴ??
本篇内容不讲解uboot源码,只总结面试中高频问到的源码重要知识点。内容适用于嵌入式新人了解uboot,源码对老手有复习和查漏补缺的源码作用。
1、源码PC机启动:上电后,源码bl支付网源码BIOS程序初始化DDR内存和硬盘,源码从硬盘读取OS镜像到DDR,源码跳转执行OS。源码
2、源码嵌入式Linux系统启动:上电后执行uboot,源码初始化DDR、源码Flash,源码juc源码解读将OS从Flash读到DDR,源码启动OS。源码
3、uboot定义与作用:uboot属于bootloader,作为单线程裸机程序,主要作用是arima模型源码初始化硬件、内存、flash等,引导内核启动。
4、uboot启动阶段(不同平台差异):MTK平台:boot rom -> preloader -> lk -> kernel;RK平台:bootrom -> spl(miniloader) -> uboot -> trust -> kernel;NXP平台:bootrom -> bl2 -> ATF -> uboot -> kernel。
5、ap p源码uboot支持多种启动方式:SPI Flash/eMMC/Nvme/SD/Hard Disk/U-Disk/net。启动方式不同,固件存放位置也不同。
6、掌握uboot的关键点:命令和环境变量。uboot启动后大部分工作在shell中完成,vr 平台源码命令用于操作,环境变量如bootcmd和bootargs,用于设置启动参数。
7、bootargs参数详解:root用于指定rootfs位置,console用于设置控制台,mem用于指定内核使用内存大小,ramdisk_size用于设置ramdisk大小,initrd用于指定initrd参数,init用于指定启动脚本,mtdparts用于设置分区。
8、常用bootargs组合:文件系统为ramdisk、jffs2类型、nfs等不同情况下的bootargs设置示例。
总结,了解uboot是嵌入式开发的基础,掌握其启动过程和关键参数,对提高开发效率和解决问题有重要作用。