日期:2014-05-16  浏览次数:20887 次

如何合并内核image文件和根文件系统image文件,并以下烧写至flash。
可能标题写的不很清楚,这样说:
嵌入式开发中,我们一般生成的image文件一般包括:
内核文件,比如vmlinux.lzma.uIma,烧在flash一个区,比如分区2;
跟文件系统,比如rootfs-squashfs,烧在flash一个区,比如分区3;
配置文件,比如configs-ramfs,烧在flash一个区,比如分区4;

平时都是调试哪个区,就重新烧某个区就行了。

如果,最后成产品,给客户,想把所有的这些文件弄成一个image,一次性的烧录进flash,请问:

1. 如何将这些文件合并成一个文件。
2. 如何烧录,是不是只要更改烧录地址和大小就行了吗?

非常感谢。

------解决方案--------------------
这样是不行的.
必须分开,当然事在人为,如果偏要这么做,应该也有办法.

 load kernel时, 比如是从nand读 nand read addr nandaddr_start len
然后bootm addr   这样启动内核的. 这中间会对 kernel数据进行校验.

根文件系统是在kernel之后的, 由bootloader中传的值进行确定位置, 比如 /dev/mtdblock3
, 如果是一直读怎么分别确定二者的大小.  头从哪里开始.   数据的头如果都错的, 后面就运行不起来了.

image大小是按字节分的,  但是nand是按块来的, 二者混在一起, 很难处理.
------解决方案--------------------
内核和根文件系统可以放在同一个镜像里,至于配置文件系统不太了解。