<Linux开发> -之-系统移植 uboot移植过程详细记录(第一部分)
前言:本系列文章主要讲解正点原子linux开发板 开发过程的一些记录; 本章主要讲解将NXP官方提供的uboot,移植到正点原子的linux开发板上; 一般一款linux开发板的设计与开发,都会参考芯片原厂的demo板,而芯片原厂会对demo板提供一套完整的资料。所以在使用第三方设计的开发板或自己做的电路板时,都会参考芯片远程的demo板的设计;在软件方面也会移植demo板配套的工具等,毕竟芯片原厂提供的资料匹配兼容性肯定是比其它的好的。 本部分主要介绍,相关设计的软件,以及NXP原厂uboot编译测试。
以下开发过程涉及的资料,如有需要,可联系作者索要。 联系方式QQ:759521350
一、uboot移植前期准备 注:以下准备工作,都参考正点原子linux开发手册 1、安装虚拟机和ubuntu;(一般是这样,方便和window环境一起使用) 2、安装交叉编译工具;(编译用) 3、安装FileZillaClient;(方便和window传输文件) 4、安装vscode;(方便uboot源码的一些修改) 5、正点原子Linux开发板;(或IMX6ULL同系列开发板。一般操作过程都差不多,毕竟都是NXP的)
二、NXP原Uboot测试 注:先用NXP原厂的uboot直接测试看看,一般都能正常 运行。同芯片不同开发板,主要区别在于一些配置参数不同,包括一部分驱动选择,名字,存储类型选择等等。 1、将NXP的原厂uboot通过FileZillaClient传到Ubuntu中,然后解压; 解压命令:tar -vxjf 文件名 命令: tar -vxjf uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2 注:原厂uboot使用来源由正点原子linux开发板配套资料提供。
2、在解压后得到的目录下创建mx6ull_water.sh,如下图: 使用命令:touch mx6ull_water.sh 3、可用vscode打开uboot-imx-rel_imx_4.1.15_2.1.0_ga文件夹,并在mx6ull_water.sh中添加如下命令,添加后如下图:
#!/bin/bash
#清理工程
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
#执行配置uboot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig
#执行编译
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
#注1: ARCH=arm 设置目标为arm架构
#注2: CROSS_COMPILE=arm-linux-gnueabihf- 指定编译工具链前缀
#注3: V=1 用于设置编译过程的信息输出级别
#注4: -j16 使用16核编译uboot
4、运行mx6ull_water.sh; 使用命令给文件执行的权限:chmod 777 mx6ull_water.h; 使用命令运行文件: ./mx6ull_water.sh 编译完成后如下图所示:
5、烧写u-boot.bin 使用正点原子提供的sd卡烧写工具“imxdownload”将u-boot.bin下载到SD; 烧写命令:./imxdownload u-boot.bin /dev/sdc 注意:1)imxdownload放到解压的文件的跟目录下;在裸机例程中随便找一个例程进入即可找到imxdownload,将其通过FileZillaClient传到Ubuntu中uboot解压的跟目录下。 2)使用:chmod 777 imxdownload 给予权限 3)/dev/sdc,中的sdc是SD卡挂载到ubuntu 的文件名,烧写时,建议先查看SD卡是否正常挂载成功,否则可能会损坏SD卡; SD卡查询命令:下图是有很多sda、sdb、sdc、sde等,其中sda/1/2/5是系统磁盘,其余是读卡器的,由于作者用的读卡器是多卡位的,所以有多个,其中有sdc、sdc1,即sdc是作者使用的卡槽,sdc1是一个分区。所以作者选用的是sdc。 烧写进入sd卡:./imxdownload u-boot.bin /dev/sdc
6、运行测试 (1)将开发板设置为SD卡启动;
(2)将SD卡插入开发板,打开secureCRT;
(3)按下复位键,可在CRT中看到相关输出,倒计时结束前按下回车键,让系统串口终端停留在boot,如下图:
7、NXP原厂uboot测试完成,但是可以从输出的信息中看出,有些功能是不正常的,比如网口信息,LCD,设备名称等等;这是因为,原厂的uboot是配套官方的demo板子做的,而作者使用的是正点原子的开发板,所以硬件上会有一部分差异,比如网络芯片LAN8720的复位引脚,LCD的大小和相关参数等;接下来的移植工作,就是针对正点原子linux开发板的硬件电路不同而修改的一些操作。
由于篇幅过长,文章分两部分写,第一部分主要是在环境搭建好的基础上,先测试运行NXP原厂的uboot是否能正常使用,并查看运行的相关信息。以便熟悉编译下载运行的流程,方便接下来移植后的一系列工作。
本系列文章讲解记录过程,均参考正点原子提供的驱动开发教程,如有遗漏或讲解不足指出,还请不吝赐教,也欢迎交流技术。
|