为什么CompactFlash会崩溃掉?我如何预防这种情况发生?



硬件: Compact FieldPoint>>Controllers>>cFP-2020, Compact FieldPoint>>Controllers>>cFP-2120

问题: 我遇到了 CompactFlash 崩溃的情况,我想知道为什么会发生这种情况。有没有办法避免我的CompactFlash存储卡(CF卡)崩溃?

解答: 为什么会崩溃以及如何发生的:
  1. 在应用程序进行文件I/O操作时重复上电可能会引起cFP控制器Flash崩溃。文件也许以及更新了但是文件分配表(FAT)却没有,或者FAT更新了,文件却没有更新。FAT是文件在驱动器上的主要映射,因此,如果FAT出错了,就会发生崩溃问题。在任何文件系统下,如果电源被中断了,那么最新写入的文件将会出现问题。很简单,因为磁盘硬件需要供电。如果使用Reliance文件系统,文件将只保存旧的数据。如果使用FAT文件系统,那么文件可能部分是新的数据,部分是旧的数据。
  2. 在boot时(加载系统或者自启动程序)重复上电可能会引起Flash崩溃,因为磁盘正在进行读取操作。如果正在写系统文件,系统文件可能会被损坏。如上,这不是Flash损坏,而是文件损坏。Flash损坏将引起整个磁盘故障。
  3. 运行一个不带文件I/O操作的LabVIEW程序将不会引起CompactFlash存储器的崩溃。
  4. 频繁地打开和关闭文件不是个好主意。越频繁地刷新文件,文件更新的缓存将越频繁地写入磁盘。这意味着你很可能会由于突然断电而丢失数据。例如,如果我每过30秒刷新文件,那么我也许会由于断电而丢失30秒的数据或者小于30秒的数据。

如何避免这种情况:

  1. 使用备用电源放置意外重启。
  2. 在写系统文件时重启会产生问题,因为系统文件只更新了一部分。一旦全部代码都加载到了RAM中,你可以根据需要进行重启。
  3. 在一个自启动应用程序的一开始避免写一个大于512字节的文件,最好等待几秒钟。


相关链接: KnowledgeBase 3C2EKCFL: Reformatting the Internal CompactFlash Memory on Real-Time Controllers (cFP or cRIO)

附件:





报告日期: 01/13/2005
最近更新: 03/24/2013
文档编号: 3HCKFQPK