三. 修改製作yaffs映象檔案的工具
在 yaffs 原始碼中有個 utils 目錄,裡面是工具 mkyaffsimage 和 mkyaffs2image的源**,前者用來製作 yaffs1 映象檔案,後者用來製作 yaffs2 映象檔案。目前 mkyaffsimage 工具只能生成老格式的yaffs1 映象檔案,需要修改才能支援新格式。
在mkyaffsimage.c裡邊修改原碼為:
加這個標頭檔案:#include "yaffs_packedtags1.h"
static int write_chunk(__u8 *data, __u32 objid, __u32 chunkid, __u32 nbytes)
yaffs_calctagsecc(&t);
yaffs_loadtagsintospare(&s,&t);
yaffs_calcecc(data,&s);
npages++;
return write(outfile,&s,sizeof(yaffs_spare));
#else
yaffs_packedtags1;
yaffs_extendedtags etags;
__u8 ecc_code[6];
__u8 oobbuf[16];
error = write(outfile,data,512);
if(error < 0) return error;
etags.chunkid = chunkid;
etags.serialnumber = 0;
etags.bytecount = nbytes;
etags.objectid = objid;
etags.chunkdeleted = 0;
yaffs_packtags1(&pt1, &etags);
yaffs_calctagsecc((yaffs_tags *)&pt1);
memset(oobbuf, 0xff, 16);
memcpy(oobbuf+8, &pt1, 8);
nand_calculate_ecc(data, &ecc_code[0]);
nand_calculate_ecc(data+256, &ecc_code[3]);
oobbuf[0] = ecc_code[0];
oobbuf[1] = ecc_code[1];
oobbuf[2] = ecc_code[2];
oobbuf[3] = ecc_code[3];
oobbuf[6] = ecc_code[4];
oobbuf[7] = ecc_code[5];
npages++;
return write(outfile, oobbuf, 16);
#endif
}修改makefile檔案:
mkyaffssources = mkyaffsimage.c yaffs_packedtags1.c nand-ecc.c
yaffs_packedtags1.c和nand-ecc.c是我們加上去的
這樣我們就可以用make命令來生成工具檔案了:mkyaffsimage 和mkyaffs2image
現在我們來製作鏡象檔案,把目錄轉到我們檔案系統的資料夾上乙個目錄,我是轉到根目錄,因為我是在根目錄建立了filesystem_install目錄,為了方便用mkyaffsimage命令,我們直接把mkyaffsimage拷貝到根目錄的bin裡邊,這樣這個命令就可以用了,這樣我們就可以用下面的命令來生成鏡象檔案了:mkyaffsimage filesystem_install (自己命個名字給鏡象檔案,但是字尾一定是yaffs,比如:myyaffs.yaffs),
收藏於 2009-08-06
製作QT映象檔案
1 dd if dev zero of qt lib.img bs 1m count 80 建立80m的映象檔案,如果提示no space,可更改80,建立更大的映象 2 mkfs.ext2 f qt lib.img 格式化該映象 3 sudo chmod go w qt lib.img 設定許可權...
怎麼製作映象檔案?
如何製作映象檔案?答案馬上揭曉!選擇安裝uitraiso的位置,點選下一步下一步 安裝結束,接下來介紹uitraiso的使用及映象檔案的製作方法。選擇要製作為映象檔案的資料夾 一定是資料夾才可以 右鍵資料夾 選擇uitraiso 選擇新增到 iso 這時uitraiso開始製作映象檔案,需要的時間和...
教你如何製作映象檔案
一,製作映象的好處 映象,顧名思義,就是一張光碟在硬碟上的鏡子。光碟映象在硬碟上執行,所以,在虛擬光碟機上執行光碟映象的速度,等於硬碟本地讀取檔案的速度。而如果用物理光碟機,速度顯然沒有本地硬碟的速度快,並且物理光碟機的壽命是有限的,也就是說,你每讀一張碟,光碟機的壽命就少一次,同時用物理光碟機讀碟...