我曾经通过tftp(带有以太网端口或usnet上的以太网),sd卡或简单的usb棒等工具更新嵌入式系统上的固件。
我目前正在开发一个没有以太网端口的系统,没有usb端口。只有ttl / usb连接才能访问控制台,微型USB连接才能提供。我目前正在构建一个linux映像和一个rootfs。电路板上使用的存储器是emmc。
有没有一种标准方法可以使用简单的ttl / usb连接在U-boot中更新Emmc等中的linux / rootfs?我想我可以通过mmc命令在u-boot中分配我的flash,但是我不知道如何使用简单的ttl / usb链接在emmc中传输我的内核映像和rootfs。
答案 0 :(得分:3)
有没有一种标准方法可以使用简单的ttl / usb连接在u-boot中更新Emmc等中的linux / rootfs?
是的,当只有串行控制台连接可用时,可以使用二进制传输协议。这些方法与手机调制解调器使用的方法相同 一种传输方法的U-Boot命令是loadb。
=> help loadb
loadb - load binary file over serial line (kermit mode)
Usage:
loadb [ off ] [ baud ]
- load binary file over serial line with offset 'off' and baudrate 'baud'
=>
对于格式化为Motorola S-record文件的二进制数据,传输方法的另一个U-Boot命令为loads:
=> help loads
loads - load S-Record file over serial line
Usage:
loads [ off ] [ baud ]
- load S-Record file over serial line with offset 'off' and baudrate 'baud'
=>
这些方法当然需要串行链路另一端的相应发送程序,就像 tftpboot 需要TFTP服务器一样。一个像样的终端仿真器程序,如Minicom或TeraTerm,可以执行这些传输的PC端。请注意,发件人确定要传输的文件; U-Boot端不能按名称请求文件,只能接收文件。
如果您的U-Boot中尚未提供这些命令,则您必须编辑配置并重建U-Boot。