omapl138移植uboot系列之官网获取BSP(第一篇)

      BSP就是board support package(板级支持包,一般由开发板供应商提供),里面的内容就是这个开发板的所有相关的源代码、文档、教程等。

登录TI官网去下载TI为自己开发板移植的uboot,链接如下

http://software-dl.ti.com/processor-sdk-linux/esd/OMAPL138/latest/index_FDS.html

登陆进去界面如下,找到需要的工具,下载Download Linaro Toolchain(交叉编译工具链)和omapl138-lcdk-linux-sdk-src-04.03.00.05.tar.xz(TI移植过得uboot和linux内核)

下载完成之后通过共享文件夹的方式将以上两个压缩文件拷贝到虚拟机ubuntu中去解压,TI提供的压缩文件是tar.xz格式的压缩文件,需要先将其解压成tar格式的压缩文件,然后再解压tar文件,需要两次解压,按一下两步去操作即可解压出。

 

xz –d ***.tar.xz

tar –vxf ***.tar

 

omapl138-lcdk-linux-sdk-src-04.03.00.05.tar.xz 解压后为一个board_support文件夹,该文件夹下有两个目录,如下

可以看出TI移植的uboot和linux内核已经是很新的啦,uboot已经是2017.01版了。

跟以前早期的uboot版本可能已经有了不少的改动,打开目录先大体浏览下。

一看目录结构不怎么陌生,但是怎么会有个Kbuild文件啊,这个东西不是在linux内核配置时候的文件么,那就先按照linux内核配置的命令执行一下看看会不会出现配置界面

make menuconfig

 

 

配置界面出现了,没想到现在连uboot也支持界面配置了,这!

         移植过linux内核的朋友应该都知道,linux内核配置是分两步的,make menuconfig

是第二步,第一步首先根据开发板的架构进行第一次配置。

         在顶层目录下configs目录下有着many以_defconfig结尾的文件,每一个文件都对应一个开发板,以为我们要移植的是omapl138的uboot,故我首先搜一下目录下有没有omapl138开头的配置文件,嗯,找到了omapl138_lcdk_defconfig文件,只此一个文件包含omapl138字段,这个就是我们需要的文件,其他的文件我们不需要,就删掉了。

         执行make omapl138_lcdk_defconfig后

配置成功了,按照习惯,直接make试一下

果然不是很顺利,当编译到spl文件夹下时,出现了错误,关于spl,在这里不做解释,不过不要惊慌,认真分析一下错误提示

/usr/local/omapl138/arm-2009q1/bin/arm-none-linux-gnueabi-ld: u-boot-spl section .data will not fit in region .sram

/usr/local/omapl138/arm-2009q1/bin/arm-none-linux-gnueabi-ld: region .sram overflowed by 2576 bytes

经分析可知,我们编译出的目标文件超出了我们定义的 .sram空间 2576字节

 

这里有两个解决办法,一是直接修改 .sram的空间大小,二是修改配置.sram大小的地方,为了尽快make出我们需要的.bin文件,这里直接采用第一种方式修改

打开spl/u-boot-spl.lds链接脚本可以看到第一行就定义了.sram的空间大小,这里直接修改为42768,保存后退出,继续编译。

经过一段时间的等待,终于编译完成了,目标文件生成了,下一步就是烧录了。

猜你喜欢

转载自blog.csdn.net/weixin_42314225/article/details/82468189