Linux第37步_解决“Boot interface 6 not supported”之问题

在使用USB OTG将“自己移植的固件”烧写到eMMC中时,串口会输出“Boot interface 6 not supported”,发现很多人踩坑,我也一样。

见下图:

解决办法:

1、打开终端

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd linux回车”,切换“linux”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd atk-mp1/回车”,切换“atk-mp1”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd alientek_tf-a回车”, 切换“alientek_tf-a”目录下。

输入“ls回车”,列出当前目录下所有的文件和文件夹

2、修改“Makefile.sdk

1)、输入“vim Makefile.sdk回车”,使用vim命令打开已有的“Makefile.sdk”文件

因为

ST公司官方用的交叉编译器是“arm-ostl-linux-gnueabi-gcc”;

正点原子用的交叉编译器是“arm-none-linux-gnueabihf-gcc

所以,我们要修改Makefile.sdk文件。

tf-a-stm32mp-2.2.r1”是正点原子针对自己的STM32MP157开发板修改过的 TF-A源码。“Makefile.sdk”是我们用来编译正点原子的TF-A源码要用到的 Makefile。

2)、将EXTRA_OEMAKE=CROSS_COMPILE=arm-none-linux-gnueabihf- DEBUG=1 LOG_LEVEL=40 PLAT=stm32mp1 ARCH=aarch32 ARM_ARCH_MAJOR=7 STM32MP_SDMMC=1 STM32MP_EMMC=1 STM32MP_SPI_NOR=1 STM32MP_RAW_NAND=1 STM32MP_SPI_NAND=1

3)、EXTRA_OEMAKE_SERIAL=$(filter-out STM32MP_SDMMC=1 STM32MP_EMMC=1 STM32MP_SPI_NOR=1 STM32MP_RAW_NAND=1 STM32MP_SPI_NAND=1,$(EXTRA_OEMAKE)) STM32MP_UART_PROGRAMMER=1 STM32MP_USB_PROGRAMMER=1

见下图:

4)、将“TFA_DEVICETREE ?=   stm32mp157a-dk1 stm32mp157d-dk1 stm32mp157c-dk2 stm32mp157f-dk2   stm32mp157c-ed1 stm32mp157f-ed1   stm32mp157a-ev1 stm32mp157c-ev1 stm32mp157d-ev1 stm32mp157f-ev1  stm32mp157d-atk”注释掉,只用“TFA_DEVICETREE ?= stm32mp157d-atk”,目的是:关闭多个STM32MP1开发板的TF-A镜像,只保留正点原子的开发板的TF-A镜像

见下图:

5)、按“ESC键”+“:wq键”,保存退出。

3单独编译生成“tf-a-stm32mp157d-atk-serialboot.stm32”

1)、输入“cd tf-a-stm32mp-2.2.r1/回车”,进入“tf-a-stm32mp-2.2.r1”目录下,

输入“make -f ../Makefile.sdk clean回车”,清除以前的编译

输入“make -f ../Makefile.sdk TFA_DEVICETREE=stm32mp157d-atk TF_A_CONFIG=serialboot ELF_DEBUG_ENABLE='1' all -j回车”,要求单独生成“tf-a-stm32mp157d-atk-serialboot.stm32”这一句非常重要

输入“cd ..回车”,进入“alientek_tf-a”目录下

输入“cd ..回车”,进入“alientek_tf-a”目录下

输入“cd build/回车”,切换到“build”目录下;

输入“ls回车”,列出当前目录下所有的文件和文件夹

此时,我们注意到只有一个serialboot”目录

输入“cd serialboot/回车”,切换“serialboot”目录下

输入“ls -l回车”,列出当前目录下所有的文件和文件夹

“tf-a-stm32mp157d-atk-serialboot.stm32”保存好,以后就这个文件可以了。

  1. 保存“tf-a-stm32mp157d-atk-serialboot.stm32”

打开FileZilla“tf-a-stm32mp157d-atk-serialboot.stm32保存到“D:\Linux安装

5、烧录

1)、关闭虚拟机,防止开发板连接到虚拟机

2)、将开发板上拨码开关拨到“000”位置

3)、将USB导线连接电脑的USB3.0接口,另外一端连接开发板的USB OTG接口;

4)、将USB导线连接电脑的USB3.0接口,另外一端连接到开发板的USB TTL接口;

5)、双击“STM32CubeProgrammer”图标

6)、选择上图中的USB,然后点击“Connect”

7)、点击“刷新”,直到出现USB1,表示连接成功。

8)、点击“Open file”,找到“C:\Program Files\STMicroelectronics\images”目录下“tf-a.tsv”打开。

9)、点击“Browse”,打开“C:\Program Files\STMicroelectronics\images”目录。

10)、点击“选择文件夹”

11)、点击“Download”

12)、点击“确定”

13)、关电,将拨码开关设置为“010”

14)、上电,重新启动开发板。

6、串口输出结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/653483.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从centos镜像上创建具备SSH链接的Dockerfile

1. 创建目录,名字随意 mkdir dockfile cd dockfile 2. 创建名字为Dockerfile的文件 touch Dockerfile 3. 编辑内容如下 FROM centos MAINTAINER liufeng "liufgeoscene.cn"RUN /bin/echo root:123456|chpasswd RUN useradd test RUN /…

SpringCloud-高级篇(十六)

前面学习了Lua的语法,就可以在nginx去做编程,去实现nginx类里面的业务,查询Redis,查询tomcat等 ,业务逻辑的编写依赖于其他组件,这些组件会用到OpenResty的工具去实现 (1)安装OpenRe…

C++(16)——vector的模拟实现

前面的文章中,给出了对于的模拟实现,本篇文章将给出关于的模拟实现。 目录 1.基本框架: 2. 返回值与迭代器: 2.1 返回值capacity与size: 2.2 两种迭代器iterator和const_iterator: 3. 扩容与push_back与pop_back&#xff1a…

后端学习:数据库MySQL学习

数据库简介 数据库:英文为 DataBase,简称DB,它是存储和管理数据的仓库。   接下来,我们来学习Mysql的数据模型,数据库是如何来存储和管理数据的。在介绍 Mysql的数据模型之前,需要先了解一个概念&#xf…

Java运算符优先级

以下是一份Java运算符的优先级、类别和结合性的表格总结: 由于| 与制表符有冲突,所以用大写字母I代替| 优先级类别运算符结合性1括号( )从左向右2一元运算符!、~、、–从右向左3乘法、除法、取模*、/、%从左向右4加法、减法、-从左向右5位左移、位右移…

log4j2 配置入门介绍

配置 将日志请求插入到应用程序代码中需要进行大量的计划和工作。 观察表明,大约4%的代码专门用于日志记录。因此,即使是中等规模的应用程序也会在其代码中嵌入数千条日志记录语句。 考虑到它们的数量,必须管理这些日志语句,而…

【QT+QGIS跨平台编译】之十三:【giflib+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、giflib介绍二、文件下载三、文件分析四、pro文件五、编译实践一、giflib介绍 GIFlib(又称为Libgif)是一个开源的C语言库,用于处理GIF图像格式。它提供了一组函数和工具,使得开发者可以读取、写入和操作GIF图像文件。 GIFlib支持GIF87a和GIF89a两种版本的GIF格…

倒计时71天

1.D-小红整数操作_牛客周赛 Round 30 (nowcoder.com) /****** __----~~~~~~~~~~~------___* . . ~~//...... __--~ ~~* -. \_|// |||\\…

【项目管理】CMMI-管理性能与度量

管理性能与度量 (Managing Performance and Measurement, MPM)的目的在于开发和维持度量能力来管理开发过程性能,以实现公司业务目标,更直接来说,将管理和改进工作集中在成本、进度表和质量性能上,最大限度地提高业务投资回报。 1…

军事博弈智能的核心是“诡”与“诈”

军事博弈智能的核心是“诡”与“诈”,意味着在军事博弈中,智能系统需要具备隐蔽、变化、欺骗和误导的能力,以达到取胜的目的。 首先,“诡”指的是智能系统需要具备隐蔽性和伪装变化能力,使对手难以获得准确的情报和判断…

JavaScript之ES6常用语法

文章目录 JavaScript之ES6常用语法1. 基本用法1.变量声明var、let、const1. 作用域2. 变量提升3. 声明次数4. const常量 2.模板字符串3.函数3**函数默认参数** 4.拓展的对象功能5.更方便的数据访问--解构6.Spread Operator 展开运算符7.import 和 export8. Promise9.Generators…

linux(进程概念)

目录 前言: 正文 冯诺依曼体系结构 操作系统 (Operator System) 概念 目的 定位 如何理解“管理” 进程组织 基本概念 内核数据结构 代码和数据 查看进程 ps指令 top指令 父子进程 fork创建进程 小结: 前…

【Redis】Redis有哪些适合的场景

🍎个人博客:个人主页 🏆个人专栏:Redis ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 (1)会话缓存(Session Cache) (2)全页缓存(FPC…

深入理解TCP网络协议(1)

目录 1.TCP协议的段格式 2.TCP原理 2.1确认应答 2.2超时重传 3.三次握手(重点) 4.四次挥手 1.TCP协议的段格式 我们先来观察一下TCP协议的段格式图解: 源/目的端口号:标识数据从哪个进程来,到哪个进程去 32位序号/32位确认号:TCP会话的每一端都包含一个32位&#xff08…

Windows 7 x64 SP1 安装 Google Chrome 109.0.5414.120 (正式版本) (64 位)

1 使用 IE 浏览器 输入网址 Google Chrome 网络浏览器得益于 Google 智能工具,Chrome 现在更易用、更安全、更快速。https://www.google.cn/chrome/,点击下载 Chrome。 2 点击 接受并安装。 3 提示。 4 保存。 5 双击 运行 ChromeSetup.exe。 6 等待安…

紫外工业相机在半导体制造检测系统中的应用

光刻机使用193-365nm波长的准分子激光器和二极管激光器产生的深紫外线来蚀刻连接晶体管的复杂电路。 裸晶圆检测 半导体制造的原材料是单晶硅,即所谓的裸晶圆/衬底晶圆。在检测时,有的污染或缺陷只有几微米大小。波长更短的紫外线,在识别晶圆…

9.异步爬虫

异步爬虫可以理解为非只单线程爬虫 我们下面做个例子,之前我们通过单线程爬取过梨视频 https://blog.csdn.net/potato123232/article/details/135672504 在保存视频的时候会慢一些,为了提升效率,我们使用异步爬虫爬取 目录 1 线程池 2 …

类和对象 第五部分第三小节:递增运算符重载

作用&#xff1a;通过重载递增运算符&#xff0c;实现自己的整型数据递增 代码案例 1.重载前置运算符 #include <iostream> #include <string> using namespace std;class MyInteger {friend ostream& operator<<(ostream& out, const MyInteger&…

Go语言常用标准库fmt、格式化占位符、获取输入

1.fmt fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容和获取输入内容两大部分。 函数说明Print内容输出到系统的标准输出Fprintf将内容输出到一个io.Writer接口类型的变量w中Sprint把传入的数据生成并返回一个字符串Errorf根据format参数生成格式化字符…

简盒工具箱iapp源码

一款工具箱兼做软件库。 新增远程更新功能 修复了部分失效功能 修复了偶尔会卡在启动页的情况 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/88776737 更多资源下载&#xff1a;关注我。