舊文-編譯make2yaffsimage-2010年01月11日 19:19
阿新 • • 發佈:2017-06-29
signed nbsp const resize pan calc ack jid b- 最近弄yaffs,但是CVS上下的無法編譯make2yaffsimage,提示yaffs_PackTags2()函數傳入的參數不對,看源代碼發現,傳入的參數少一個,google了一下,解決了問題,詳見以下patch:
diff --git a/utils/mkyaffs2image.c b/utils/mkyaffs2image.c
index 9939658..5b6c0c6 100644
--- a/utils/mkyaffs2image.c
+++ b/utils/mkyaffs2image.c
@@ -182,7 +182,7 @@ static int write_chunk(__u8 *data, __u32 objId, __u32 chunkId, __u32 nBytes)
nPages++;
- yaffs_PackTags2(&pt,&t);
+ yaffs_PackTags2_no_dev(&pt,&t);
// return write(outFile,&pt,sizeof(yaffs_PackedTags2));
return write(outFile,&pt,spareSize);
diff --git a/yaffs_packedtags2.c b/yaffs_packedtags2.c
index e33e8a3..e8d94dc 100644
--- a/yaffs_packedtags2.c
+++ b/yaffs_packedtags2.c
@@ -107,6 +107,15 @@ void yaffs_PackTags2(yaffs_Device *dev, yaffs_PackedTags2 *pt, const yaffs_Exten
&pt->ecc);
}
+void yaffs_PackTags2_no_dev(yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t){
+
+ yaffs_PackTags2TagsPart(&pt->t, t);
+ yaffs_ECCCalculateOther((unsigned char *)&pt->t,
+ sizeof(yaffs_PackedTags2TagsPart),
+ &pt->ecc);
+}
+
+
void yaffs_UnpackTags2TagsPart(yaffs_ExtendedTags *t,
yaffs_PackedTags2TagsPart *ptt)
diff --git a/yaffs_packedtags2.h b/yaffs_packedtags2.h
index d90c6cb..fb1d49b 100644
--- a/yaffs_packedtags2.h
+++ b/yaffs_packedtags2.h
@@ -37,6 +37,8 @@ typedef struct {
void yaffs_PackTags2(yaffs_Device *dev, yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t);
void yaffs_UnpackTags2(yaffs_Device *dev, yaffs_ExtendedTags *t, yaffs_PackedTags2 *pt);
+void yaffs_PackTags2_no_dev(yaffs_PackedTags2 *pt, const yaffs_ExtendedTags *t);
+
/* Only the tags part (no ECC for use with inband tags */
void yaffs_PackTags2TagsPart(yaffs_PackedTags2TagsPart *pt, const yaffs_ExtendedTags *t);
void yaffs_UnpackTags2TagsPart(yaffs_ExtendedTags *t, yaffs_PackedTags2TagsPart *pt);
舊文-編譯make2yaffsimage-2010年01月11日 19:19