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”这一句非常重要

注意:

不能使用“make -f ../Makefile.sdk all回车”来编译,否则在烧录程序时串口会报“Boot interface 6 not supported”问题。

输入“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、串口输出结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值