迅为iTOP-STM32MP157开发板编译U-Boot

2023-11-07 12:10

本文主要是介绍迅为iTOP-STM32MP157开发板编译U-Boot,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

uboot 是一段裸机代码,它的实现非常复杂,主要是初始化一些硬件,部署整个计算机系统,将内核读到内存,根据环境变量去启动内核,并向内核传递参数。它的目标就是启动内核,内核启动后它的生命也随之结束。
u-boot 是 SourceForge 上的开源项目,由一个人发起,然后由整个世界所有感兴趣的人共同维护发展而来的一个 bootloader,bootloader 是用来引导和加载内核,向内核传递参数的,是内核引导程序的统称,bootloader 除了 u-boot 还有 bios,LilO,redboot,vivi 等。Uboot 的源码存放路径为“iTOP-STM32MP157 开发板光盘资料\04_TF-A、uboot 和内核源码\uboot”,如下图所示:

Uboot 源码的编译器和编译 TF-A 的编译器相同为 gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf。将源码拷贝源码到“/home/topeet”目录下,使用如下命令解压:tar -vxf u-boot-stm32mp-2020.01-r0_20210817.tar.gz(注意,日期后缀名可能会更新)解压源码压缩包,解压完成之后得到“u-boot-stm32mp-2020.01-r0”文件夹。
使用命令进入 uboot 的源码如下图所示:cd u-boot-stm32mp-2020.01-r0/

三个个文件分别为编译的 makefile 文件和 EMMC 和 TF 卡编译的源码。
我们以 EMMC 源码编译为例(TF 卡的 uboot 镜像编译步骤相同),使用命令
cd emmc_u-boot-stm32mp-2020.01/
进入到对应的源码目录下,如下图所示:

然后使用命令“./create.sh”进行编译,如下图所示:

编译过程如下图所示:

编译完成如下图所示:

编译完成之后会在上一级目录产生 build-trusted 目录,用来存放编译生成的文件。而我们所需要的文件为 u-boot.stm32 如下图所示:

至此我们的 uboot 编译就完成了。然后在 build-trusted 目录下使用以下命令cp u-boot.stm32 /home/image/uboot/emmc_emmc_u-boot.stm32
来替换掉烧写文件中关于 emmc 的 uboot 即可(每个人 image 的路径都不同,要根据自己的情况来完善命令)。

核心板参数
尺寸:        46mm*58mm
CPU:        STM32MP157A
主频:        650M
内存:        1G
存储:        8G
工作电压:        直流5V供电
系统支持:        流畅运行最小Linux系统、Buildroot、QT5.12.10、ubuntu_base_20.04、Debian系统
引角扩展:        引出脚多达240个,满足用户各类扩展需求
底板参数:
尺寸:        190mm*125mm
POWER:        电直流电源输入接口,12V/3A+电源输入
SWITCH:        电源开关
DIP:        SWITCH 4位拨码开关
ADC电位器:        1路
SDIO接口:        1个
JTAG:        1个
CAMERA接口:        1个
CAN接口:        1路CAN
User Key:        5个功能按键
MIC:        支持MIC输入
PHONE:        支持耳机输出
串口:        3路
USB Host:        2路 USB Host,支持USB2.0协议
TF Card:        1个标准TF卡接口
网口:        1路千兆以太网口
LED:        3个(1个电源指示灯,2个可控LED)
HDMI接口:        1路
LCD接口:        1路LVDS9(HDMI口输出LVDS信号),1路RGB
USB OTG:        2路 USB OTG2.0
RTC:        1个
RS485接口:        1路
WIFI/蓝牙芯片:        1路
4G模组选配:        1个
六轴传感器:        1个
蜂鸣器:        1个
红外传感器:        1个
光环境传感器:        1个
温湿度传感器:        1个
SPDIF接口:        SPDIF输入、SPDIF输出

这篇关于迅为iTOP-STM32MP157开发板编译U-Boot的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/363510

相关文章

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

如何配置Spring Boot中的Jackson序列化

《如何配置SpringBoot中的Jackson序列化》在开发基于SpringBoot的应用程序时,Jackson是默认的JSON序列化和反序列化工具,本文将详细介绍如何在SpringBoot中配置... 目录配置Spring Boot中的Jackson序列化1. 为什么需要自定义Jackson配置?2.

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu