操作系统:win7 64位
虚拟机:VMware® Workstation 15 Pro
虚拟机操作系统:ubuntu 18.04 64位
开发板:迅为 iMX6Q
前言
学习完正点原子的imx6ull开发板,正好手里有一块讯为的imx6q开发板,看了一下讯为的资料基本上都是用讯为已经搭建好了的东西来编译,所以想按照正点原子的思路来一步步搭建,首先搭建uboot
一、uboot移植
首先在NXP官网下载uboot源码,我是在ubuntu里面直接git下载的
sudo git clone https://source.codeaurora.org/external/imx/uboot-imx.git -b nxp/imx_v2009.08_3.0.35_4.1.0 --depth=1
下载的是nxp/imx_v2009.08_3.0.35_4.1.0这个分支版本,下载完成后就可以进去配置编译了
1.编译步骤
git下载好了之后,在uboot-imx文件中,创建一个编译脚本文件uboot.sh
#!/bin/bash
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6q_sabresd_config
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
需要修改mx6q_sabresd.c、mx6q_sabresd.h、flash_header.S、board.c文件,路径分别在
uboot-imx/board/freescale/mx6q_sabresd/mx6q_sabresd.c
uboot-imx/include/configs/mx6q_sabresd.h
uboot-imx/board/freescale/mx6q_sabresd/flash_header.S
uboot-imx/lib_arm/board.c
我是直接将讯为的文件内容替换进去的,需要注意修改这里:
gd->bd->bi_arch_number = MACH_TYPE_MX6Q_SABRESD;
然后执行脚本编译
sudo ./uboot.sh
2.烧录
将sd卡插入ubuntu中,通过指令烧录到sd里面
sudo dd if=u-boot.bin of=/dev/sdb bs=512 seek=2 skip=2
2.启动板子
拨码开关设置sd卡启动,插入sd卡上电成功启动
U-Boot 2009.08-dirty (2月 17 2022 - 17:25:29)
CPU: Freescale i.MX6 family TO1.5 at 792 MHz
Thermal sensor with ratio = 183
Temperature: 26 C, calibration data 0x5894f969
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock : 66000000Hz
ipg per clock : 66000000Hz
uart clock : 80000000Hz
cspi clock : 60000000Hz
ahb clock : 132000000Hz
axi clock : 264000000Hz
emi_slow clock: 132000000Hz
ddr clock : 528000000Hz
usdhc1 clock : 198000000Hz
usdhc2 clock : 198000000Hz
usdhc3 clock : 198000000Hz
usdhc4 clock : 198000000Hz
nfc clock : 24000000Hz
Board: i.MX6Q-SABRESD: unknown-board Board: 0x63015 [POR ]
Boot Device: SD
I2C: ready
DRAM: 2 GB
MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
Boot system :android
LCD type:9.7
In: serial
Out: serial
Err: serial
Net: got MAC address from IIM: 00:00:00:00:00:00
FEC0 [PRIME]
Hit any key to stop autoboot: 0
接下来准备搭建tftp和nfs调试内核和文件系统了