当前位置: 技术问答>linux和unix
嵌入式系统下载大文件的问题
来源: 互联网 发布时间:2016-09-22
本文导语: 系统配置: 128MB RAM/128MB NAND FLASH 根文件系统: linux kernel+cramfs 生成的ROMFS IMAGE,大概8MB 功能:下载文件以完成对另外一个系统的升级(FLASH上面还有一个kernel,文件系统) 问题: 因为升级文件太大(至少80MB)...
系统配置: 128MB RAM/128MB NAND FLASH
根文件系统: linux kernel+cramfs 生成的ROMFS IMAGE,大概8MB
功能:下载文件以完成对另外一个系统的升级(FLASH上面还有一个kernel,文件系统)
问题: 因为升级文件太大(至少80MB),启动wget下载后(下载文件的
被保存在路径/tmp/下面),若文件的尺寸超过65MB,wget写数据失败。
因为完成升级功能的kernel的根文件系统在RAM中,显然只使用RAM来存放下载文件并且只有下载完毕后才对
下载文件操作(这里主要是把下载文件写到FLASH上)是不可能实现的。只能是边下载边进行写操作,但如何实现?
thx in advance!
根文件系统: linux kernel+cramfs 生成的ROMFS IMAGE,大概8MB
功能:下载文件以完成对另外一个系统的升级(FLASH上面还有一个kernel,文件系统)
问题: 因为升级文件太大(至少80MB),启动wget下载后(下载文件的
被保存在路径/tmp/下面),若文件的尺寸超过65MB,wget写数据失败。
因为完成升级功能的kernel的根文件系统在RAM中,显然只使用RAM来存放下载文件并且只有下载完毕后才对
下载文件操作(这里主要是把下载文件写到FLASH上)是不可能实现的。只能是边下载边进行写操作,但如何实现?
thx in advance!
|
1、边下载边写对系统来说是非常不安全的。因为下载时间比较长,在这个过程中不能停电,否则会造成你的目标系统写Flash失败。需要用bootloader来重写kernel+filesystem才能修复。
2、实在要实现的话,并不难:把你各个分区的image文件单独下载。在/dev下一般都有/mtdblockn(n=0、1,2,3...)。直接用open/write将接收到的image字节流写到这些设备里就可以了。
2、实在要实现的话,并不难:把你各个分区的image文件单独下载。在/dev下一般都有/mtdblockn(n=0、1,2,3...)。直接用open/write将接收到的image字节流写到这些设备里就可以了。
|
好主意
|
内存映射不知道可不可以满足你的要求。
|
汗。。。看错了。。