IMX6ULL开发板uboot移植学习记录——基本移植

前言

本文档记录一下学习正点原子阿尔法开发板的学习过程中的uboot移植过程,一是为了加深印象,二十为了提取关键信息方便后续查看,三是记录自学过程中遇到的问题及注意点,避免再次踩坑。

一、编译NXP官方uboot

先将NXP的官方uboot放到ubuntu的自定义文件夹中,或者也可以从NXP官网下载其维护的buoot,先编译一遍。

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig /* 配置:其实就相当于使能一些宏定义,这些宏定义被使能以后,会开启某一些功能 */
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8 /* 这个j8你可以根据自己的电脑配置去修改 */

当然,上述命令太长了,我们在这里可以对NXP的uboot做出第一步修改。打开顶层Makefile文件,找到下面的的代码段,修改ARCH和CROSS_COMPILE两个变量的值。
顶层Makefile修改

上述编译的目的有三个:
1、编译NXP的uboot烧写测试一下,方便大家有个直观印象,知道大概需要修改的内容涉及什么外设,如果只看视频照着做很容易失去自己的思考,导致视频结束就全部忘了:这里发现LCD和网口驱动有问题,不能使用;
2、修改顶层Makefile的ARCH和CROSS_COMPILE的变量值,方便编译的时候不用输入一长串的命令,当然这不是必须的;
3、前面教程已经让我们熟悉了alientek的uboot的使用,这一步咱们不看视频,只看pdf或者啥也不看,知己敲一下命令,这样能够加深对编译的命令步骤的熟悉,不至于过两天又忘记咋操作了。

二、在uboot中添加自己的开发板

这一步就正式开始移植uboot了,这里的顺序和正点原子的不一样,主要是方便记忆和理解。

1、添加开发板对应的头文件

cd include/configs/ /* 进入此目录 */
cp mx6ullevk.h mx6ull_alientek_emmc.h
/* 拷贝完以后将下面的语句修改 */
#ifndef __MX6ULLEVK_CONFIG_H
#define __MX6ULLEVK_CONFIG_H
/* 修改成下面的 */
#ifndef __MX6ULL_ALIENTEK_EMMC_CONFIG_H
#define __MX6ULL_ALIENTEK_EMMC_CONFIG_H
/* 这个做过STM32或者51单片机的应该都理解,如果没有定义这个宏,则define一个宏 */

在include/configs目录下放着各个开发板的头文件,在这里使用的是NXP的mx6ullevk.h,重命名为自己的头文件,只需要修改一下宏就可以了,其他的不需要修改,但是建议还是根据正点原子的pdf文档过一遍这个头文件,虽然看着又长又臭,但实际上坚持一下看完,其实也不难。

2、添加开发板对应的板级文件夹

学习过单片机的都知道,一般我们写某个外设驱动都会建一个xxx.h和一个xxx.c文件,其中头文件用来放一些宏定义、函数声明之类的,具体的驱动实现则放在.c文件里。uboot也是一样,上面我们定义了头文件,那肯定得有.c文件,只不过不是放在一个文件夹而已。

cd board/freescale/
cp mx6ullevk/ -r mx6ull_alientek_emmc
cd mx6ull_alientek_emmc
mv mx6ullevk.c mx6ull_alientek_emmc.c

看到这里大家应该还有印象,上面第一步修改的头文件是mx6ullevk.h,那么这一步肯定是修改mx6ullevk.c啦。
这一步复制的文件夹你可以随便命名gin,但是里面的.c文件则最好跟上面的.h文件同名。
2.1 、修改 mx6ull_alientek_emmc 目录下的 Makefile

重点是第 6 行的 obj-y,改为 mx6ull_alientek_emmc.o,这样才会编译 mx6ull_alientek_emmc.c这个文件。
2.2 、修改 mx6ull_alientek_emmc 目录下的 imximage.cfg 文件

这个路径其实就是咱们刚刚复制出来的文件夹,所以上面的修改一定要对应文件夹名字,而不是对应.c文件的名字!

2.3 、修改 mx6ull_alientek_emmc 目录下的 Kconfig 文件
图2.3
一共四处修改,这里要记住第一处的TARGET_MX6ULL_ALIENTEK_EMMC,等会会用到。这个文件其实是用来给图形配置使用的,记住。
2.4 、修改 mx6ull_alientek_emmc 目录下的 MAINTAINERS 文件
图2.4
这里可以看到,第4行其实是刚才创建的文件夹路径,第5行是刚才创建的头文件,至于第6行其实是配置文件,咱还没创建,这里也可以随便写个名字先,等下再回过头来看。

3、添加开发板默认配置文件

先在 configs 目录下创建默认配置文件,复制 mx6ull_14x14_evk_emmc_defconfig,然后重命名为 mx6ull_alientek_emmc_defconfig,命令如下:

cd configs
cp mx6ull_14x14_evk_emmc_defconfig mx6ull_alientek_emmc_defconfig

这里注意了,上面复制出来的这个文件就是默认配置文件,这个名字要和2.4中所说的名字一样。
图3.1
上面的第一行,不就是咱再第2步创建的文件夹的路径吗?
第4行,就是上面2.3提示要记住的名字,其实就是在这里使能TARGET_MX6ULL_ALIENTEK_EMMC这个宏,这样2.3里的内容才会出现在图形配置界面。

4、修改 U-Boot 图形界面配置文件

uboot 是支持图形界面配置,关于 uboot 的图形界面配置下一章会详细的讲解。修改文件arch/arm/cpu/armv7/mx6/Kconfig
图4.1
这个是为了将TARGET_MX6ULL_ALIENTEK_EMMC选项配置到图形化界面中去,是和第3步以及2.3关联在一起的
图4.2
这个是为路径就是咱们刚才第二步里创建的文件夹,这句话的意思就是调用这个路径下的Kconfig文件。

5、编译测试一下

到这里基本的移植就做好了(除了LCD和网口驱动),所以先做个测试。按第一步的编译命令执行一遍。
如果只是单纯地看视频来移植,或者单纯地看pdf移植,我相信一旦过去关了视频和Pdf立刻就忘记了。有一些修改我们可以不知道为什么要改,毕竟是初学者嘛,但是怎么改肯定要知道的,比如我上面列出的几处修改的文件或者文件夹,其命名是互相关联的,我们可以改成任意的名字,但是关联在一起的必须是相同的名字,否则就会出错。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值