查看原文
其他

Uboot其实是一个复杂的单片机程序,uboot编译体验

嵌入式ARM 嵌入式ARM 2021-01-31

在说uboot之前,先看一下PC机是怎么启动的? 


pc上电、bios、引导操作系统、识别C盘、运行应用程序。


同样的在嵌入系统里面,启动过程:一上电的时候,bootlolder(引导linux内核)、挂接根文件系统、运行应用程序。


bootlolder的最主要的目的:启动内核 


补丁? 


所谓的补丁就是我们在原码包上做了什么修改,我们将这些修改单独列出来放到一个文件,然后发布的时候,把补丁文件给别人家即可。 


怎么打补丁? 


补丁文件中的 “—”表示原来的代码,“+++”表示修改后的代码;比如: 

其中“-”表示原来的文件,“+”表示修改后的代码;


补丁打到哪里去?在补丁文件的前面有说明,要注意路径,如果要忽略某个目录的话,可以: 

打完补丁之后,就可以编译uboot,要想uboot支持哪些单板,需要配置;


配置完之后,直接执行make开始编译; 


编译完成以后,会生成一个u-boot.bin的文件,如图: 


然后将这个bin文件烧写到开发板上面,烧写完成以后在串口上可以看到它的启动信息; 


输入help可以查看uboot有哪些命令; 
如果想查看具体哪个命令的用法,可以输入“? 命令名”即可。


如何查看uboot有哪些环境变量?print 


怎么设置环境变量? set

 

在嵌入式操作系统中,bootloader有很多种,我们这里使用的是uboot;

对于PC机来说内核存在于硬盘上面,BIOS从硬盘上读入内核; 


而对于嵌入linux来说,一般从flash中读取出内核,然后放到SDRAM中去。可以看出,uboot要具备的基本功能:能够读取flash、写之前要初始化SDRAM(要初始化时钟、初始化串口(因为要看一些启动信息))、启动内核。


在开发阶段,我们想让它增加更多的功能,比如说加入定flash的功能,因为在开发中(为了开发方便),内核也是通过uboot通过网络或USB把内核下载到开发板中去的。 


总结一下uboot的功能: 


uboot的源码结构: 

这些源码是怎么组织起来构成一个uboot的,最简单的方法就是它的makefile文件。

 



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存