有关嵌入式单板,RESET时配置文件丢失问题

shinerise 2015-12-27 09:18:20
各位大侠,我设计了一款系统,主要运行规格如下:
1.TI 3354平台,linux 3.2系统,UBI FS
2.系统每天半夜自动RESET一次,复位方式为看门狗复位
3.系统使用libxml2,我的app使用config.xml文件作为配置文件

于是诡异的事情来了,系统每天半夜reset时,我的基本操作如下:
1.使用xmlFreeDoc,释放xml文件句柄
2.调用system(“sync"),将文件缓存会写到文件系统
3.停止踢狗,2秒内,让看门狗复位系统

但是重启后会发现,这个config.xml文件变成了空文件。我app打log,可以看到停止踢狗前,xml文件时正确free并关闭了的,sync也正确执行了,重启的2秒内,没有任何访问这个config.xml文件的动作,为啥复位后,这个config变成了空文件呢?有谁碰到过这种问题吗?难道是TI的系统,FS有BUG?
...全文
131 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shinerise 2015-12-29
  • 打赏
  • 举报
回复
引用 2 楼 xuweiwei1860 的回复:
觉得syns没有实际起效果
其实哪怕sync没起作用,文件也不应该被清空啊。现在的情况是一个1K左右大小的配置文件,被清空了。奇怪啊!
shinerise 2015-12-29
  • 打赏
  • 举报
回复
引用 1 楼 one_kid 的回复:
信息不够,不太好判断,你可以从如下方面排查一下 1. watchdog feedoff前,,sync后,cat一下文件,看看在重启前文件是否有内容 2. 如果文件有内容,则看看系统初始化是否把文件清空了 3. 可以尝试使用“同步”方式mount文件系统,看看是否还有问题 4. 尝试使用system("reboot")方式重启看看 强烈怀疑实在重启后,初始化把文件清空了,你可以在初始化部分加一些调试信息看看
哈哈,我的两块板子,一块用system("reboot")重启,一块看门狗重启。reboot的方式,从来没发生配置文件丢失的问题,说明reboot是安全的。但是某些时候,非常偶尔,reboot重启失败。只有看门狗重启百分百成功。所以没办法,才采取了看门狗重启的方法。其实我也想用reboot的方式重启,但是不知道为啥,偶尔会失败。几十次能有1,2次失败,不知道为什么。
fly 100% 2015-12-29
  • 打赏
  • 举报
回复
觉得syns没有实际起效果
one_kid 2015-12-28
  • 打赏
  • 举报
回复
信息不够,不太好判断,你可以从如下方面排查一下 1. watchdog feedoff前,,sync后,cat一下文件,看看在重启前文件是否有内容 2. 如果文件有内容,则看看系统初始化是否把文件清空了 3. 可以尝试使用“同步”方式mount文件系统,看看是否还有问题 4. 尝试使用system("reboot")方式重启看看 强烈怀疑实在重启后,初始化把文件清空了,你可以在初始化部分加一些调试信息看看

21,595

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧