嵌入式Linux--正点原子资料介绍--初次编译

一、U-Boot和Linux版本问题

  • NXP官方原版:不适配正点原子的板子:A盘\1、例程源码\4、NXP官方原版Uboot和Linux
    • Linux内核工程:linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2
    • Uboot源码工程:uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2
  • 正点原子已经修改好完整的:A盘\1、例程源码\3、正点原子Uboot和Linux出厂源码
    • Linux内核工程:linux-imx-4.1.15-2.1.0-gb8ddbbc-v1.3.tar.bz2
    • Uboot源码工程:uboot-imx-2016.03-2.1.0-g4475ea1-v1.3.tar.bz2
  • 未全部改好的用于学习中修改的:A盘\1、例程源码\11、开发板教程对应的uboot和linux源码
    • Linux内核工程:linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek.tar.bz2
    • Uboot源码工程:uboot-imx-rel_imx_4.1.15_2.1.0_ga_alientek.tar.bz2

二、初次编译Linux

在这里插入图片描述

编译正点原子完整Linux内核:linux-imx-4.1.15-2.1.0-gb8ddbbc-v1.3.tar.bz2

  • 文件目录:A盘\1、例程源码\3、正点原子Uboot和Linux出厂源码
  • 解压:tar -vxjf linux-imx-4.1.15-2.1.0-gb8ddbbc-v1.3.tar.bz2
    • 解压:tar -vxf linux-imx-4.1.15-2.1.0-gb8ddbbc-v1.3.tar
  • 编写编译脚本文件:imx6ull_liefyuan_emmc.sh

imx6ull_liefyuan_emmc.sh

#!/bin/sh
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16
  • 修改权限:sudo chmod 777 imx6ull_liefyuan_emmc.sh
  • 编译内核:./imx6ull_liefyuan_emmc.sh
  • 出现对话框:按两下ESC键

编译成功后最后几行信息:

  LD [M]  fs/binfmt_misc.ko
  LD [M]  drivers/usb/serial/usbserial.ko
  LD [M]  drivers/usb/serial/ftdi_sio.ko
  LD [M]  drivers/video/fbdev/mxc/mxc_dcic.ko
  LD [M]  fs/fat/msdos.ko
  LD [M]  fs/configfs/configfs.ko
  LD [M]  lib/crc-itu-t.ko
  LD [M]  fs/nls/nls_iso8859-15.ko
  LD [M]  sound/core/snd-rawmidi.ko
  LD [M]  lib/libcrc32c.ko
  LD [M]  sound/usb/snd-usb-audio.ko
  LD [M]  sound/usb/snd-usbmidi-lib.ko
  LD [M]  fs/udf/udf.ko
  LD [M]  sound/core/snd-hwdep.ko
  LD [M]  lib/crc7.ko
  LD [M]  fs/isofs/isofs.ko
  AS      arch/arm/boot/compressed/piggy.lzo.o
  LD      arch/arm/boot/compressed/vmlinux
  OBJCOPY arch/arm/boot/zImage
  Kernel: arch/arm/boot/zImage is ready

编译出来的文件

  • 目录:arch/arm/boot
    • zImage文件就是最终烧录的内核压缩文件

三、初次编译Uboot

编译正点原子完整Uboot内核:uboot-imx-2016.03-2.1.0-g4475ea1-v1.3.tar.bz2

  • 文件目录:A盘\1、例程源码\3、正点原子Uboot和Linux出厂源码
  • 解压:tar -vxjf uboot-imx-2016.03-2.1.0-g4475ea1-v1.3.tar.bz2
  • 解压:tar -vxf uboot-imx-2016.03-2.1.0-g4475ea1-v1.3.tar
  • 执行编译命令:
    • make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
    • make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig
    • make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16

编译完成最后几段信息:

  arm-linux-gnueabihf-gcc -E -Wp,-MD,board/freescale/mx6ullevk/.imximage-ddr512.cfg.cfgtmp.d  -nostdinc -isystem /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__    -D__ARM__ -marm -mno-thumb-interwork  -mabi=aapcs-linux  -mword-relocations  -fno-pic  -mno-unaligned-access  -ffunction-sections -fdata-sections -fno-common -ffixed-r9  -msoft-float  -pipe  -march=armv7-a     -x c -o board/freescale/mx6ullevk/imximage-ddr512.cfg.cfgtmp board/freescale/mx6ullevk/imximage-ddr512.cfg
  ./tools/mkimage -n board/freescale/mx6ullevk/imximage-ddr512.cfg.cfgtmp -T imximage -e 0x87800000 -d u-boot.bin u-boot.imx 
Image Type:   Freescale IMX Boot Image
Image Ver:    2 (i.MX53/6/7 compatible)
Mode:         DCD
Data Size:    385024 Bytes = 376.00 kB = 0.37 MB
Load Address: 877ff420
Entry Point:  87800000

为了执行编译Uboot方便,将三个命令写成一个.sh文件

imx6ull_liefyuan_emmc.sh

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16

要想执行这个shell文件需要给予其权限。

  • 给予权限:chmod 777 imx6ull_liefyuan_emmc.sh
  • 执行脚本:./imx6ull_liefyuan_emmc.sh

编译出来的文件

本目录下就会出现新的有用文件:

  • uboot.bin:编译出来的 uboot二进制文件,uboot是个裸机程序,因此需要在其前面加上头部(IVT、DCD等数据)才能在I.MX6U上执行
  • uboot.imx:添加头部以后的 u-boot.bin,u-boot.imx 就是我们最终要烧写到开发板中的 uboot 镜像文件
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页