STM32MP157 m4问题

问题描述

在使用STM32MP157的m4裸机开发过程中,根据用户手册显示,在1.5.4 编译上传小节中,

STM32MP157x 系列里的 M4 启动运行的方式略有差异,必须先启动 A7 才能启动 M4。因此需要先让 A7 运 行 Bootloadr 或 Linux,再加载 ELF 二进制文件启动 M4。出厂的开发板默认烧写有 Linux 系统,读者可以先直接使用。

想要 Linux 加载前面生成的“ProjectDemo_CM4.elf”二进制文件,还需要将文件先上传到 Linux。用 户可以用网线连接开发板,让电脑和开发板处于同一个网段,再通过 FTP/SFTP 上传文件到 Linux。但这个 方法条件相对苛刻,很多时候电脑和开发板无法处于同一个网段,因此在开发板 Linux 系统里将 USB OTG 模拟为虚拟网卡,只要用户将 USB OTG 连接到电脑,就如同实现了局域网联接,之后便可以很方便的上传文件。

我的硬件连线确认无误,进入开发板的 Linux 系统后,输入“ifconfig”命令查看网络情况,这时配置中没有出现usb0选项

也没有出现备注为“Remote NDIS Compatible Device”的网络设置,按照提示重启重插后还是不可以。因此我只能选择在所有实验环节使用工程模式调试,无法使用量产模式(备注:我之前用这块板子做过嵌入式linux应用开发的实验,没有出现任何问题,所以我也可以选择先用A7启动linux,然后再加载ELF二进制文件启动M4后传给开发板文件再执行,但是我就是想知道为啥我不能用USB OTG那种方式呀)

参考以下这个帖子吧,里面有相应 的解决方法。

1 个赞

好的,已解决。thanks. :grinning:

那我想问一下,这样的话我是不是就不可以用量产模式调试了呀?

就是如果我想让代码烧录到flash里,之后通电就可以直接运行,而不是每次都先打开linux引导,再在框里输入start命令该怎么办呀?

理论上不影响,只是改了M4文件的上传方式,这个要测试下,以测试为准。

157的机制是,A7核先启动,才能去启动M4核。
“如果我想让代码烧录到flash里,之后通电就可以直接运行”‘

  • 这里如果裸机程序,是基于A7核编写的,上电就会正常运行,但几乎不会这样用,太浪费A7核资源。
  • 这里如果裸机程序,是基于M4核编写的,需要先复制到Linux的文件系统下,通过脚本开机自动加载,类似实现上电自动运行。