Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15530852
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类: 嵌入式

2009-08-21 19:04:42

  可能大家都非常熟悉jffs2和yaffs2文件系统在flash上的搭建,当然对于存储系统必须文件,比如配置文件,可执行文件和数据文件等,他们是非常棒的,但是如果需要将开发板模拟成u盘来让操作系统通过usb识别的话,还需要从flash中事先保留一块分区给fat才行,下面就着重介绍如何将flash预留的6M空间做成fat32分区[luther.gliethttp].

RedBoot> fis create -l 0x600000 gliethttp.vfat      // 创建一个6M的空分区,用来格式化成fat32
... Erase from 0x60c00000-0x61200000: ........................
... Program from 0x00000000-0x00000000 at 0x60c00000:
... Erase from 0x61fc0000-0x62000000: .
... Program from 0x03fbf000-0x03fff000 at 0x61fc0000: .
RedBoot> fis list
Name              FLASH addr  Mem addr    Length      Entry point
RedBoot           0x60000000  0x60000000  0x00040000  0x00000000
RedBoot config    0x61F80000  0x61F80000  0x00001000  0x00000000
FIS directory     0x61FC0000  0x61FC0000  0x00040000  0x00000000
initramfs         0x60900000  0x00800000  0x00300000  0x00800000
zImage            0x60040000  0x00080000  0x00200000  0x00080000
gliethttp.jffs2   0x60400000  0x60400000  0x00500000  0x00080000
gliethttp.vfat    0x60C00000  0x00000000  0x00600000  0x00000000

进入busybox的shell
# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00040000 00040000 "RedBoot"
mtd1: 00200000 00040000 "zImage"
mtd2: 00500000 00040000 "gliethttp.jffs2"
mtd3: 00300000 00040000 "initramfs"
mtd4: 00600000 00040000 "gliethttp.vfat"
mtd5: 00001000 00040000 "RedBoot config"
mtd6: 00040000 00040000 "FIS directory"

# mtd_debug read /dev/mtd4 0 512 gliethttp.bin;hexdump gliethttp.bin -Cv
Copied 512 bytes from address 0x00000000 in flash to gliethttp.bin
00000000  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000010  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000020  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000040  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000050  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000060  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000070  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000080  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000090  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
000000a0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
000000b0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
000000c0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
000000d0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
000000e0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
000000f0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000100  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000110  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000120  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000130  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000140  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000150  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000160  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000170  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000180  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
00000190  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
000001a0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
000001b0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
000001c0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
000001d0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
000001e0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
000001f0  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|

# mkfs.vfat /dev/mtd4 6144  // 0x600000/1024=6144K

# mtd_debug read /dev/mtd4 0 512 gliethttp.bin;hexdump gliethttp.bin -Cv  
Copied 512 bytes from address 0x00000000 in flash to gliethttp.bin
00000000  eb 58 90 6d 6b 64 6f 73  66 73 00 00 02 01 06 00  |.X.mkdosfs......|
00000010  02 00 00 00 30 f8 00 00  3f 00 ff 00 00 00 00 00  |....0...?.......|
00000020  00 30 00 00 5f 00 00 00  00 00 00 00 02 00 00 00  |.0.._...........|
00000030  01 00 03 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000040  00 00 29 20 04 00 00 00  00 00 00 00 00 00 00 00  |..) ............|
00000050  00 00 46 41 54 33 32 20  20 20 0e 1f be 77 7c ac  |..FAT32   ...w|.|
00000060  22 c0 74 0b 56 b4 0e bb  07 00 cd 10 5e eb f0 32  |".t.V.......^..2|
00000070  e4 cd 16 cd 19 eb fe 54  68 69 73 20 69 73 20 6e  |.......This is n|
00000080  6f 74 20 61 20 62 6f 6f  74 61 62 6c 65 20 64 69  |ot a bootable di|
00000090  73 6b 0d 0a 00 00 00 00  00 00 00 00 00 00 00 00  |sk..............|
000000a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000100  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000110  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000120  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000130  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000140  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000150  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000170  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000190  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|

# mount -t vfat /dev/mtdblock4 /mnt
# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/mtdblock4            5.9M       512      5.9M   0% /mnt

# cp /bin/busybox /mnt/

# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/mtdblock4            5.9M    808.0K      5.1M  13% /mnt

# umount /mnt
# reboot开机之后可以看到busybox实实在在的存储到了fat32分区中[luther.gliethttp].

(PS:不知道为什么
# fdisk /dev/mtd4
# fdisk /dev/mtdblock4 都不能正常创建fat分区[luther.gliethttp].
)

阅读(6149) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~