请教高手,你们的产品里如何通过web方式更新固件(即linux正在运行时)?固件形式是uboot、kernel、文件系统分开还是合在一起做一个bin?
_______________________________________________
Linux 内核开发中文邮件列表
Linux-...@zh-kernel.org
http://zh-kernel.org/mailman/listinfo/linux-kernel
Linux 内核开发中文社区: http://zh-kernel.org
--
BR,
Peter Chen
if(SD卡中有xx.bin)
{
初始化u盘
拷贝 xx.bin 到内存地址a
擦除 flash 地址b ,长度c
从内存 a 拷贝到 flash b ,长度为c
正常启动
}
else
{
正常启动
}
那么uboot环境变量设置为
setenv update 初始化u盘\;*拷贝 xx.bin 到内存地址a*\;擦除 flash 地址b ,长度c\;从内存 a 拷贝到
flash b ,长度为c;
setenv bootcmd run update\;正常启动;
大概就是这样,执行bootcmd时跳到“子函数”update里,如果黑体那段错误,也就是没有那个文件,则“子函数返回”,不会继续擦写flash了
不要耻笑哦,好久没用nand和u盘了,还是nor flash爽
在 2011年2月15日 下午2:17,enzo fang <feixian...@gmail.com>写道:
> 如何修改uboot使它可以通过u盘自动升级固件,
> 哪里有相关的资料?
网上找了一句例子 bootcmd="usb start \; fatload usb 0:4 0x30008000 zImage\;bootm
usb start \; 就是所谓的初始化
这里是用伪代码表达从u盘更新的流程,sd卡打错了,应该是u盘。这个if看起来也会让人误解,因为boot命令里没有逻辑判断
这个意思我没找到更好的表达方式
在 2011年2月15日 下午4:30,yanlong.zhang <yanlon...@mstarsemi.com>写道:
> usb start 初始化那是人家在uboot里边加了usb driver,如果想读sd卡的内容还
> 需要fat的filesystem才可以
>
>
在 2011年2月15日 下午4:38,yanlong.zhang <yanlon...@mstarsemi.com>写道:
> 你说的这个方案我很早就设计过,而且一直在用,主要是usb driver &fat
> filesystem,
> 其他的很简单。
>
>
> 那个sd卡是打错了,抱歉
>
> 网上找了一句例子 bootcmd="usb start \; fatload usb 0:4 0x30008000 zImage\;bootm
> usb start \; 就是所谓的初始化
>
我都不知道uboot有usb相关命令,看来先要看看这方面的代码了
--
Best Regards
enzofang
--
BR,
Peter Chen
BTW:
我的uboot版本应该是支持usb的
我在common/cmd_usb.c中找到如下命令定义
#ifdef CONFIG_USB_STORAGE
U_BOOT_CMD(
usb, 5, 1, do_usb,
"USB sub-system",
"reset - reset (rescan) USB controller\n"
"usb stop [f] - stop USB [f]=force stop\n"
"usb tree - show USB device tree\n"
"usb info [dev] - show available USB devices\n"
"usb storage - show details of USB storage devices\n"
"usb dev [dev] - show or set current USB storage device\n"
"usb part [dev] - print partition table of one or all USB storage"
" devices\n"
"usb read addr blk# cnt - read `cnt' blocks starting at block `blk#'\n"
" to memory address `addr'"
);
U_BOOT_CMD(
usbboot, 3, 1, do_usbboot,
"boot from USB device",
"loadAddr dev:part"
);
2011/2/16 Peter Chen <hzpet...@gmail.com>
--
BR,
Peter Chen