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是芯片的型号。
初学的时候,可以先不用管补丁文件,先直接使用厂商提供的。熟悉之后,你就可以为所欲为了。
欢迎加入作者的小圈子
扫描下方左边二维码加入QQ交流群,扫描下方右边二维码关注个人微信公众号并获取更多隐藏干货,QQ交流群:816747642 微信公众号:Crystal软件学堂
作者:Crystal软件学堂 bilibili视频教程地址:https://space.bilibili.com/5782182 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在转载文章页面给出原文连接。 如果你觉得文章对你有所帮助,烦请点个推荐,你的支持是我更文的动力。 文中若有错误,请您务必指出,感谢给予我建议并让我提高的你。 |