NUC970系列NandFlash烧写教程:JFFS2与NuWriter使用

需积分: 3 0 下载量 142 浏览量 更新于2024-08-04 收藏 915KB PDF 举报
"该资源是关于NUC970系列微控制器的烧写手册,主要讲解如何使用NuWriter工具烧写JFFS2文件系统到NandFlash。内容包括了u-boot-spl.bin、u-boot.bin、env.txt、Linux kernel以及yaffs2文件系统的烧写步骤和相关文件的说明。" 在嵌入式系统开发中,特别是针对NUC970这样的微控制器,文件系统的选择和管理至关重要。JFFS2(Journaling Flash File System version 2)是一种专为闪存设备设计的日志型文件系统,它能够有效地处理闪存的擦写次数限制,提高系统的稳定性和数据完整性。在这个烧写手册中,开发者将学习如何利用NuWriter工具来操作JFFS2文件系统。 首先,烧写过程中涉及的文件有: 1. `u-boot-spl.bin`:这是Small U-Boot的启动部分,它的任务是将完整的u-boot.bin加载到DDR内存中并执行。默认执行地址是0x200,但可以进行修改。 2. `u-boot.bin`:这是U-Boot的主要部分,是嵌入式设备的引导加载器,负责加载Linux内核。它在NandFlash中的烧写地址是0x100000,执行地址是0xE00000。 3. `env.txt`:包含了U-Boot的环境变量,存储在NandFlash的0x80000位置,用于设置启动参数。 4. `970image.ub`:这是Linux内核的映像文件,加载地址为0x7fc0,执行地址为0x8000,烧写地址是0x200000,并需与U-Boot的`bootcmd`环境变量保持一致。 5. `rootfs_yaffs2.img`:这是制作好的YAFFS2文件系统,用于存储应用程序、配置文件等。 烧写过程包括以下几个步骤: 1. 使用NuWriter烧写`u-boot-spl.bin`,选择`uBoot型`,设置执行地址为0x200。 2. 接下来是`u-boot.bin`,选择`Data型`,设置起始偏移量为0x100000。 3. 再来是`env.txt`,选择`Environment型`,设置起始偏移量为0x80000。 4. 然后是`970image.ub`,同样选择`Data型`,设置起始偏移量为0x200000。 5. 最后,制作YAFFS2文件系统`rootfs_yaffs2.img`,烧写到NandFlash中。 对于YAFFS2文件系统的创建,通常需要使用特定的工具如`mkyaffs2image`来生成,这里提到了`mkyaffs2-inband-tags-p2048rootfs`,这表明是在制作一个内带标签的YAFFS2映像,块大小可能是2048字节,然后生成的映像文件是`rootfs_yaffs2.img`,用于烧写到NandFlash。 在实际应用中,正确烧写这些文件到NandFlash是确保NUC970系统能够正常启动和运行的关键。开发者需要确保所有文件的位置和格式都符合设备的需求,以避免启动失败或数据丢失的问题。此外,JFFS2文件系统的日志特性能够保证在断电或其他异常情况下的数据一致性,这对嵌入式系统的可靠性至关重要。