首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 理工论文 → 电子通信 |
|
|||||
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.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 DevicesMTD下 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 以对内核进行编译。 当系统 Tags: |
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |