用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

uClinux下NorFlash的JFFS2文件系统构建

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 23:49:38
9VF160在系统中的起始地址、大小、总线宽度

#define WINDO DDR 0x1000000|0x04000000 //注意FLASH分区地址必须是non-cacheble

#define WINDOW SIZE 0x200000

#define BUSWIDTH 2

(2) 定义SST39VF160分区

典型的内存分区应包括:内核引导区、Linux内核区、应用区。其中内核引导区用来保存内核加载程序,Linux内核区存放的是经过压缩的uClinux内核,应用区则用来保存用户的数据和应用程序,该区设为我们要采用的JFFS2文件系统。具体如下:

static struct mtd_partition s3c4510_partitions[]={

{

name: ″bootloader(128K)″,

size: 0x20000,

offset: 0x0000,

mask_flags:MTD_WRITEABLE //设置成只读区域

},

{

name: ″uClinux_kernel(832K)″,

size: 0xd0000,

offset: 0x20000,

},

{

name: ″jffs2 (1088K)″,

size: 0x110000,

offset: 0xf0000

}

};

(3) 定义SST39VF160字节、半字、字的读写操作函数。

(4) 初始化SST39VF160函数int_init init_s3c4510b()。

该操作主要包括两个方面:第一是调用do map probe()检测搜索MTD设备。通常检测方式有两种:cfi probe和jedec probe,这里采用后一种,该方法在jedec_probe.c文件中定义。另外,jedec probe.c中定义了各种jedec probe类型芯片的信息,有些linux版本没有包含SST39VF160,需要手动添加;而操作的第二方面则是调用add_mtd_partitions()以将your_partiton的各个分区加入mtd_table。

3 内核相关配置的设定

3.1 内核配置文件设置

为使内核支持JFFS2,需在内核配置选项菜单里选择相关选项。首先把SST39VF160的MTD驱动加入配置菜单。并在mtd/maps/Config.in文件中加入如下程序:

if[″$CONFIG ARM″= ″y″]; then

dep_tristate′CFI Flash device mapped on Samsung S3C4510B′CONFIG_MTD_S3C4510B $CONFIG_MTD_CFI

相应\mtd\maps\Makefile文件加入

obj_$(CONFIG_MTD_S3C4510B)+=s3c4510b.o

其次选择Menuconfig下的配置选项。

在linux Kernel v2.4.20-uc0 Configuration下

Memory Technology DevicesMTD下

CONFIG_MTD=Y

CONFIG_MTD_DEBUG=Y

CONFIG_MTD_DEBUG_VERBOSE=3

CONFIG_MTD_PARTITIONS=Y

CONFIG_MTD_CHAR=Y

CONFIG_MTD_BLOCK=Y

RAM/ROM/Flash chip drivers下

CONFIG_MTD_CFI=Y

CONFIG_MTD_JEDECPROBE=Y

CONFIG_MTD_CFI_AMDSTD=Y

Mapping drivers for chip access下

CONFIG_S3C4510B=Y

File systems下

CONFIG_JFFS2_FS=Y

CONFIG_JFFS2_FS_DEBUG=2

在uClinux v1.3.4 Configuration下

Flash Tools下

CONFIG_USER_MTDUTILS=Y

CONFIG_USER_MTDUTILS_ERASE=Y

CONFIG_USER_MTDUTILS_ERASEALL=Y

CONFIG_USER MTDUTILS_MKFSJFFS2=Y

BusyBox下选中cat,cp,dd, mount,umount,mkdir工具。

3.2 MTD块设备配置

下面是修改系统块设备的主设备号。默认情况下,MTDBLOCK主设备号为31,与BLKMEM的主设备号冲突,因此 修改\mtd\mtd.h中 MTD BLOCK MAJOR的值为30。

接着应添加MTD设备节点到/vender/--你所使用的目标机类型--/Makefile文件中。其中字符设备的主设备号为90,次设备号为0、2、4、6...(奇数次设备号为只读设备),块设备的主设备号为31,次设备号为0、1、2、3。可按以下方式增加DEVICES目标:

mtd0,c,90,0 mtd1,c,90,1 mtd2,c,90,2

mtdblock0,b,30,0 mtdblock1,b,30,1 mtd-block2,b,30,2

做完以上步骤,可以运行内核编译命令make dep, make 以对内核进行编译。

当系统

上一页  [1] [2] [3]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:7,578.12500 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号