i.mx6soloX开发 之 Uboot

写在前头

*.版权声明:本篇文章为原创,可随意转载,转载请注明出处,谢谢!另我创建一个QQ群82642304,欢迎加入!
*.备注:整个系列基于官方的i.MX6soloX sabresd开发板,只是对我所学进行总结,记录我认为是关键的点,另我能力有限,难免出现疏漏错误,如果读者有发现请多指正,以免我误导他人!


前言

NXP官方对i.MX6系列的支持目前都是基于yocto开发环境,之前做i.MX6UL时有接触过,但是也只是仅限于应用,没有深入研究。
个人习惯是基于原生的代码上进行开发,主要因为:
- 项目紧张,对于刚接触yocto的,还需要一定的时间去学习
- 电脑老旧,用的是十年前的电脑,硬盘空间不足,性能弱,编译yocto需要花20小时的时间
- 个人理念,习惯简单,基于yocto的开发过于复杂
所以这个系列的开发是基于原生代码上进行的。


代码获取

Uboot代码可以从git官方上获取

git clone git://git.freescale.com/imx/uboot-imx.git

切换到远程的分支

git checkout -b yourname origin/imx_v2015.04_4.1.15_1.0.0_ga


编译

  1. 需要下载官方的交叉编译工具gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12
  2. 进入uboot目录
  3. 设置环境变量

    export ARCH=arm
    export CROSS_COMPILE=/path/to/yourdir/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-

    注意:交叉编译工具链的路径中的红色Linux实际上为linux,L是小写的,CSDN的markdown自动标成大写的我不知道如何修改,只能在此备注。

  4. 编译

    mkdir build
    make mx6sxsabresd_defconfig O=build
    cd build
    make


生成

生成的Uboot在build目录下: u-boot.imx


准备烧写

i.MX6上电启动流程可参照IMX6Solo启动流程-从上电到Uboot ,u-boot.imx中包含了IVT,所以按照数据手册中,需要将u-boot.imx烧写到SD卡偏移量为1Kb的地址。
将SD卡通过读卡器插入电脑(主机是Debian Linux),假设识别为/dev/sdb,使用root用户使用fdisk进行分区,将SD卡分成两个区,第一个区为FAT32文件系统格式,第二个区为ext4格式。

fdisk /dev/sdb #分区,下面的操作都是在fdisk下
p #打印当前的所有分区
d #删除分区命令,d 1表示删除第一个分区
n #增加分区命令,按照命令交互提示对SD卡进行分区,第一个分区至少要10M,偏移量大于Uboot的大小
w #将修改的数据写入到SD卡

分区结束之后,重新拔插SD卡,对其进行格式化分区,使用root用户执行:

mkfs.vfat /dev/sdb1
mkfs.ext4 /dev/sdb2

分区1用于存放内核,设备树文件,M4镜像等,分区2用于文件系统,而Uboot放在起始地址为1Kb的位置,在第一个分区之前


烧写

sudo dd if=u-boot.imx of=/dev/sdb bs=512 seek=2 conv=fsync

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值