5683|11

58

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于tfat文件系统 [复制链接]

各位兄弟,我现在有个比较棘手的问题需要大家帮忙,是关于tfat的:

1、有没有哪位使用tfat文件系统来解决(fat系统)读写时意外断电而损坏文件系统的问题(通常这时候很可能OS跑不起来了),还是可以用其他方法?
2、SD,和NandFlash可不可以分别格式化成FAT和tFat,怎样做?因为我只想对nandflash保护,而SD卡又需要与PC文件同步。
3、怎样使用tfat文件系统(除了加载tfat组件外,还需要在platform.reg中添加什么吗)
4、怎么在CE中判定文件系统的类型?有没有API

最新回复

我发现boot里没有对坏块进行处理,没有坏块表,也没有发现坏块时的拷贝操作~ 然后在nandflash驱动中,它是用“试图擦写256以下的block将直接返回为坏块处理”来保护BOOT,NK等系统区域的, 但是这样似乎并没有保护system.hv等文件,因为平台只有1个fat分区。 这两天在做一个实验,即系统起来后把nandflash的写保护脚拉低,不让系统或用户来写flash。 我写了个测试程序,让系统不停的开关机,测试了2天了也没有发现问题,这似乎已经解决了我的问题了~ 现在有个新问题: 因为把nandflash写保护脚拉低后,系统第一次尝试写flash失败后,会遍历所有block,然后把它们全部标示为坏块~ 这样下次在类似创建文件/写文件动作时,系统将直接返回错误,即时我把nandflash写保护脚拉高也没用。 也就是说,nandflash写保护启用后,就不用再恢复写操作了?! 各位有什么办法,比如在写保护禁用后,通知(API)系统重新遍历一下nandflash区域?   详情 回复 发表于 2009-6-17 09:46
点赞 关注

回复
举报

62

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
; Keep FATFS from trying to shadow \Windows
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SMFLASH\FATFS]
    "Flags"=dword:14
    "FormatTfat"=dword:1
    "CheckForFormat"=dword:1
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
要保护OS所在分区为何不用IMGFS?
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

4
 
是要保护文件系统,意外断电时
RAMIMAGE也是系统去保护的吧,对于意外的操作恐怕无能为力~
呵呵,不知道楼上的有什么好方法?

另外我的问题,帮忙解答一下啊,迷惑中。。。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用楼主 nick_TS16949 的帖子:
1、有没有哪位使用tfat文件系统来解决(fat系统)读写时意外断电而损坏文件系统的问题(通常这时候很可能OS跑不起来了),还是可以用其他方法?
tfat的安全性比FAT要高,但是需要保证底层的块驱动能够以Sector为单位的原子操作。
2、SD,和NandFlash可不可以分别格式化成FAT和tFat,怎样做?因为我只想对nandflash保护,而SD卡又需要与PC文件同步。
当然可以
3、怎样使用tfat文件系统(除了加载tfat组件外,还需要在platform.reg中添加什么吗)
看LS gooogleman的
4、怎么在CE中判定文件系统的类型?有没有API
不太清楚,不过在BootSector中可以看到是TFAT而不是FAT,同时根目录位置有些Dont Del的信息。
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(初级)

6
 
谢谢gsmichael的回复~
其实打算使用tfat也是没办法,现在从别人手中接过来个项目,遇到一个比较严重的问题:
“运行过程中开关机,有比较大的几率会系统跑不起来,除非重新格式化FLASH,在烧录NK”。
而我查看了FLASH的代码,发现:
1、没有硬件/软件ECC。
2、FLASH的保护PIN是直接接上拉电阻的,会不会有问题?比如舜压,浪涌等环境下。
3、系统文件,比如system.hv等跟用户文件放在一起,没有进行分区。
4、就像gsymichael说的那样,FMD_WriteSector中没有进行原子操作,有可能会引起用户和系统操作冲突。

而关于tfat文件系统,我按照googleman的方法试了一次,系统可以跑起来,但是我不确定当前系统是不是真的是tfat~
说下我的方法:
1、从catalog中添加tfat组件
2、改写注册表
    [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk]
   "Name"="MICHAEL NAND FLASH"
   "Folder"="NandDisk"
   "DefaultFileSystem"="FATFS"
   "AutoMount"=dword:1
   "AutoPart"=dword:1
   "AutoFormat"=dword:1
   "PartitionDriver"="mspart.dll"
   "BootPhase"=dword:0
   "MountFlags"=dword:6
   "Ioctl"=dword:4
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDisk\FATFS]
  "EnableCacheWarm"=dword:0
  "Paging"=dword:1
  "Flags"=dword:00640024
  "FormatTfat"=dword:1

另外,我的想法是在系统起来后,即把FLASH写禁用(把nandlfash的write protect脚拉低),但是同样需要禁止上层应用或系统写文件系统。
(我把WP 拉低后,FLASH禁止写入,但是用户在FLASH中创建文件夹是否会改写文件系统的分区表,这样系统还是起不来了!)

请兄弟们帮忙下,分不够我再加,谢谢!
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

7
 
再顶~
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 5 楼 nick_TS16949 的回复:
谢谢gsmichael的回复~
其实打算使用tfat也是没办法,现在从别人手中接过来个项目,遇到一个比较严重的问题:
“运行过程中开关机,有比较大的几率会系统跑不起来,除非重新格式化FLASH,在烧录NK”。
而我查看了FLASH的代码,发现:
1、没有硬件/软件ECC。
2、FLASH的保护PIN是直接接上拉电阻的,会不会有问题?比如舜压,浪涌等环境下。
3、系统文件,比如system.hv等跟用户文件放在一起,没有进行分区。
4、就像…


没人知道吗:?
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 
系统起不来未必是这个问题。

系统起不来和热启动,冷启动。你的板子是否放电干净有关系。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

10
 
放电是否干净可能对上电时序有影响,通常在单片机中必须要注意的~ (如有错误,请指正 ))
但我的ARM系统中并没有用到电源管理,而且通过打印信息可以看出来,是跑到DEVICE.exe处挂掉的.
我以前在做2440时,也碰到过类似问题,只是几率比较低,通常是客退机种的~

对了,googleman大侠,
你用过uc/fs的文件系统吗? 在ADS下怎样对nandflash进行分区,我想分2个区,现在还没头绪~
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

11
 
移动设备上,异常断电而造成的文件丢失,系统崩溃应该比较常见阿,
难道兄弟们没遇到过,没有解决方案吗?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

12
 
我发现boot里没有对坏块进行处理,没有坏块表,也没有发现坏块时的拷贝操作~
然后在nandflash驱动中,它是用“试图擦写256以下的block将直接返回为坏块处理”来保护BOOT,NK等系统区域的, 但是这样似乎并没有保护system.hv等文件,因为平台只有1个fat分区。

这两天在做一个实验,即系统起来后把nandflash的写保护脚拉低,不让系统或用户来写flash。
我写了个测试程序,让系统不停的开关机,测试了2天了也没有发现问题,这似乎已经解决了我的问题了~

现在有个新问题:
因为把nandflash写保护脚拉低后,系统第一次尝试写flash失败后,会遍历所有block,然后把它们全部标示为坏块~
这样下次在类似创建文件/写文件动作时,系统将直接返回错误,即时我把nandflash写保护脚拉高也没用。
也就是说,nandflash写保护启用后,就不用再恢复写操作了?!
各位有什么办法,比如在写保护禁用后,通知(API)系统重新遍历一下nandflash区域?
 
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表