uboot——之初体验

官方下载地址:ftp://ftp.denx.de/pub/u-boot/

uboot的终极奥义就是启动内核。

但是,现在,我们先做最基本的,去官网下载一个支持自己板子的uboot,然后解压缩,打补丁。

官网的uboot肯定不能对应所有的板子,所有需要根据自己特定的板子打补丁,以满足自己特定cpu的需求。

 在我之前的博客中有说到高级变量引用功能。

看看uboot中的某处Makefile代码:

 艾特符表示的是目标文件。

现在,我们说一下打补丁的操作。

天下的uboot都是一样的,都在官网下载,不同的用户,对uboot有不同的配置需求,如果每次都从uboot本身的源码去更改,那么工作量也太大了,也不利于维护,补丁文件则解决了这个问题,通过打不同的补丁,可以达到不直接更改uboot源码的目的,通过补丁文件可以看出自己的板级支持包和官网uboot源码的异同,补丁也是现在推荐的方式。

打补丁通过linux的patch命令,先解压缩uboot源码,

 

然后准备好韦老师的补丁文件。由于补丁是要打在我们解压缩的uboot目录里面去的,所以要先进入这个uboot解压缩好的目录,因为补丁文件依赖于uboot的某些文件或路径,这也是为韦老师要给我们说一下 -p 选项,patch -p1 <  补丁文件目录,-p1表示忽略补丁文件的第一级目录,-p2表示忽略二级,-p3表示忽略三级,-p4表示忽略4级,以此类推。我们需要先cd到解压缩的uboot目录下执行patch命令,由于已经位于当前uboot目录下,所以需要忽略第一级目录,故应该加上-p1选项,也就是 patch -p1  < ../ubootxxx_jz2440.patch.

 

打好补丁之后,执行make 100askconfig,再make,就可以编译处uboot.bin文件了。

打好补丁之后,要了解uboot最好的方式就是先看Makefile,先执行make 100ask24x0_config配置,然后make编译,可以得到最后的uboot.bin文件,这样就可以烧写进单板了。

为什么需要先make 100ask24x0_config配置,可以参见uboot文件夹中的README文件,里面有介绍。

上面是打好补丁之后的uboot文件中的makefile中的一部分。源码该部分如下:

韦老师自己加入了100ask的配置。

这里说明一下smdk2440和s3c2440的区别:

smdk:Samsung MCU Development Kit  三星开发板

s3c2440是芯片的型号。

 初学的时候,可以先不用管补丁文件,先直接使用厂商提供的。熟悉之后,你就可以为所欲为了。

posted @ 2018-01-21 12:38  Crystal_Guang  阅读(407)  评论(0编辑  收藏  举报