0%

uboot

linux设备启动过程

一开始就是芯片厂商的引导程序了,然后就到uboot,接着加载内核和驱动,挂载根文件系统,加载虚拟文件系统,加载tty中断,自启动开机脚本和软件。

uboot

uboot 属于bootloader的一种,是用来引导启动内核的,它的最终目的就是,从flash中读出内核,放到内存中,启动内核

所以,由上面描述的,就知道,UBOOT需要具有读写flash的能力。

uboot使用

uboot刚开始被放到flash中,板子上电后,会自动把其中的一部分代码拷到内存中执行,这部分代码负责把剩余的uboot代码拷到内存中,然后uboot代码再把kernel部分代码也拷到内存中,并且启动,内核启动后,挂着根文件系统,执行应用程序。

为什么要uboot

1)uboot主要作用是用来启动操作系统内核。体现在uboot最后一句代码就是启动内核。
2)uboot还要负责部署整个计算机系统。体现在uboot最后的传参。3)uboot中还有操作Flash等板子上硬件的驱动。例如串口要打印,ping网络成功,擦除、烧写flash是否成功等。
4)uboot还得提供一个命令行界面供人来操作。很简单,至少你能看到。

计算机系统的组成部件非常多,不同的计算机系统组成部件也不同。但是所有的计算机系统运行时需要的主要核心部件都是3个东西:CPU + 外部存储器(Flash/硬盘) + 内部存储器(DDR SDRAM/SDRAM/SRAM)。而一般的PC机启动过程为:PC上电后先执行BIOS程序(实际上PC的BIOS就是NorFlash),BIOS程序负责初始化DDR内存,负责初始化硬盘,然后从硬盘上将OS镜像读取到DDR中,然后跳转到DDR中去执行OS直到启动(OS启动后BIOS就无用了)。

uboot环境变量
uboot修改
uboot烧写
uboot和裸机

一般uboot都是有一个开机时间,也就是倒计时,这个期间进行任意键输入就会取消加载内核,从而变成变成裸机开发。

此时就是跟51的单片机开发一样了,对着手册看着寄存器进行编写,然后把代码编译完毕,ftp传到特定地址,然后去运行那个地址的代码,就是裸机运行了,不过这个一般只是用来测试硬件的而已,不会真的裸机开发的。

总结
-------------下次的来访是什么时候呢[doge]-------------