但是现在遇到一个问题:
第一次开机前,在EBOOT下格式化为FAT32文件系统,
开机,正常访问FLASH
第二次正常开机,自动格式化FLASH,标记一些原本 不是坏块 的 块 为坏块。
注册表配置如下:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SMFLASH]
"Dll"="smflash.dll"
"Order"=dword:2
"Prefix"="DSK"
"Ioctl"=dword:4
"Profile"="SMFLASH"
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH]
"Name"="PXA270 NAND FLASH"
"Folder"="NandFlash"
"MountFlags"=dword:0
"AutoMount"=dword:1
"AutoPart"=dword:1
"AutoFormat"=dword:1
"DefaultFileSystem"="FATFS"
"PartitionDriver"="mspart.dll"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH\FATFS]
"FriendlyName"="FAT FileSystem"
"Dll"="fatfsd.dll"
"Flags"=dword:00000014
"Paging"=dword:1
"CacheSize"=dword:0
"EnableCacheWarm"=dword:0
起初我以为是读写时,延时不够造成开机时,读取文件系统信息错误,因此开始标记坏块,但是我将读写的RB延时加长,到1MS,还是一样的问题。
希望调试过的朋友帮帮忙,下周一就要演示了。
感激不尽
24 个解决方案
#1
在线等待,求解,谢谢了
#2
查查为什么不是坏块的也被mark成坏块了,看看系统读取spare中的数据为什么为出问题
#3
自动格式化。。在哪里呢。EBOOT的中,内核启动时
#4
没有碰到过,不过我最近也碰到一个奇怪的问题,我在频繁的插拔U盘的时候,我的U盘里面的文件不见了.
还有一次,在升级MCU的程序的时候,NAND FALSH FAT32分区的文件不见了.
还有一次,在升级MCU的程序的时候,NAND FALSH FAT32分区的文件不见了.
#5
wince内核启动的时候,自动格式化的!
#6
可能是因为原来存储的分区信息丢失了,系统启动时才会自动格式化。
"AutoFormat"=dword:1
这个改为0试试看呢。
"AutoFormat"=dword:1
这个改为0试试看呢。
#7
#8
用RAM注册表试试
#9
RAM注册表的时候系统都没法启动
如果分区坏了,不自动格式化,那盘符就不见了啊
#10
这个情况 在我这里没有发现过 我的平台PXA320+WINCE6.0
#11
楼主设置了自动格式化
wince无法识别分区就会自动格式化的。
wince无法识别分区就会自动格式化的。
#12
RAM注册表的时候系统都没法启动,可能是没有全编译一下。我以前碰到类似问题,先还是把RAM注册表跑起来。
#13
第一次开机前,在EBOOT下格式化为FAT32文件系统,
开机,正常访问FLASH
第二次正常开机,自动格式化FLASH,标记一些原本 不是坏块 的 块 为坏块
---》假如第一次开机,但不访问flash,接着关机,再开机还会自己的格式话吗?楼主可以试一下
开机,正常访问FLASH
第二次正常开机,自动格式化FLASH,标记一些原本 不是坏块 的 块 为坏块
---》假如第一次开机,但不访问flash,接着关机,再开机还会自己的格式话吗?楼主可以试一下
#14
PXA270的总线时序需要调整吗?
我都没有设置过,都是用的默认的。
我都没有设置过,都是用的默认的。
#15
还是没有解决问题。
发现一些现象,在驱动里面写一个测试程序,擦除,写入,读取,针对整个Flash,
偶尔会出现第0块都是读写错误,有时候却很正常。
而我再EBOOT里面,写了一个同样的测试程序,每次都OK。
调用的擦除,读写函数是相同的。
原理图是这样连接的:
| MCU | NAND |
------------------
ADDR1 CLE
ADDR2 ALE
NOE /RE
NWE /WE
GPIO16 R//B
NCS1 /CE
DATA0-7 IO0-7
VCC3.3 /WP
------------------
发现一些现象,在驱动里面写一个测试程序,擦除,写入,读取,针对整个Flash,
偶尔会出现第0块都是读写错误,有时候却很正常。
而我再EBOOT里面,写了一个同样的测试程序,每次都OK。
调用的擦除,读写函数是相同的。
原理图是这样连接的:
| MCU | NAND |
------------------
ADDR1 CLE
ADDR2 ALE
NOE /RE
NWE /WE
GPIO16 R//B
NCS1 /CE
DATA0-7 IO0-7
VCC3.3 /WP
------------------
#16
请大家帮帮忙啊,马上投版了,郁闷的很啊
#17
wince启动时,没有找到nand的MBR块就会去格式化
#18
难道是MBR损坏了?
#19
M-----A-------R------K
#20
看来是没有办法了
#21
改了多种不同的线路,任然有问题,看来要从驱动上寻找根源了。
我在boot里面格式化,启动后,能够看到盘符,访问都正常,容量也是OK的。
重启
开机扫描发现坏块,自动格式化,这是一个长期的过程,大概要10来分钟。
格式化完毕之后,容量只有30多M了,也就是说几乎全是坏块。但是不影响使用,读写正常
这次是系统自动格式化的
重启之后,扫描坏块,任然是哪些,因此不用重新格式化。多次重启任然不会出现问题,我已经重启了几十次了。
总结下,boot里面格式化,系统重启几次后,就自动重新格式化了。
系统自动格式化,很难自动重新格式化,但是容量就不对了,256M的内存,扫描下来就只有几十M了。
大家帮忙分析一下这个原因呢,谢谢
我在boot里面格式化,启动后,能够看到盘符,访问都正常,容量也是OK的。
重启
开机扫描发现坏块,自动格式化,这是一个长期的过程,大概要10来分钟。
格式化完毕之后,容量只有30多M了,也就是说几乎全是坏块。但是不影响使用,读写正常
这次是系统自动格式化的
重启之后,扫描坏块,任然是哪些,因此不用重新格式化。多次重启任然不会出现问题,我已经重启了几十次了。
总结下,boot里面格式化,系统重启几次后,就自动重新格式化了。
系统自动格式化,很难自动重新格式化,但是容量就不对了,256M的内存,扫描下来就只有几十M了。
大家帮忙分析一下这个原因呢,谢谢
#22
可能是因为原来存储的分区信息丢失了,系统启动时才会自动格式化。
"AutoFormat"=dword:1
这个改为0试试看呢。
受教了。这个format的作用在这里吗?看来是真的了,你可以在BOOT里面格式化分区都完成后不要启动到kernel里面。你看看在你对应的那个nand块中是否存在有MBR,并且里面的数据是否正确,全部都打印出来。
他们的意思是你的MBR是不是没有搞对啊。。。
继续。。哥们
#23
昨天试着改了一下MEMORY_CONTROL_REGISTER的MSC0,应该是调整时序的吧,但是没有什么变化,照样还是要格式化。
现在真是没法定位问题了,不知道是硬件还是软件的问题了。
现在真是没法定位问题了,不知道是硬件还是软件的问题了。
#24
MBR应该是没有问题了,我今天试过了,
我估计是开机扫描的nand的时候,有些数据出错了,导致系统重新格式化了nandflash
但是现在没法确定是硬件还是软件不稳定导致数据错误的。
郁闷中~~~~~
我估计是开机扫描的nand的时候,有些数据出错了,导致系统重新格式化了nandflash
但是现在没法确定是硬件还是软件不稳定导致数据错误的。
郁闷中~~~~~
#1
在线等待,求解,谢谢了
#2
查查为什么不是坏块的也被mark成坏块了,看看系统读取spare中的数据为什么为出问题
#3
自动格式化。。在哪里呢。EBOOT的中,内核启动时
#4
没有碰到过,不过我最近也碰到一个奇怪的问题,我在频繁的插拔U盘的时候,我的U盘里面的文件不见了.
还有一次,在升级MCU的程序的时候,NAND FALSH FAT32分区的文件不见了.
还有一次,在升级MCU的程序的时候,NAND FALSH FAT32分区的文件不见了.
#5
wince内核启动的时候,自动格式化的!
#6
可能是因为原来存储的分区信息丢失了,系统启动时才会自动格式化。
"AutoFormat"=dword:1
这个改为0试试看呢。
"AutoFormat"=dword:1
这个改为0试试看呢。
#7
#8
用RAM注册表试试
#9
RAM注册表的时候系统都没法启动
如果分区坏了,不自动格式化,那盘符就不见了啊
#10
这个情况 在我这里没有发现过 我的平台PXA320+WINCE6.0
#11
楼主设置了自动格式化
wince无法识别分区就会自动格式化的。
wince无法识别分区就会自动格式化的。
#12
RAM注册表的时候系统都没法启动,可能是没有全编译一下。我以前碰到类似问题,先还是把RAM注册表跑起来。
#13
第一次开机前,在EBOOT下格式化为FAT32文件系统,
开机,正常访问FLASH
第二次正常开机,自动格式化FLASH,标记一些原本 不是坏块 的 块 为坏块
---》假如第一次开机,但不访问flash,接着关机,再开机还会自己的格式话吗?楼主可以试一下
开机,正常访问FLASH
第二次正常开机,自动格式化FLASH,标记一些原本 不是坏块 的 块 为坏块
---》假如第一次开机,但不访问flash,接着关机,再开机还会自己的格式话吗?楼主可以试一下
#14
PXA270的总线时序需要调整吗?
我都没有设置过,都是用的默认的。
我都没有设置过,都是用的默认的。
#15
还是没有解决问题。
发现一些现象,在驱动里面写一个测试程序,擦除,写入,读取,针对整个Flash,
偶尔会出现第0块都是读写错误,有时候却很正常。
而我再EBOOT里面,写了一个同样的测试程序,每次都OK。
调用的擦除,读写函数是相同的。
原理图是这样连接的:
| MCU | NAND |
------------------
ADDR1 CLE
ADDR2 ALE
NOE /RE
NWE /WE
GPIO16 R//B
NCS1 /CE
DATA0-7 IO0-7
VCC3.3 /WP
------------------
发现一些现象,在驱动里面写一个测试程序,擦除,写入,读取,针对整个Flash,
偶尔会出现第0块都是读写错误,有时候却很正常。
而我再EBOOT里面,写了一个同样的测试程序,每次都OK。
调用的擦除,读写函数是相同的。
原理图是这样连接的:
| MCU | NAND |
------------------
ADDR1 CLE
ADDR2 ALE
NOE /RE
NWE /WE
GPIO16 R//B
NCS1 /CE
DATA0-7 IO0-7
VCC3.3 /WP
------------------
#16
请大家帮帮忙啊,马上投版了,郁闷的很啊
#17
wince启动时,没有找到nand的MBR块就会去格式化
#18
难道是MBR损坏了?
#19
M-----A-------R------K
#20
看来是没有办法了
#21
改了多种不同的线路,任然有问题,看来要从驱动上寻找根源了。
我在boot里面格式化,启动后,能够看到盘符,访问都正常,容量也是OK的。
重启
开机扫描发现坏块,自动格式化,这是一个长期的过程,大概要10来分钟。
格式化完毕之后,容量只有30多M了,也就是说几乎全是坏块。但是不影响使用,读写正常
这次是系统自动格式化的
重启之后,扫描坏块,任然是哪些,因此不用重新格式化。多次重启任然不会出现问题,我已经重启了几十次了。
总结下,boot里面格式化,系统重启几次后,就自动重新格式化了。
系统自动格式化,很难自动重新格式化,但是容量就不对了,256M的内存,扫描下来就只有几十M了。
大家帮忙分析一下这个原因呢,谢谢
我在boot里面格式化,启动后,能够看到盘符,访问都正常,容量也是OK的。
重启
开机扫描发现坏块,自动格式化,这是一个长期的过程,大概要10来分钟。
格式化完毕之后,容量只有30多M了,也就是说几乎全是坏块。但是不影响使用,读写正常
这次是系统自动格式化的
重启之后,扫描坏块,任然是哪些,因此不用重新格式化。多次重启任然不会出现问题,我已经重启了几十次了。
总结下,boot里面格式化,系统重启几次后,就自动重新格式化了。
系统自动格式化,很难自动重新格式化,但是容量就不对了,256M的内存,扫描下来就只有几十M了。
大家帮忙分析一下这个原因呢,谢谢
#22
可能是因为原来存储的分区信息丢失了,系统启动时才会自动格式化。
"AutoFormat"=dword:1
这个改为0试试看呢。
受教了。这个format的作用在这里吗?看来是真的了,你可以在BOOT里面格式化分区都完成后不要启动到kernel里面。你看看在你对应的那个nand块中是否存在有MBR,并且里面的数据是否正确,全部都打印出来。
他们的意思是你的MBR是不是没有搞对啊。。。
继续。。哥们
#23
昨天试着改了一下MEMORY_CONTROL_REGISTER的MSC0,应该是调整时序的吧,但是没有什么变化,照样还是要格式化。
现在真是没法定位问题了,不知道是硬件还是软件的问题了。
现在真是没法定位问题了,不知道是硬件还是软件的问题了。
#24
MBR应该是没有问题了,我今天试过了,
我估计是开机扫描的nand的时候,有些数据出错了,导致系统重新格式化了nandflash
但是现在没法确定是硬件还是软件不稳定导致数据错误的。
郁闷中~~~~~
我估计是开机扫描的nand的时候,有些数据出错了,导致系统重新格式化了nandflash
但是现在没法确定是硬件还是软件不稳定导致数据错误的。
郁闷中~~~~~