xp系统 c++获取文件版本信息_嵌入式文件系统C/FS的日志使用

49a430c60129cf2a445be3e7556818f9.png

3df48b58babcfb10a6cd1d42a9fcf72c.png

尽管在PC领域NTFS已经取代了FAT,但FAT文件系统仍然是嵌入式开发的首选。除了为嵌入式应用程序提供与PC(因为Windows继续支持FAT)的无缝交互,对于电源不稳定的设备开发者来说,基于FAT的文件系统解决方案可能是增加系统可靠性的一个的来源,为了提供掉电保护,FAT实现需配备日志模块。

日志模块通过将更改的意图记录在 “日记”数据结构中,来跟踪尚未提交文件系统的更改,通过历史记录,日志模块可以在电源故障的情况下维护文件系统目录层次结构,并确保底层结构不会损坏。值得注意的是,尽管日志模块确实保护文件系统不受损坏,但它不提供对数据(文件内容)的保护。因此,在电源故障之后,在发生故障时被修改的一个文件可能处于一个“未知”的状态,在此状态中,部分或期望的内容会丢失。

当然,不同的文件系统实现中,使用日志功能的步骤会有所不同。采用Micrium的µC/FS,该过程非常简单,只需四个步骤:

229e1172c4197ca3370bf7f4e122aa74.png

添加fs_fat_journal.c文件到工程中,该文件位于$:\Micrium\Software\uC-FS\FAT($:\表示Micrium软件目录)。

229e1172c4197ca3370bf7f4e122aa74.png

在fs_cfg.h文件中,使能FS_FAT_JOURNAL_EN,该配置使能文件系统中执行记录的函数。

229e1172c4197ca3370bf7f4e122aa74.png

在应用代码中,调用相应的API,在指定的卷设备中打开并启动日志。

  FS_FAT_JournalOpen()

该函数打开在文件系统中找到的日志文件。如果日志不存在,文件系统将创建日志文件。

  FS_FAT_JournalStart()

  此操作之后,对目标卷的任何更改都将记录在日志中。

229e1172c4197ca3370bf7f4e122aa74.png

最后,对于要使用日志的每一个卷设备,您都需要重复步骤3。因为日志模块一次只能在一个特定的卷启用。

完成了所有上述步骤,您的应用程序就可以使用µC/FS的日志模块。您可能已经注意到,上面没有提到停止和关闭日志模块的指令。尽管这些选项可用(FS_FAT_JournalStop()停止日志,FS_FAT_JournalClose()关闭日志),但是我们建议您不要停止或关闭日志模块,因为一旦停止对日志的更新,之后的系统操作将不会被记录或保护。

点击蓝字关注这个神奇的公众号~

d51d085381670a883c2ae4287d7ff0c0.png 5b0e4b99023c65a779cc9299bdf803ed.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值