实现一个自制的Bootloader见:
01-基于imx6ul从0自制Bootloader专栏实现总结_【星星之火】的博客-CSDN博客
- 硬件平台:自制imx6ul(详见【ALLEGRO】从零制作imx6-PCB核心板全流程_【星星之火】的博客-CSDN博客)
- 系统:linux-4.1.15
- 文件系统:busybox-1.22.1.tar.bz2
- 编译器: gcc version 4.9.1 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.07 – Linaro GCC 4.9-2014.07)
ARM Cortex-A7核心 处理器,处理器运行速度高达
528 MHz。取代三星2440,慢慢成为国内流行的低端嵌入式linux产品的首选。本文
主要记录,拿到一款imx6如何重烧系统,搭建起开发环境。及mfgtools使用原理。
一、编译所需文件
tar -jxvf gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux -C /opt
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin"
tar xvf MYS-IMX6UL-uboot.tar.bz2
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mys_imx6ull_14x14_nand_defconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
setenv ipaddr 192.168.1.17 setenv ethaddr 00:0c:29:4d:e4:f4 setenv gatewayip 192.168.1.1 setenv netmask 255.255.255.0 setenv serverip 192.168.1.102 saveenv
(3)编译内核及设备树
tar -xvf MYS-IMX6UL-Linux.tar.gzmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mys_imx6_defconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage dtbs modules(4)制作文件系统
setenv bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.102:/work/new_work/rootfs_2440 ip=192.168.1.17:192.168.1.102:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttymxc0,二、mfgtools软件的使用方法
Set wshShell = CreateObject("WScript.shell") wshShell.run "mfgtool2.exe -c ""linux"" -l ""NAND Flash"" -s ""board=sabreauto"" -s ""lite=l"" -s ""6uluboot=14x14evk"" -s ""nand=nand"" -s ""6uldtb=14x14-evk"" -s ""nanddtb=gpmi-weim"" -s ""part_uboot=0"" -s ""part_kernel=1"" -s ""part_dtb=2"" -s ""part_rootfs=3"" " Set wshShell = Nothing
我们看到,这里相当于定义了一些变量。后面会用到这里定义的东西,如
一会会用到
记录烧写过程中的信息,出错可以来查看
Jumping to OS image.
为界限,可以分为上阶段跟下阶段,上阶段是把“媒介镜像”烧录到 ddr3 3 内存里并运行起来,下阶段是烧录“ file”
文件夹里面的文件到 emmc 里面。对于第二阶段,关注以下注释:
>
>
>
>
>
注释下的内容严格规定了 s MFGTools 的烧录过程,分区–>烧写 uboot- –> >烧写 uImage- –> >烧写 dtb- –> >烧写 rootfs。
0x000000000000-0x000000 : "boot" 0x000000-0x000000f00000 : "kernel" 0x000000f00000-0x00000 : "dtb" 0x00000-0x0000 : "rootfs" //烧写内核 nand erase 0x 0xa00000 tftp zImage nand write 0x 0x $filesize //烧写设备树 nand erase 0xf00000 0x tftp zImage-imx6ull-14x14-evk-gpmi-weim.dtb nand write 0x 0xf00000 $filesize总结:
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202490.html原文链接:https://javaforall.net
