分析uboot

注:为学习朱有鹏嵌入式课程笔记
1.内核由uboot(bootloader)从sd卡(存储介质)搬到(内存里)链接脚本指定地址处运行。
2.fastboot命令(是uboot的命令),查看partition table on movinand(sd卡),len=N/A(没明确指出是多少)
3.movi read kernel 0x30008000,bootm 0x30008000 从分区中将内核读到内存中,这两条命令就是bootcmd。
4.uboot还可以从远端服务器获取内核,从而启动内核。(条件是服务器搭建好,网络是通的)
在Ubuntu的tftp服务器中放内核镜像,在开发板端uboot里,tftp 0x30008000 zImage-qt ,bootm 0x30008000
5.Linux的elf,bin对应windows的exe,iso
6.du -h vmlinux得到78M vmlinux,这是内核编译的可执行文件。du -h Image得到7.8M Image,这是可执行文件经过objcopy得到的镜像。zImage是由解压缩代码和压缩的Image。
7.用uboot的mkimage工具,将zImage加上64字节头得到uImage(legacy)。libfdt设备树启动(fit)
8.文件的头信息告诉我们这是一个什么样的文件,一般都是先校验头信息。如zImage的头信息的第36字节开始往后的四个字节就存放了一个是代表zImage文件的魔数。用winhex查看zImage.
9.ep enterpoint是镜像的入口,就好像main函数是C语言函数的入口,在zImage的头信息的某处存着ep的地址

猜你喜欢

转载自blog.csdn.net/qq_41648636/article/details/80369264