这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 嵌入式开发» MCU» 怎样在我的arm板上建立flash文件系统????

共1条 1/1 1 跳转至

怎样在我的arm板上建立flash文件系统????

菜鸟
2004-11-27 01:43:05 打赏
怎样在我的 arm 板上建立 flash 文件系统????

我的开发板是ARM的,uclinux 开发包是基于linux-2.4-40裁减的。

目的:

我想在我的板子上实现flash文件系统,即能够在我的flash上创建目录,创建文件,存储文件...等文件操作。

目前状况:

根据板子开发平台搭建的说明文档,

1。make config ; 配置板子的ip和子网掩码。

1。make linuxconfig ; 修改uclinux的配置

3。make linux ; 编译内核 生成kernel-*****.bin ,这是uclinux的内核。

4。 make rootfs; 创建root文件系统

5。make romfs; 生成romfs-***.bin.gz ,这是创建rom文件系统。

主机(Redhatlinux9.0)通过minicom和板子连接,板子上的bootloader提供download功能,将编译后最终生成的 romfs-***.bin.gz download到板子的rom中。然后从rom启动。 uclinux 启动成功,出现shell 提示符:

#

/* 这是启动后 ,/ 目录的 结构*/

# cd /

# ls

bin home mnt root usr

dev lib opt sbin var

etc linux.bin.gz proc tmp

/* /dev 下出现了 mtd 和 mtdblock, 说明MTD 模块已经编译进内核,并检测到flash*/

# cd dev

# ls

blkmem fb kmem null pty scsi vc

cdroms full mem port random tty vcc

console ide mtdptmx rd ttyAM0 zero

cuaam0 ir mtdblockpts root urandom

/*mtd 下面出现两个文件,我 cat 0; 显示一堆乱码,不过我猜是我download 到板子上的romfs-***.bin.gz */

# cd mtd

# ls

0 0ro

/*mtdblock 下也出现一个文件 */

# cd ../mtdblock/

# ls

0

/*proc 文件的结构 , 出现 mtd */

# cd /proc/

# ls

1 7 execdomains kcore mounts stat

2 72 fb kmsg mtdswaps

3 bus filesystemsksyms net sys

4 cmdline fs loadavg partitions tty

5 cpuinfo ide locks pci uptime

52 devices interrupts meminfo scsi version

54 dma iomem misc self

6 driver ioports modules slabinfo

/*目前内核中支持的文件系统,有jffs,说明jffs文件系统已经 编译进内核*/

# cat filesystems

nodev rootfs

nodev bdev

nodev proc

nodev sockfs

nodev pipefs

ext2

nodev ramfs

minix

umsdos

msdos

vfat

iso9660

nodev devfs

nodev nfs

jffs

romfs

# cat mtd

/*cat /proc/mtd 后显示了 板子的 mtd 信息;总共 2m, 分两个区。 */

# cat mtd

dev: size erasesize name

mtd0: 00400000 00010000 "EM86XX mapped flash"

region 0 @ 00000000 [00002000 * 8]

region 1 @ 00010000 [00010000 * 63]

下面是启动过程 minicom 打印的信息。

/* 说明已经 probe flash*/

Probing EM86XX Flash Memory

EM86XX mapped flash: Found an alias at 0x400000 for the chip at 0x0 EM86XX mapped flash: Found an alias at 0x800000 for the chip at 0x0

EM86XX mapped flash: Found an alias at 0xc00000 for the chip at 0x0

Amd/Fujitsu Extended Query Table v1.1 at 0x0040

number of CFI chips: 1

Using word write method

cfi_cmdset_0002: Disabling fast programming due to code brokenness.

NET4: Linux TCP/IP 1.0 for NET4.0

IP Protocols: ICMP, UDP, TCP

IP: routing cache hash table of 512 buckets, 4Kbytes

TCP: Hash tables configured (established 2048 bind 2048)

NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.

FAT: bogus logical sector size 31776

UMSDOS: msdos_read_super failed, mount aborted.

FAT: bogus logical sector size 31776

FAT: bogus logical sector size 31776

/*jffs 的信息 */

JFFS: Trying to mount a non-mtd device.

VFS: Mounted root (romfs filesystem) readonly.

Mounted devfs on /dev

我感觉既然 /dev下面出现了mtd 目录,我是否已经可以在mtd下创建文件了。

# cd /dev/mtd

#

# ls

0 0ro

我在mtd下生成aa 文件

# touch aa

touch: aa: Permission denied

/*Permission denied ??? 不允许?? 不知什么原因???*/

# cd bin/

# ls

busybox date false kill mount ps sleep uname

cat dd fgrep ln msh pwd sync usleep

chgrp df grep ls mv rm tar vi

chmod dmesg gunzip mkdir netstat rmdir touch zcat

chown echo gzip mknod pidof sed true

cp egrep hostname more ping sh umount

从其他目录copy ping 到 /dev/mtd下:

# cp ping /dev/mtd/ping

cp: unable to open `/dev/mtd/ping': Permission denied

/* 不能 copy!!!! ????? */

哪位高人 做过相关方面,请帮帮忙,看看问题出在哪?想实现我的flash文件系统应该怎末解决!!

我对uclinux内核理解不是太深,/proc 文件系统,/dev 设备操作等理解不太清楚,也是刚刚看了些jffs, mtd , nandflash 的文档。大家有 这些方面的 文档 ,相关网址等等,也告诉俺!多谢!!




关键词: 怎样 我的 建立 flash 文件 系统

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]