STMCU小助手
发布时间:2022-3-4 20:00
|
前言 在一文中,我们获悉了如何借助 STM32CubeProgrammer,轻松将STM32MP1 开发板跑起来。在 STM32MP1 开发板跑起来之后,我们相当于有了一台微型嵌入式 PC,可以支持多种交互方式,例如接入鼠标、键盘、串口终端、以太网、支持 HDMI 的投影仪以及电视机等等。但是,有个问题,对于开发人员,有没有高效、简洁的方法来在 Windows 和 STM32MP1 之间建立 TCP/IP 连接?例如,如果我们已经在 Windows 上编译出了 Cortex-M4 固件,或者自己编写了一些 python 脚本,那么我们如何方便的将这些文件复制到 STM32MP1 上进行调试呢?使用 U 盘,肯定没有问题,但需要 U 盘拔来拔去;使用以太网接口,也没有问题。现在我们介绍一种基于 USB 物理线缆的以太网连接。 只需要一根 USB 线,复用之前的 DFU 固件下载接口,我们将 Windows 主机与 STM32MP1 连接起来构成TCP/IP 网络。本文介绍了基于 STM32MP1 的便捷网络配置,能够提高开发 STM32MP1 的工作效率。无论你是否拥有 Linux 环境,也无论你是否拥有 Linux 开发经验,本文都适合你阅读。 STM32MP157C-DK2 开发板环境简介 本文认为读者已经拥有 STM32MP157C-DK2 开发板。如果你手中得到的是其他类型的 STM32MP1 官方开发板,例如 STM32MP157C-EV1,USB Ethernet gadget 操作并没有什么不同。7 H- r) U- p# y+ W3 z1 a/ a' C ethernet gadget 的 USB 接口就是在 DFU 模式用来下载固件的 USB 接口(如下图右侧)。: p& c7 c r6 J- N. }3 r7 i 0 \, v4 u; C, d
本文同时认为你已经按照所介绍的方法,正常烧录了 STM32MP1 Starter 开发包,并启动了开发板如下:7 ^; U# f$ x2 x+ j$ L: ]
0 Z: G9 t2 t; u, D6 J- N K USB ethernet gadget 在 STM32MP1 上的配置: t" p( x3 h2 U5 V+ A" v8 l Windows 串口终端的配置- _4 n H3 ~' q- h9 \% x/ _ 如果你使用 Teraterm,选择 new connection,端口会自动显示。直接选择就可以了,如下图示。- F9 X. B8 g- X/ K6 a7 c+ Q, r$ F; g : _ B* |. R: {, M
在 setup->Serial port…中选择波特率设置如下:6 Q) ?) b/ k1 ^7 a+ z y" r 5 y) W9 a4 _& `0 R9 F4 d
显示 ethernet gadget 的配置# O$ b3 Z6 O# b& f 在串口终端敲入 ifconfig 命令,我们可以看到开发板所有的网络接口,其中 eth0 是以太网口,usb0 就是我们这里所关注的USB ethernet gadget。我们可以看到 STM32MP1 Starter 开发包已经自动将 usb0 当成以太网卡使用,同时也将 IP 固定为192.168.7.2。我们对 STM32MP1 并不需要什么额外的配置,感觉相当方便。$ L0 Y) g8 f# n" A
0 Q. h( E/ j H& {( W Windows 上配置网络参数并测试 TCP/IP 连接6 J+ X' n1 d- R& e$ [. ~ 将开发板连接到 Windows(我们这里使用的是 Win10),我们可以在【控制面板】【网络和因特网】【网络连接】界面下看到:多了一个 Remote NDIS 网络接口,如下所示: 2 [" }9 i2 q7 z2 e, ^/ G
我们选中 Remote NDIS 网卡,右键选择属性 Properties,配置网络地址为 192.168.7.90(或者其它地址,注意不要和192.168.7.2 重复)- ?1 D% H5 ^$ a $ Q- O) r; ~6 J% }- A. A9 b
8 Y( j# q3 b* ?5 h& O 现在就可以打开 Windows 命令行,执行 ping 命令可以看到 Windows 和 STM32MP1 已经连通。9 N( y: R- E, T' c, b4 A * o) u9 C" D2 x* T! s6 o! {
TCP/IP 连接应用 有了 TCP/IP 连接,我们就可以做很多应用。例如,我们可以使用它来复制文件或者登陆到设备上去;我们需要用到 scp 和ssh 命令。 支持 scp 和 ssh 命令的 Windows 软件7 ]- ]% @( s1 F' a 有多个软件提供 scp 和 ssh 命令。一个最简单的选择是 Git for windows 提供的命令行环境 Git-bash。Git for windows 可以从下载安装。安装完成后,点击 git-bash 图标,就进入了命令行环境。你也可以选择 WindowsSubsystem Linux(WSL),安装也非常简单。 在 STM32MP1 与 Windows 之间复制文件2 C. B# @+ w6 e) J; f9 I z/ A2 [ 假设我们希望将 c:\mcu\my.py 复制到 STM32MP1 上/home/root 目录,则使用 scp 命令如下:
效果如下:. W7 g9 Q4 G4 z, w . c% B7 Q3 ?$ N
第一次会提示是否接受对方主机的公钥,当然选 yes。
+ a3 c1 {8 P r+ d6 i$ h 假设我们希望将 STM32MP1 上的 /home/root/my.py 复制到 c:\mcu 目录,则使用 scp 命令如下:
效果如下:
5 S6 z" C/ [7 l- H- `- z 从 Windows 上 ssh 连接 STM32MP1 使用 ssh 连接开发板命令如下:
第一次会提示是否接受对方主机的公钥,当然选 yes。
/ S' k; i. |1 R0 z! f$ B3 W 连接成功后,我们可以不再需要 ST-Link 连接的串口终端,而直接使用 ssh 的网络终端输入命令。 例如,我们可以查看刚才复制的文件,效果如下:
6 P8 [. `# F$ e4 O! c3 `$ S; M 注意 在使用 ssh 命令时有时候它会提示/ @' u& ~2 v9 ~" B/ B
这个时候你可以使用命令 vim,在命令行界面里打开~/.ssh/known_hosts 删除改 IP 地址所对应的行就可以了。也可以用其他编辑器访问 C:\Users\xxx(你的用户名)\.ssh\known_hosts 删除所对应的行。' c% ]$ ]) B+ L0 c0 E' \ ; j) r1 W% z) \* X# u Z ' Z, T+ Y" a7 I 总结 TCP/IP 连接对开发过程很重要,它的作用不限于复制文件。本文使用开发人员熟悉的 Windows 系统,展示了使用STM32MP1 USB ethernet gadget 在 Windows 和 STM32MP1 建立 TCP/IP 连接的方案。我们可以看到 USB ethernet gadget配置简单,使用起来节省开发时间,值得我们在 STM32MP1 的开发中采用。 采用 Linux PC 作为开发环境的读者,同样可以使用 STM32MP1 USB ethernet gadget 功能。你需要使用 ifconfig 命令配置 Linux PC 识别到的 USB 网卡,然后就可以使用 scp 等命令进行文件复制操作。2 ?' G/ f1 M0 F7 H; A6 c6 v) s * u4 x# X9 j# N 7 E& Z, ^) I8 \ |
STM32MP157双A核Linux + 自研RTOS双系统镜像免费下载
最全USB HID开发资料,悉心整理一个月,亲自测试
【源码】STLINK-V3MINI 高速USB仿真器,成功改刷【高速CMSIS-DAP】
扩展STM32微处理器,实现高性价比、低功耗和灵活性能
STM32MP1 自举程序编程:USB DFU/USART 协议全解析
兔哥心中的ST中文论坛
我心中的ST中文论坛
STM32 开发者指南:ST.com 全新 MCU 产品阵容视觉布局深度解析
深度拆解 STM32MP1 Boot 链路
STM32串口自动识别波特率的原理
微信公众号
手机版