当前位置: 首页 > news >正文

正点原子IMX6ULL开发板U-Boot编译

一、NXP官方开发板U-Boot编译测试

1、解压官方源码:

tar jxvf uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2

2、创建编译脚本 mx6ull_alientek_emmc.sh

#!/bin/bash
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- V=1 -j12

image

3、烧录uboot.bin到SD卡

image

拨码开关拨到从SD卡启动,重启开发板。看到日志Board:MX6ULL 14x14 EVK官方开发板信息。

图片

二、在 U-Boot 中添加自己的开发板

1、在源码configs 目录下创建默认配置文件

(1)复制 mx6ull_14x14_evk_emmc_defconfig重命名为 mx6ull_alientek_emmc_defconfig:

cd configs
cp mx6ull_14x14_evk_emmc_defconfig mx6ull_alientek_emmc_defconfig

(2)修改mx6ull_alientek_emmc_defconfig 中第 1 行和第 4 行的内容为:

image

2、添加开发板对应的头文件

在目录 include/configs 下 添 加 I.MX6ULL-ALPHA 开 发 板 对 应 的 头 文 件 , 复 制
include/configs/mx6ullevk.h,并重命名为 mx6ull_alientek_emmc.h:

cp include/configs/mx6ullevk.h include/configs/mx6ull_alientek_emmc.h

拷贝完成后头文件定义修改为:

#ifndef __MX6ULL_ALIENTEK_EMMC_CONFIG_H
#define __MX6ULL_ALIENTEK_EMMC_CONFIG_H

3、添加开发板对应的板级文件夹

uboot中每个板子都有一个对应的文件夹来存放板级文件,NXP 的 I.MX 系列芯片的所有板级文件夹都存放在 board/freescale 目录下,在这个目录下有个名为 mx6ullevk 的文件夹,这个文件夹就是 NXP 官方 I.MX6ULL EVK 开发板的板级文件夹。

(1)复制mx6ullevk,将其重命名为mx6ull_alientek_emmc

  cd board/freescale/cp mx6ullevk/ -r mx6ull_alientek_emmc

进入 mx6ull_alientek_emmc 目 录 中 , 将 其 中 的 mx6ullevk.c 文 件 重 命 名 为
mx6ull_alientek_emmc.c。

  cd mx6ull_alientek_emmcmv mx6ullevk.c mx6ull_alientek_emmc.c

(2)修改 mx6ull_alientek_emmc 目录下的 Makefile 文件

改为如下所示:

 # (C) Copyright 2015 Freescale Semiconductor, Inc.## SPDX-License-Identifier: GPL-2.0+#obj-y := mx6ull_alientek_emmc.oextra-$(CONFIG_USE_PLUGIN) := plugin.bin$(obj)/plugin.bin: $(obj)/plugin.o$(OBJCOPY) -O binary --gap-fill 0xff $< $@

(3)修改 mx6ull_alientek_emmc 目录下的 imximage.cfg 文件

将 imximage.cfg 中的:
PLUGIN board/freescale/mx6ullevk/plugin.bin 0x00907000
改为:
PLUGIN board/freescale/mx6ull_alientek_emmc /plugin.bin 0x00907000

(4)修改 mx6ull_alientek_emmc 目录下的 Kconfig 文件

图片

(5)修改 mx6ull_alientek_emmc 目录下的 MAINTAINERS 文件
修改 MAINTAINERS 文件,修改后的内容如下:

图片

三、修改 U-Boot 图形界面配置文件

修改文件arch/arm/cpu/armv7/mx6/Kconfig(如果用的 I.MX6UL 的话,应该修改 arch/arm/Kconfig 这个文
件),在 207 行加入如下内容:

image

image

四、使用新添加的板子配置编译 uboot

如果编译报错,安装依赖sudo apt-get install lzop后重新编译。

在 uboot 根目录下新建一个名为 mx6ull_alientek_emmc.sh 的 shell 脚本,在这个 shell 脚本
里面输入如下内容:

#!/bin/bash
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_alientek_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12
chmod 777 mx6ull_alientek_emmc.sh  // 给予可执行权限,一次即可
./mx6ull_alientek_emmc.sh          // 运行脚本编译 uboot编译

编译完成以后就使用 imxdownload 将新编译出来的 u-boot.bin 烧写到 SD 卡中测试。

image

图片

从SD卡启动,启动日志中Board已经修改为自己的开发板了。

图片

五、编译报错解决

ubuntun 2204下gcc 11.2.0编译报错。

multiple definition of yylloc; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): ...

图片

1、下载gcc-9

sudo apt install gcc-9

2、切换gcc版本

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100

http://www.jsqmd.com/news/39806/

相关文章:

  • Filebeat配置和启动
  • Filebeat配置和启动
  • mysql可以用内容为汉字的列作为索引列吗?
  • 文字识别准确率
  • 【d-bus】gdbus-codegen 使用教程
  • logstash配置和启动
  • 最近改论文的诡异经历…… - BUAA
  • newDay21
  • 2025广东封闭式管理学校最新TOP5评测:重塑少年言行,见证成长蜕变
  • 2025年广东军事化训练学校/机构最新TOP5权威评测:铸就坚毅品格,领航成长之路
  • 2025年广东青少年感恩教育学校/机构最新TOP5推荐:家庭教育、心理健康,科学评测
  • 2025广东法制教育机构/学校最新TOP5评测:心理健康、素质拓展、行为矫正全覆盖
  • 2025年广东青少年素质拓展训练学校最新TOP5实力榜:以规范养习惯,护航成长之路
  • 2025年广东青少年行为矫正学校TOP5权威评测:科学矫正护航成长未来
  • 高级程序语言设计第五次个人作业
  • 2025年贵州贵阳母婴护理机构最新TOP5评测:守护母婴健康的专业力量
  • gcc编译时满屏错误信息咋办?
  • 2025贵州贵阳月子会所最新TOP5评测:产后恢复优选,守护母婴健康
  • 2025年贵州贵阳月子中心最新TOP5专业评测:守护母婴健康新标杆
  • Excel VBA 自定义排序
  • 基于GWO灰狼优化的XGBoost序列预测算法matlab仿真
  • 2025广东住房公积金提取机构最新TOP5评测:因为正规,所以高效
  • 2025广东公积金提取代办中介最新TOP5评测:高效引领行业合规标准
  • 2025年深圳公积金提取最新TOP5评测:专业高效合规,引领行业标准
  • 《Chrome 开发者工具:前端调试必备》
  • 使用 vLLM 本地部署 Qwen3-Embedding-8B 模型并接入 Dify 完整指南 - yi
  • 《VS Code:高效编程的插件与配置》
  • 11.13 NOTE
  • 2025广州公积金提取服务最新TOP5权威评测:专业合规引领行业标杆
  • 用Rust 解析验证码:结合 Tesseract OCR 进行文本识别