怎样挂载spi flash挂载失败分区到文件系统中的目录下

查看: 7086|回复: 16
AR9331出现JFFS2挂载文件系统错误
9331的cpu,SPI的flash,出现JFFS2挂载错误,
但是同样的硬件和固件,并不是全部都出现错误,而是个别,还是运行了一段时间后才出现的,请大家帮忙看看
以i经通过编程器将00和FF写入flash,然后读取出来,对比下,完全一样,应该可以说明flash没有坏块!
错误信息如下
Starting kernel...
[& & 0.000000] Linux version 3.10.17 () (gcc version 4.6.4 (OpenWrt/Linaro GCC 4.6-2013.05 unknown) ) #6 Wed May 28 09:22:06 CST 2014
[& & 0.000000] bootconsole [early0] enabled
[& & 0.000000] CPU revision is:
(MIPS 24Kc)
[& & 0.000000] SoC: Atheros AR9330 rev 1
[& & 0.000000] Clocks: CPU:400.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:25.000MHz
[& & 0.000000] Determined physical RAM map:
[& & 0.000000]&&memory:
[& & 0.000000] Initrd not found or empty - disabling initrd
[& & 0.000000] Zone ranges:
[& & 0.000000]& &Normal& &[mem 0xx03ffffff]
[& & 0.000000] Movable zone start for each node
[& & 0.000000] Early memory node ranges
[& & 0.000000]& &node& &0: [mem 0xx03ffffff]
[& & 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[& & 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[& & 0.000000] Built 1 zonelists in Zone order, mobility grouping on.&&Total pages: 16256
[& & 0.000000] Kernel command line:&&board=TL-WR741ND-v4 console=ttyATH0,115200 rootfstype=squashfs,jffs2 noinitrd
[& & 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[& & 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[& & 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[& & 0.000000] Writing ErrCtl register=
[& & 0.000000] Readback ErrCtl register=
[& & 0.000000] Memory: 6k available (2206k kernel code, 4264k reserved, 593k data, 272k init, 0k highmem)
[& & 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[& & 0.000000] NR_IRQS:51
[& & 0.000000] Calibrating delay loop... 265.42 BogoMIPS (lpj=1327104)
[& & 0.080000] pid_max: default: 32768 minimum: 301
[& & 0.080000] Mount-cache hash table entries: 512
[& & 0.090000] NET: Registered protocol family 16
[& & 0.100000] MIPS: machine is JinJiang LQ-2013N V3
[& & 0.550000] bio: create slab &bio-0& at 0
[& & 0.560000] Switching to clocksource MIPS
[& & 0.560000] NET: Registered protocol family 2
[& & 0.570000] TCP established hash table entries: 512 (order: 0, 4096 bytes)
[& & 0.570000] TCP bind hash table entries: 512 (order: -1, 2048 bytes)
[& & 0.570000] TCP: Hash tables configured (established 512 bind 512)
[& & 0.580000] TCP: reno registered
[& & 0.580000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[& & 0.590000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[& & 0.600000] NET: Registered protocol family 1
[& & 0.620000] squashfs: version 4.0 () Phillip Lougher
[& & 0.620000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c)
Red Hat, Inc.
[& & 0.630000] msgmni has been set to 119
[& & 0.640000] io scheduler noop registered
[& & 0.640000] io scheduler deadline registered (default)
[& & 0.640000] Serial:
driver, 1 ports, IRQ sharing disabled
[& & 0.650000] ar933x-uart: ttyATH0 at MMIO 0x (irq = 11) is a AR933X UART
[& & 0.660000] console [ttyATH0] enabled, bootconsole disabled
[& & 0.660000] console [ttyATH0] enabled, bootconsole disabled
[& & 0.670000] ath79-spi ath79-spi: master is unqueued, this is deprecated
[& & 0.680000] m25p80 spi0.0: found w25q128, expected m25p80
[& & 0.680000] m25p80 spi0.0: w25q128 (16384 Kbytes)
[& & 0. tp-link partitions found on MTD device spi0.0
[& & 0.690000] Creating 7 MTD partitions on &spi0.0&:
[& & 0.x-0x : &u-boot&
[& & 0.x-0xbfc : &kernel&
[& & 0.710000] mtd: partition &kernel& must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[& & 0.xbfc-0x0 : &rootfs&
[& & 0.720000] mtd: partition &rootfs& must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[& & 0.740000] mtd: partition &rootfs& set to be root filesystem
[& & 0. squashfs-split partitions found on MTD device rootfs
[& & 0.x-0x0 : &rootfs_data&
[& & 0.x00-0x : &art&
[& & 0.x-0x0 : &firmware&
[& & 0.x0-0x00 : &backup&
[& & 0.x-0x : &uboot_data&
[& & 0.790000] libphy: ag71xx_mdio: probed
[& & 0.800000] eth0: Atheros AG71xx at 0xba000000, irq 5, mode:GMII
[& & 1.350000] eth0: Found an AR7240/AR9330 built-in switch
[& & 2.390000] eth1: Atheros AG71xx at 0xb9000000, irq 4, mode:MII
[& & 2.940000] ag71xx ag71xx.0 eth1: connected to PHY at ag71xx-mdio.1:04 [uid=004dd041, driver=Generic PHY]
[& & 2.950000] TCP: cubic registered
[& & 2.950000] NET: Registered protocol family 17
[& & 2.21q: 802.1Q VLAN Support v1.8
[& & 2.960000] SQUASHFS error: unable to read id index table
[& & 2.970000] jffs2: Flash size not aligned to erasesize, reducing to 6848KiB
[& & 2.980000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx6873 instead
[& & 2.990000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxa105 instead
[& & 2.990000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx6d3a instead
[& & 3.000000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx2900 instead
[& & 3.010000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx0400 instead
[& & 3.020000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxc006 instead
[& & 3.030000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000001c: 0x0400 instead
[& & 3.040000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx731a instead
[& & 3.050000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxc25d instead
[& & 3.060000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxba5d instead
[& & 3.070000] jffs2: Further such events for this erase block will not be printed
[& & 3.080000] jffs2: Empty flash at 0x ends at 0x
[& & 3.090000] jffs2: Old JFFS2 bitmask found at 0x00003a64
[& & 3.090000] jffs2: You cannot use older JFFS2 filesystems with newer kernels
[& & 3.120000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxcc12 instead
[& & 3.130000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx6c83 instead
[& & 3.140000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx3960 instead
[& & 3.150000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0002000c: 0x91f5 instead
[& & 3.160000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxf518 instead
[& & 3.170000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxca6c instead
[& & 3.170000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx296c instead
[& & 3.180000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0002001c: 0x150c instead
[& & 3.190000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx2a87 instead
[& & 3.200000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxea05 instead
[& & 3.210000] jffs2: Further such events for this erase block will not be printed
[& & 3.250000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx1ed4 instead
[& & 3.260000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx75a8 instead
[& & 3.270000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx1a09 instead
[& & 3.270000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0003000c: 0x8cb4 instead
[& & 3.280000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx121c instead
[& & 3.290000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx3d8c instead
[& & 3.300000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx6f73 instead
[& & 3.310000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0003001c: 0xe6db instead
[& & 3.320000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx5676 instead
[& & 3.330000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx795c instead
[& & 3.340000] jffs2: Further such events for this erase block will not be printed
[& & 3.360000] jffs2: Old JFFS2 bitmask found at 0x0003432c
[& & 3.360000] jffs2: You cannot use older JFFS2 filesystems with newer kernels
[& & 3.390000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxa5fa instead
[& & 3.400000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx4016 instead
[& & 3.400000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxe999 instead
[& & 3.410000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0004000c: 0x21a8 instead
[& & 3.420000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxa0a3 instead
[& & 3.430000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx1853 instead
[& & 3.440000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx78a6 instead
[& & 3.450000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0004001c: 0x99b0 instead
[& & 3.460000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx143e instead
[& & 3.470000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx4f51 instead
[& & 3.480000] jffs2: Further such events for this erase block will not be printed
[& & 3.500000] jffs2: Old JFFS2 bitmask found at 0x
[& & 3.510000] jffs2: You cannot use older JFFS2 filesystems with newer kernels
[& & 3.530000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxa68f instead
[& & 3.530000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx6b10 instead
[& & 3.540000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxdacf instead
[& & 3.550000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0005000c: 0xbc00 instead
[& & 3.560000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxf33a instead
[& & 3.570000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx0c0c instead
[& & 3.580000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx7612 instead
[& & 3.590000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0005001c: 0x0730 instead
[& & 3.600000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xx09ec instead
[& & 3.610000] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0xxd006 instead
[& & 3.620000] jffs2: Further such events for this erase block will not be printed
/0_4/ 永夜君王
兄弟们& &谁见过这个错误&&看看有什么解决方案
分析可能是cpu或flash的缓存有问题。。一直没办法解决,必须断电再开机。。&
兄弟们& &谁见过这个错误&&看看有什么解决方案
分析可能是cpu或flash的缓存有问题。。一直没办法解决,必须断电再开机。。
我的是断电开机也不行
只能重新刷固件&
你看一下你的哪个flash分区是jffs2文件系统,估计是那个分区的文件系统格式被破坏了,重新格式话一下就好了
怎么才能定位这个问题呢?
找不到原因就没办法找到解决方案!&
问题是系统起不来
啥都做不了!&
分析可能是cpu或flash的缓存有问题。。一直没办法解决,必须断电再开机。。
我的是断电开机也不行& &
只能重新刷固件
你看一下你的哪个flash分区是jffs2文件系统,估计是那个分区的文件系统格式被破坏了,重新格式话一下就好了
问题是系统起不来& &啥都做不了!
你看一下你的哪个flash分区是jffs2文件系统,估计是那个分区的文件系统格式被破坏了,重新格式话一下就好了
怎么才能定位这个问题呢?
找不到原因就没办法找到解决方案!
你哪个flash分区是jffs2文件系统应该知道的吧?
系统起来之后用mount命令查看一下!&
怎么才能定位这个问题呢?
找不到原因就没办法找到解决方案!
你哪个flash分区是jffs2文件系统应该知道的吧?
系统起来之后用mount命令查看一下!
哦,对了。你现在是进不去系统!
不过根据你的情况,应该是你jffs2文件系统被写爆了。你每次往里面写东西,由于没有处罚jffs2的垃圾回收机制,所以慢慢的jffs2文件系统节点信息就被破坏了。
jffs2是靠读取这些固定&
你哪个flash分区是jffs2文件系统应该知道的吧?
系统起来之后用mount命令查看一下!
哦,对了。你现在是进不去系统!
不过根据你的情况,应该是你jffs2文件系统被写爆了。你每次往里面写东西,由于没有处罚jffs2的垃圾回收机制,所以慢慢的jffs2文件系统节点信息就被破坏了。
jffs2是靠读取这些固定格式的节点信息来识别文件系统的!
我觉得也有可能和jffs2有关
但是需要定位问题在哪儿
错误信息中有这样依据重要的话
2.960000] SQUASHFS error: unable to read id index table&
哦,对了。你现在是进不去系统!
不过根据你的情况,应该是你jffs2文件系统被写爆了。你每次往里面写东 ...
我觉得也有可能和jffs2有关& &
但是需要定位问题在哪儿
错误信息中有这样依据重要的话
[& & 2.960000] SQUASHFS error: unable to read id index table
你找一台好的板子,在上面看一下哪个分区是jffs2的。如果没有,你可以在内核编译的时候后去掉jffs2.&
我觉得也有可能和jffs2有关& &
但是需要定位问题在哪儿
错误信息中有这样依据重要的话
你找一台好的板子,在上面看一下哪个分区是jffs2的。如果没有,你可以在内核编译的时候后去掉jffs2.
现在还没找到出现这个问题的原因!&
你找一台好的板子,在上面看一下哪个分区是jffs2的。如果没有,你可以在内核编译的时候后去掉jffs2.
现在还没找到出现这个问题的原因!
你有没有确定你哪个分区使用的是jffs2文件系统?&
现在还没找到出现这个问题的原因!
你有没有确定你哪个分区使用的是jffs2文件系统?
[attachimg]94854[/attachimg]
这就是firmware分区表和地址,出错位置在rootfs中,但是说实话我并不确定rootfs和rootfs_data分别使用什么文件系统&
你有没有确定你哪个分区使用的是jffs2文件系统?
IMG_457.jpg (533.77 KB, 下载次数: 0)
15:12 上传
这就是firmware分区表和地址,出错位置在rootfs中,但是说实话我并不确定rootfs和rootfs_data分别使用什么文件系统
这个rootfs的文件系统类型是设计者根据具体的需求,在设计的时候定下来的。
你可以找一台好的设备,执行mount指令,就可以查看到到底有哪些文件系统,以及相应的目录。&
我也是这个问题,好像是rootfs分区小了,晚上再编译下试试
我也是这个问题,好像是rootfs分区小了,晚上再编译下试试
这就是firmware分区表和地址,出错位置在rootfs中,但是说实话我并不确定rootfs和rootfs_data分别使 ...
这个rootfs的文件系统类型是设计者根据具体的需求,在设计的时候定下来的。
你可以找一台好的设备,执行mount指令,就可以查看到到底有哪些文件系统,以及相应的目录。
Powered by查看: 3173|回复: 30
YAFFS2文件系统能否用在SPI FLASH上??
如题。。。。。W25X64 的SPI FLASH ,文件系统能不能用YAFFS2 ??
没用过YAFFS2,但是文件系统和存储介质与接口有关系么?
据资料显示,YAFFS2是嵌入式的专用系统
FatFS,这个简单,方便
不玩openwrt吗。
第一次听说YAFFS2,baidu了下,还真是种NAND flash 嵌入式文件系统,而且:目前YAFFS 和YAFFS2 皆遵守GNU GPL开放原始码。Android 采用yaffs2作为MTD NAND flash文件系统,位于fs/yaffs2/目录下。
多此一举,yaffs是专给nand用的,管理坏块,校验ecc,擦写均衡这些东西,spiflash基本没有坏块,也不用算ecc,容量也就那么点,自己弄个简单文件管理还划算一些
lz完全可以不用fs,太大了,flash容量小,自己按照fs的思路,自己写几个函数,应该够用了
自己搞了几个读写和查询函数,满足不了要求,我希望是这样的。。。。。
存储:要求存大约5000组数据,数据定时存储、条件触发存储、每次存的数据量大小不固定,在存数据的过程中要能判断FLASH的剩余容量,避免FLASH容量撑爆。&&设备经常开关机,文件系统要经受的住这样的考验。
查询: 按时间查询、条件查询、查询一组数据、查询一条数据、删除某一组数据、删除某一条数据
大侠们。。。。满足以上功能,该怎么做呢。。。。。。之前没用文件系统,用哈希+链表,花了一天时间把8M的存储空间建了一个HASH表,仅仅一张HASH表就占了10K的空间,把这张表读到RAM就死翘翘了。。。。。。。后来才想到用文件系统来试试看。。。。。。
多此一举,yaffs是专给nand用的,管理坏块,校验ecc,擦写均衡这些东西,spiflash基本没有坏块,也不用算ec ...
fatfs没有考虑损耗均衡,用于spi flash可能会导致首扇区较快磨损
建议楼主参考下spiffs,专为spi flash设计的文件系统:
上午恶补了一下文件系统方面的知识,现在倒犯迷糊了。。。。。我使用的W25X64 到底属于NOR还是NAND??
W25X64 属于NOR
上午恶补了一下文件系统方面的知识,现在倒犯迷糊了。。。。。我使用的W25X64 到底属于NOR还是NAND?? ...
spi flash属于nor flash+spi 接口控制器;tf卡属于nand flash+sdio控制器
谢谢楼上的指点。。。。。。
spiffs 学习一下
还有spi ffs!!mark!!!
spi ffs!!mark!!!
天马行空 发表于
自己搞了几个读写和查询函数,满足不了要求,我希望是这样的。。。。。
存储:要求存大约5000组数据,数据 ...
这种情况最好的数据结构应该是b+树
几乎所有的真正的数据库,内部的索引结构都是这个
专为spi flash设计的文件系统:, 这个不错啊
spiflash就没必要用yaff2了
可以用。我昨天刚挂载上,做了一个4MByte的镜像,每回首次mount时都会比较慢,这个跟jffs2文件系统机制有关,每次mount时它都会检查一下整个分区,所以容量越大耗时越长。
spiflash&&支持一下
spi flash属于nor flash+spi 接口控制器;tf卡属于nand flash+sdio控制器
不要误导大众,你先去查查资料再说
不要误导大众,你先去查查资料再说
质疑前也请你 “先去查查资料再说”。
以下是spi flash框图,左边是spi接口控制器,右边是nor flash存储区和缓冲sram。
以下是tf卡 打磨拆解图,闪亮的部分是nand flash存储区, 底下小长方形的部分就是主控芯片,负责SDIO接口控制和flash管理。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
专为spi flash设计的文件系统:/pellepl/spiffs, 这个不错啊
质疑前也请你 “先去查查资料再说”。
以下是spi flash框图,左边是spi接口控制器,右边是nor flash存储 ...
这个够专业了.
标记一下,上班看看。
质疑前也请你 “先去查查资料再说”。
以下是spi flash框图,左边是spi接口控制器,右边是nor flash存储 ...
好吧。我错了。
SPIFFS不错
质疑前也请你 “先去查查资料再说”。
以下是spi flash框图,左边是spi接口控制器,右边是nor flash存储 ...
赞,学习一下。没有见过 TF 卡打磨以后是什么样子的。
关于那个文件系统,TF/SD 和 raw flash 是很不一样的。
关键在于 SD 卡是有块管理的。内部会做块的映射已减少
某些块例如 super block 被擦除次数特别多。
YAFF2 这些是针对 raw flash 写的,自己做块均衡这些。
而且充分利用从 1 写到 0 不需要 erase 这一个特点。
SD 卡就不需要用 YAFF2
阿莫电子论坛, 原"中国电子开发网"- Database Error
The server is currently busy. Please try again later.
已经将此出错信息详细记录, 由此给您带来的访问不便我们深感歉意.}

我要回帖

更多关于 spi flash 分区 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信