使用U-Boot从Flash上​​传固件

use*_*423 6 linux embedded-linux u-boot

我有个问题.我的系统是嵌入式Linux平台.我使用串口连接到我的主板,我可以访问U-Boot.

我需要通过控制台或以太网提取驻留在闪存中的完整固件.使用TFTP或串行(Kermit等)看起来很容易下载,但是将其上传到主机PC进行备份并不明显.

有谁知道如何做到这一点?

Jon*_*ham 5

假设您正在使用NAND闪存和U-Boot 2013.07或类似产品:

  1. 使用该nand info命令查看U-Boot检测到的每个NAND设备的NAND设备名称,大小和擦除块大小
  2. 使用该nand read命令从NAND读入RAM.读入RAM的NAND数量取决于RAM大小
  3. 如果您有SD(MMC)驱动器,则可以使用该mmc write命令从RAM写入SD
  4. 如果您有USB设备,则可以使用start usbUSB扫描大容量存储器或"以太网"(即OTG)设备
  5. 如果start usb检测到大容量存储设备,则可以使用该usb write命令从RAM写入大容量存储设备
  6. 无法从RAM传输到USB或以太网网络连接
  7. 使用md命令将任意大小的内存块十六进制转储到串行线,然后使用某个程序将ASCII十六进制转换回二进制

  • 在设备上使用了`md.b`,在`cut -b 12-58 | xxd -r -p`在计算机上,运行良好,感谢GD :-) (2认同)

Dox*_*ver 2

如果您愿意重建 uboot 并重新刷新您的主板,您可以tftpput使用该选项启用该命令CONFIG_CMD_TFTPPUT。(假设 uboot 是最新版本。)

假设没有,在嵌入式Linux中,您可以通过访问您的闪存/dev/mtd*cat /proc/mtd以查看分区)。您可以使用dd将分区复制到 ramdisk 文件,然后使用cat将文件组合成单个映像,然后使用ftpput将其发送到主机。(这假设您的嵌入式 busybox 是使用这些命令构建的。)