製作yaffs映象檔案的工具

2021-08-15 23:25:24 字數 1867 閱讀 5895

三.         修改製作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開始製作映象檔案,需要的時間和...

教你如何製作映象檔案

一,製作映象的好處 映象,顧名思義,就是一張光碟在硬碟上的鏡子。光碟映象在硬碟上執行,所以,在虛擬光碟機上執行光碟映象的速度,等於硬碟本地讀取檔案的速度。而如果用物理光碟機,速度顯然沒有本地硬碟的速度快,並且物理光碟機的壽命是有限的,也就是說,你每讀一張碟,光碟機的壽命就少一次,同時用物理光碟機讀碟...