问题现象:
按照《【韦东山】100ASK_ STM32MP157 M4 用户手册V1.1.1.pdf》文档里1.5.4编译上传,发现编译完后,无法通过USB OTG虚拟网卡上传ELF文件。
首先是开发板,没有usb0网口,执行:
insmod /usr/lib/modules/5.4.31/kernel/drivers/usb/usbip/usbip-vudc.ko
insmod /usr/lib/modules/5.4.31/kernel/drivers/usb/gadget/legacy/g_ether.ko
加载驱动后,usb0网卡能出现,但电脑还是不能识别为“Remote NDIS Compatible Device”的网络设备,初步怀疑Windows驱动变了,因此换另外方式,绕过该问题。
解决思路:
使用USB OTG模拟网卡的目的,是将Windows上编译M4的二进制文件,以网络的方式传到开发板运行。
因此,只要实现将M4的二进制文件,传到开发板系统里,最终效果是一样的。
这里使用USB网卡,直连电脑的方式。(此方法与Linux开发里方式相同)
操作步骤:
1.开发板、USB网卡、电脑接线如图。
注意:这里网口接的J10 NET1,也就是对应的网卡eth0。
2.设置开发板IP为192.168.5.9
ifconfig eth0 192.168.5.9 up
如果提示没找到eth0错误,断电重启(不能是复位重启)开发板。
3.设置Windows USB网卡IP
一定要选ASIX AX8872C USB2.0这个网卡。
设置usb网卡的ip为192.168.5.10
4.测试网络能否连通。
ping 192.168.5.10 -c 4
能ping通,说明两者网络连通了。
5.windows上连接开发板
这块的操作与《【韦东山】100ASK_ STM32MP157 M4 用户手册V1.1.1.pdf》文档第30页和31页操作。
其中这里IP地址,不是192.168.7.1,而是刚才设置的192.168.5.9
将编译好的ProjectDemo_CM4.elf或者其它ELF文件,传到开发板上。
6.运行程序
echo ProjectDemo_CM4.elf > /sys/class/remoteproc/remoteproc0/firmware
cp ProjectDemo_CM4.elf /lib/firmware/
echo start > /sys/class/remoteproc/remoteproc0/state
停止运行
echo stop > /sys/class/remoteproc/remoteproc0/state
在通过网络连接的这个界面,执行命令看不到反馈结果。
切换到串口界面,可以看到程序加载提示。
此时,开发板黄色LED间隔1秒闪烁,程序运行成功。
后面其它实验,也类似的将文件传到开发板后,运行。