上机的第一件事启动计算机,因此从uboot讲起如何启动计算机
什么是uboot
bootloader是计算机开机的一小段代码引导程序,uboot属于其中的一种,uboot主要进行了以下两个方面的工作。
1、首先是完成硬件的初始化,初始化时钟,关闭看门狗、中断、mmu,关闭缓冲,初始化sdram等外设
2、将linux内核映像和根文件系统映像从flash(闪存)磁盘中读到SDRAM中,为内核设置参数,最后启动linux内核
uboot和内核是如何完成参数传递的
1、主要通过r0、r1、r2三个寄存器,r0=0,r1表示机器类型ID,r2传递linux启动需要的相关参数
有起始地址、内存大小、linux内核启动后的挂载方式等
2、设置cpu的工作模式,cpu一共有七种工作模式,要将cpu设置为svc模式(管理模式)
3、要禁止中断、关闭mmu和缓存
为什么要给内核传递参数
因为要让内核知道机器id,内核并不是对于所有的开发板都能完美适配的,随着开发板的不断增加,如果要完全适配则内核需要非常大的空间,因此要让内核知道开发板是哪一个,通过内核参数启动对应的内核。
为什么uboot要关闭缓存
因为uboot在启动过程中,如果有缓存数据,可能会导致从缓存数据中取数据,导致启动异常
image镜像中包含了哪些东西
bootsec、setup、system打包成image文件,如何查看system中的系统调用?
在POSIX查系统调用:可移植操作系统接口 portable oporating system interface of unix中
标签:uboot,操作系统,启动,system,开发板,内核,linux From: https://blog.csdn.net/weixin_44297615/article/details/140831047