一、环境

编译环境:Ubuntu 版本:20.4.1

交叉编译工具:arm-none-eabi-gcc 版本:10.3.1

开发板:STM32MP157 pro

烧写软件:STM32CubeProgrammer

二、下载UBoot源码

GitHub仓库:https://github.com/Embedfire/ebf_linux_uboot

注意: STM32MP157 源码对应的是 ebf_v2018.11_star 分支

三、编译UBoot

编译相对比较简单,源码的README.md文件中存项详细的说明,如下所示:

  1. 安装编译需要的工具:

    sudo apt install make gcc-arm-none-eabi gcc bison flex libssl-dev dpkg-dev lzop libncurses5-dev libncursesw5-dev
  2. 进入工程路径

    cd ebf_linux_uboot
  3. 清除工程

    make clean
  4. 配置

    make stm32mp15_trusted_defconfig
  5. 开始编译

    make CROSS_COMPILE=arm-none-eabi- DEVICE_TREE=stm32mp157a-star all

    注意: 如果GCC版本过高可能出现 error:multiple definition of 'yylloc'错误,解决办法见后面笔记

  6. 编译完成

    编译完成后会生成 u-boot.stm32 文件

四、烧写UBoot

保险操作,将 STM32CubeProgrammer 工程拷贝一份到桌面,在进行操作,不会使用 STM32CubeProgrammer 烧写的见野火教程:https://doc.embedfire.com/linux/stm32mp1/quick_start_guide/zh/latest/quick_start/install_debian/install_debian.html

  1. 将编译生成的 u-boot.stm32 直接把工程文件中的替换,如下图所示:

    注意:也可更改 flashlayout 文件下的 .tsv文件

  2. 烧写文件

五、编译问题

  1. error:multiple definition of `yylloc'

    解决办法:

    vim ./scripts/dtc/dtc-parser.tab.c

    注释 yylloc 定义 ,如下图所示:



    注意: 更改后不能清空项目在执行,否则更改会失效

参考文献

IMX6ULL学习笔记——获取和编译U-Boot:http://it.cha138.com/nginx/show-302415.html

Ubuntu21.10 编译uboot 出错 `yylloc'解决方法:https://zhuanlan.zhihu.com/p/432591735

野火 STM32MP157 开发板 UBOOT 编译烧写的更多相关文章

  1. iTOP-4412 开发板镜像的烧写

    镜像就是源代码编译并连接以后生成的可执行文件包,把这些镜像文件烧写到开发板的存储芯片里,开机就可以运行了. 烧写方式有两种,通过TF卡烧写以及使用OTG接口烧写 OTG方式:只能在WIN7 或者XP ...

  2. RK3399开发板Android镜像烧写之Windows系统映像烧写

    4.1.1 l RKTool  驱动安装(基于迅为iTOP-3399开发板)DriverAssitant_v4.5.zip 文件,打开 驱动安装成功,如下图: 注意事项:1.目前支持的操作系统包括:X ...

  3. 野火 STM32MP157 开发板内核和设备树的编译烧写

    一.环境 编译环境:Ubuntu 版本:18.4.6 交叉编译工具:arm-linux-gnueabihf-gcc 版本:7.4.1 开发板:STM32MP157 pro 烧写方式:STM32Cube ...

  4. iTOP-4418开发板TF卡烧写-引导uboot

    基于迅为iTOP-4418开发板 将 TF 卡接入开发板,将拨码开关设置为 TF 卡启动,进入 uboot 模式,如下图所示. 如下图所示,使用命令“fastboot”,接着就可以通过 OTG 给 e ...

  5. 友善之臂tiny4412-1306开发板安卓系统烧写

    折腾了很久,终于烧写成功.不废话,咱们说说流程吧. 首先,我们需要有一个基于tiny4412的kernel,从友善之臂官网获取. 然后解压: 1.tar -xvf  linux-3.5 .... 然后 ...

  6. 迅为iTOP-4412开发板Ubuntu操作系统烧写方法

    本文转自:http://www.topeetboard.com Ubuntu系统烧写硬件平台:iTOP4412开发板 需要准备:串口线.读卡器.一张SD卡最好是2G(自备).另外一张卡(大于等于2G都 ...

  7. android操作系统在itop4412开发板上的烧写

    ITOP4412启动模式: 1.EMMC启动模式:拨码开关1-3为011 2.SD卡启动模式:拨码开关1-3为100uboot:初始化内存控制器,访问存储器,把操作系统内核从存储器读取出来放到内存中, ...

  8. iTOP-4418开发板Ubuntu系统烧写方法分享

    开发平台:迅为iTOP-4418开发板    系统:Ubuntu   1. TF卡读写速度测试 烧写 Ubuntu 对于 TF 卡的要求比较高,很多老旧的卡都无法烧写 Ubuntu,下面提供一种 相对 ...

  9. [转载]iTOP-4418开发板Ubuntu系统烧写方法分享

    本文转自迅为论坛:http://topeetboard.com 开发平台:iTOP-4418开发板系统:Ubuntu 1. TF卡读写速度测试烧写 Ubuntu 对于 TF 卡的要求比较高,很多老旧的 ...

  10. QtCreator设置野火iMx6开发板提供的qt交叉编译套件

    在Ubuntu18 QtCreator上添加野火iMx6开发板的Qt交叉编译环境PC:Ubuntu18.04QtCreator: 4.8.2交叉编译环境:野火提供的 5-编译工具链->qt交叉编 ...

随机推荐

  1. 《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南 - 第5章

    本章勘误: 暂无,等待细心的你告诉我哦. 本章注解: 出处:207页 原文: 在我们的应用程序中,是不太可能出现LargeHeapHandleTable的问题的.一般来说,可能出现问题会是在需要(动态 ...

  2. petalinux创建及工程配置

    2023-03-19 21:56:47 下载petalinux安装包 petalinux_2022 下载download用于离线编译 downloads_2022 sstate下载 这个部分不容易在线 ...

  3. KingbaseES 分区表与 Oracle 分区表对于空值的处理差异

    一.对于null 值处理 1.Oracle 分区字段允许为空,只要存在maxvalue 分区,值就可以插入. SQL> create table t1(id number,data varcha ...

  4. Scala变量和常量的声明

    标示符的命名规则 1. 字母或下划线开头 2. 以操作符开头,且只包含操作符(+ - * / # !等) 3. 用反引号`....`包括的任意字符串,即使是 Scala 关键字(39 个)也可以• p ...

  5. python 1992和2006年国家标准学科分类和代码标准化并存入MySQL数据库

    数据表 代码 1 import pandas as pd 2 import pymysql 3 4 5 def get_subject_1992(): 6 res={} 7 the_former_co ...

  6. 关于Guava Cache 需要注意的几点

    一.元素过期策略 expireAfterWrite(long duration, TimeUnit unit):在元素[写入]或者[值更新]后的一段时间之后,自动移除元素. 当duration=0时, ...

  7. 区别对比 Python、Perl、VB、Ruby、C/C++、C# .Net、PHP、Java… 等多编程语言

    1. 编程语言类型:首先,Python.C/C++.Java 都是强类型的编程语言.强类型的编程语言定义如下: 强类型的编程语言是一种强制类型定义的编程语言,即一旦某一个变量被定义类型,如果不经强制转 ...

  8. Maven的build生命周期和常用plugin

    目录 简介 lifecycle和Phases Phases和Goals 常用plugin介绍 maven-dependency-plugin maven-jar-plugin 总结 简介 Maven和 ...

  9. RabbitMQ 02 安装

    安装 推荐使用Docker进行安装. 执行如下命令. docker run -d --restart always --name rabbitmq \ -e RABBITMQ_DEFAULT_USER ...

  10. 实例讲解昇腾 CANN YOLOV8 和 YOLOV9 适配

    本文分享自华为云社区<昇腾 CANN YOLOV8 和 YOLOV9 适配>,作者:jackwangcumt. 1 概述 华为昇腾 CANN YOLOV8 推理示例 C++样例 , 是基于 ...