自强不息!
分类: WINDOWS
2010-03-23 11:28:48
以前在方案供应商买开发板上用NAND FLASH 是128M的K9F1G08U0A,在使用中分成了4个区域,第个分区做成了FLASH DISK ,第二个和第三个分区分别是NK.BIN的存放分区,第四个LOGO存放的分区,我现在是要改成1G的 NAND FLASH 型号是K9K8G08U0A,那么要改动那些地方呢
C:\WINCE500\PLATFORM\Db1200\Eboot\Common\Ldrnand
C:\WINCE500\PLATFORM\Db1200\Eboot\Common\Ldrbinfs
C:\WINCE500\PLATFORM\Db1200\Eboot\Inc
C:\WINCE500\PLATFORM\Db1200\Drivers\Binfs
C:\WINCE500\PLATFORM\Db1200\Drivers\nandFmd
首
先我们看下Eboot\Inc下面的Nanddarg.h里面定义了
#if defined(USE_BINFS)
#define BINFS_NUM_BLOCKS 800 //定义BINFS文件系统占用NAND FLASH 多少个块
#define BINFS_LOGO_NUM_BLOCKS 50 //定义LOGO文件占用NAND FLASH 多少个块
#else // 我觉得LOGO的50 BLOCKS应该是包含在
//BINFS_NUM_BLOCKS 里面了
#define BINFS_NUM_BLOCKS 0 //不使用BINFS文件系统
#endif
#if defined(K9F1G08U0A)
#define
NUM_BLOCKS (1024-BINFS_NUM_BLOCKS)
//定义了BINFS文件系统占用后还剩多少BLOCKS
#define SECTOR_SIZE 2048 //FLASH 的页大小
#define SPARE_SIZE 64 //是指一页有另外多少字节来存放的ECC空间,不同的FLASH是不同的
#define SECTOR_PER_BLOCK 64 //一块多少个页
K9K8G08U0A总共有8192 Blocks,Pages=2048 ,SPARE_SIZE=64,BLOCKS=64Pages
那么我就应该修改成:
#if
defined(K9K8G08U0A)
#define NUM_BLOCKS
(8196-BINFS_NUM_BLOCKS) //定义了BINFS文件系统占用后还剩多少BLOCKS
#define SECTOR_SIZE 2048 //FLASH 的页大小
#define SPARE_SIZE 64 //是指一页有另外多少字节来存放的ECC空间,不同的FLASH是不同的
#define SECTOR_PER_BLOCK 64 //一块多少个页
另外 BINFS_NUM_BLOCKS和BINFS_LOGO_NUM_BLOCKS这两个参数是怎么使用的呢,上面我BINFS_NUM_BLOCKS定义 的BINFS文件系统占用的了多少BLOCKS FLASH的空间,
BLOCK=128; 800 BLOCKS=800×128K =100MB,BINFS_LOGO_NUM_BLOCKS占用的了50个BLOCKS,那就减去50 BLOCKS ,50 BLOCKS = 50*128K = 6MB, 那用来放NK的分区就有94MB,这里又把94MB分成了两个区,每个区47MB,一个区是存放NK.BIN,另外一个存放一个NK.bin的备份。