基于linux系统的CAN总线移动机器人-U-boot移植

10 篇文章 0 订阅
8 篇文章 0 订阅

Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段bootloader 程序。这段bootloader 程序会先初始化DDR 等外设,然后将Linux 内核从flash(NAND, NOR FLASH,SD,MMC 等)拷贝到 DDR 中,最后启动 Linux 内核。当然了,bootloader 的实际工作要复杂的多,但是它最主要的工作就是启动 Linux 内核,bootloader 和Linux 内核的关系就跟 PC 上的 BIOS 和 Windows 的关系一样,bootloader 就相当于 BIOS。所以我们要先搞定bootloader,很庆幸,有很多现成的 bootloader 软件可以使用,比如 U-Boot、vivi、RedBoot 等等,其中以U-Boot 使用最为广泛,为了方便书写,本书会将U-Boot 写为 uboot。uboot 的全称是Universal Boot Loader,uboot 是一个遵循GPL 协议的开源软件,uboot 是一个裸机代码,可以看作是一个裸机综合例程。现在的 uboot 已经支持液晶屏、网络、USB 等高级功能。uboot 官网为http://www.denx.de/wiki/U-Boot/在这里插入图片描述
Linux系统移植包含U-boot的移植、内核的移植以及根文件系统的构建,参考原厂开发板硬件。在 uboot 中找到参考的开发平台,一般是原厂的开发板。参考原厂开发板移植uboot 到我们所使用的开发板上。首先可以从U-boot的官方网站下载所选择的U-boot版本,官方提供的FTP下载链接为:ftp://ftp.denx.de/pub/U-boot/。
在移植之前,我们先编译一下 NXP 官方 I.MX6ULL EVK 开发板对应的uboot,首先是配置uboot,configs 目录下有很多跟 I.MX6UL/6ULL 有关的配置如图。
在这里插入图片描述

从图可以看出有很多的默认配置文件,其中以 mx6ul 开头的是 I.MX6UL 芯片的,
mx6ull 开头的是 I.MX6ULL 开发板的。I.MX6UL/6ULL 有 9x9mm 和 14x14mm 两种尺寸的,所以我们可以看到会有mx6ull_9x9 和mx6ull_14x14 开头的默认配置文件。我们使用的是14x14mm 的芯片,所以关注 mx6ull_14x14 开头的默认配置文件。
本章我们讲解 EMMC 版本的移植,所以使用 mx6ull_14x14_evk_emmc_defconfig 作为默认配置文件。找到NXP 官方 I.MX6ULL EVK 开发板对应的默认配置文件以后就可以编译一下,使用如下命令编译 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

我们在编译的时候需要输入 ARCH 和CORSS_COMPILE
这两个变量的值, 这样太麻烦了。我们可以直接在顶层 Makefile 中直接给 ARCH 和CORSS_COMPILE 赋值,修改

在这里插入图片描述
编译完成以后会生成 u-boot.bin、u-boot.imx 等文件,但是这些文件是 NXP 官方 I.MX6ULL
EVK 开发板。能不能用到正点原子的 I.MX6ULL 开发板上呢?试一下不就知道了!

烧写验证与驱动测试

将 imxdownload 软件拷贝到 uboot 源码根目录下,然后使用 imxdownload 软件将 u-boot.bin烧写到 SD 卡中,烧写命令如下:

 chmod 777 imxdownload
./imxdownload u-boot.bin /dev/sdd

烧写完成以后将 SD 卡插入 I.MX6U-ALPHA 开发板的 TF 卡槽中,最后设置开发板从 SD 卡启动。打开 SecureCRT,设置好开发板所使用的串口并打开,复位开发板,SecureCRT 接收到如下
在这里插入图片描述
可以看出,uboot 启动正常,虽然我们用的是 NXP 官方 I.MX6ULL 开发板的uboot,但是在正点原子的 I.MX6ULL 开发板上是可以正常启动的。而且 DRAM 识别正确,为512MB,如果用的 NAND 版本的核心版的话uboot 启动会失败!因为 NAND 核心版用的 256MB的 DRAM。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr Robot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值