"usb start" 命令究竟做了什么?

what does "usb start" command do exactly?

当我尝试在 u-boot 中读取 USB 设备时遇到问题。

当我这样做时

      fatls usb 0:1 

它说设备坏了。但是一旦我这样做

      usb start
      fatls usb 0:1

然后它正确地向我显示了 USB 中的 fat 分区。

我想在 common/main.c 中添加这两个命令,这样每当板启动时它就会查找 USB 的胖分区。

这很难,但我必须去做。

有人知道吗??

正如评论中所说,"usb start" 是初始化 USB 子系统并扫描连接设备以查找 U-Boot 可以处理的内容(USB 记忆棒、以太网等)。与我们将在启动 shell 之前进行初始扫描的 MMC 等某些总线不同,对于 USB,如果您希望使用连接的设备,则必须先 运行 启动命令。

现在,您不向 common/main.c 添加内容,而是向 bootcmd 环境变量添加内容(这可以在 boards config.h 文件中更改,以便默认环境已更改,如果您在无法执行 'saveenv' 以持久方式保存更改的板上工作)。所以你想要做的是:

=> setenv bootcmd 'usb start;fatls usb 0:1'

或您希望对 U 盘上的文件执行的任何命令。