首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DFU没有在裸盒中传输数据

DFU没有在裸盒中传输数据
EN

Stack Overflow用户
提问于 2021-09-04 07:26:45
回答 1查看 136关注 0票数 0

我工作在一个自定义板-没有可移动存储(sd)和只有一个UART。我需要使用裸盒引导程序在QSPI存储上传输文件。

我正在尝试使用DFU来传输各种文件以写入QSPI。

除其他外,设备树具有如下内容

代码语言:javascript
复制
&usbotg1 { 
dr_mode = "otg"; 
status = "okay"; 
}; 

&usbphy1 { 
fsl,tx-d-cal = <106>; 
};

在板上,OTG模式已设置为外设,dfu已开始接受文件。

代码语言:javascript
复制
barebox@Freescale:/ otg.mode=peripheral 
barebox@Freescale:/ dfu /tmp/qspi-header(qspi)src 
udc0: registering UDC driver [g_dfu]
dfu: register alt0(qspi) with device /tmp/qspi-header 
g_dfu usbgadget: g_dfu ready 
g_dfu usbgadget: high-speed config #1: USB DFU 

在系统中,板被检测为DFU设备。

代码语言:javascript
复制
harkirat@harkirat-devsys:~$ sudo dfu-util -l 
dfu-util 0.9 

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. 
Copyright 2010-2016 Tormod Volden and Stefan Schmidt 
This program is Free Software and has ABSOLUTELY NO WARRANTY 
Please report bugs to sourceforge.net/p/dfu-util/… 

Found DFU: [1d50:60a2] ver=0316, devnum=13, cfg=1, intf=0, path="1-2", alt=0, name="qspi", serial="UNKNOWN" 

所以当传输一个文件时

代码语言:javascript
复制
harkirat@harkirat-devsys:~$ sudo dfu-util -a qspi -D qspi-header 
dfu-util 0.9 

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.

dfu-util: Invalid DFU suffix signature 
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!! 
Opening DFU capable USB device... 
ID 1d50:60a2 
Run-time device DFU version 0100 
Claiming USB DFU Interface... 
Setting Alternate Setting #0 ... 
Determining device status: state = dfuIDLE, status = 0 
dfuIDLE, continuing 
DFU mode device DFU version 0100 
Device returned transfer size 4096 
Copying data from PC to DFU device 
Download [=========================] 100% 512 bytes 
Download done. 
state(6) = dfuMANIFEST-SYNC, status(0) = No error condition is present 
state(7) = dfuMANIFEST, status(0) = No error condition is present 
state(6) = dfuMANIFEST-SYNC, status(0) = No error condition is present 
state(7) = dfuMANIFEST, status(0) = No error condition is present 
state(6) = dfuMANIFEST-SYNC, status(0) = No error condition is present 
state(7) = dfuMANIFEST, status(0) = No error condition is present 
state(6) = dfuMANIFEST-SYNC, status(0) = No error condition is present 
state(7) = dfuMANIFEST, status(0) = No error condition is present 
state(6) = dfuMANIFEST-SYNC, status(0) = No error condition is present 

最后两行不断重复。最终在Ctrl-C上

文件下载完成了。但接收端什么都没有。在董事会

代码语言:javascript
复制
…
g_dfu usbgadget: high-speed config #1: USB DFU 
g_dfu udc0: unregistering UDC driver [fsl-usb2-udc] 
dfu: Interrupted system call 
barebox@Freescale:/ ls /tmp/ 
barebox@Freescale:/

所以问题是为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-08 06:43:51

最近有报道称,与您的问题相匹配的回归是由

697f53a90224 ("usb: gadget: dfu: workqueue操作在工作队列中“)

这里已经有了第一个解决办法:

https://lore.barebox.org/barebox/20210830144835.27458-1-jmaselbas@kalray.eu

试着看看这是否能解决你的问题。

不幸的是,这种倒退已经过去了,但大多数用户似乎要么使用fastboot或DFU来实现多个小工具的功能(usbgadget -D命令而不是dfu命令)。我建议你对一个新项目也这样做。快速引导对UBI (u)标志有特殊的支持,它允许在更新时透明地调用卷上的ubiformat,并且可以重新导出barebox_update处理程序,因此您可以使用以下方法进行更新:

代码语言:javascript
复制
fastboot flash bbu-nand barebox-myboard.img
fastboot flash rootfs-nand my.ubi

usbgadget命令允许小工具在“背景”中工作。因此,您可以继续使用shell并同时导出多个小工具:例如USB串行控制台和DFU。尽管进行了上述回归,但这仍然有效,因为这只会破坏dfu命令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69053242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档