硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2323|回复: 2
收起左侧

[YAFFS/YAFFS2] 大家的写文件任务优先级有多高

[复制链接]

14

主题

61

回帖

103

积分

初级会员

积分
103
发表于 2017-12-16 12:25:28 | 显示全部楼层 |阅读模式
之前认为写文件不需要太高的优先级,也没有在意过,昨天在一个测试任务中发现写入的文件经常只写一半,而在正常工作时没有发现这个问题。
在写过程中也有临界区保护的,但是我只保护2以上的优先级中断,我有几个1优先级Timer和DMA没中断函数也不进行保护。
开始以为是中断打断,后来把1优先级任务调低,也让他们被临界区保护,也会发生只写一半。
无奈只能缩减系统功能逐步排查,当关断GUI任务时,多次测试写文件没有问题,才意识到我的测试任务优先级比GUI任务优先级还低,正常工作时GUI是最低优先级的,GUI的调度抢占了测试任务写文件的时间。
将测试任务优先级调到正常写文件任务优先级,多次测试没有问题。

文件系统已经在底层做了Mutex保护,但mutex只保护了多线程写文件的冲突。如何对高优先级任务抢占写文件任务进行保护,是否应该识别出写文件的原子操作,然后进行其他任务挂起,如果能够保护,这种保护是否违背了抢占式实时系统的原则。
Linux下面是否有同样的问题,它是如何保护的呢。

平台:STM32F429
RTOS:FreeRTOS
FS:YAFFS2
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2017-12-16 12:38:04 | 显示全部楼层
楼主,你的描述稍有点问题。
当是不是写文件的优先级比GUI任务优先级高,即使是低也没有关系,GUI任务对读写操作会有什么影响,现在F429都是DMA操作SD,NAND也没有关系啊,都是FMC硬件执行,不怕时序被打断。

另外你前面说的任务拍被打断,这都随意操作,除非你的SPI ,I2C等这种模拟时序操作器件才会有这种被打断的问题。
回复

使用道具 举报

14

主题

61

回帖

103

积分

初级会员

积分
103
 楼主| 发表于 2017-12-16 15:02:37 | 显示全部楼层

回 eric2013 的帖子

eric2013:楼主,你的描述稍有点问题。
当是不是写文件的优先级比GUI任务优先级高,即使是低也没有关系,GUI任务对读写操作会有什么影响,现在F429都是DMA操作SD,NAND也没有关系啊,都是FMC硬件执行,不怕时序被打断。

另外你前面说的任务拍被打断,这都随意操作,除非你的SPI ,I2C等这种 .. (2017-12-16 12:38) 
我也觉得应该没问题,那我怀疑是GUI写的有问题,我们再排查一下,谢谢
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 17:24 , Processed in 0.170275 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表