搜索
bottom↓
回复: 8
打印 上一主题 下一主题

UCOSII系统往文件中写数据时需要禁止任务调度吗?

[复制链接]

出55入4汤圆

跳转到指定楼层
1
发表于 2022-9-5 14:32:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
100汤圆

STM32使用UCOS II系统,串口不定时会收到采样端发送过来的数据,主任务收到后会把串口收到的数据通过FAT文件系统写到NANDFLASH内的CSV文件中,昨天突然看到CSV文件中一个数据28.39被意外改成了28.#9,如附件图,怀疑是主任务正在往文件里面写数据,突然串口中断来了,然后又引起系统调度,进入优先级更高的串口数据处理任务(这个任务有调试信息输出,时间相对长一些),导致主任务写数据的时序被打乱,最终写到文件中的数据错了,请问大家在往文件中写数据时有禁止任务调度吗?
如果禁止了任务调度,串口中断只是在数据来临时进入一会就又出来,时间很短,应该影响不大。

附件: 您需要 登录 才可以下载或查看,没有帐号?注册

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

2
发表于 2022-9-5 14:40:43 | 只看该作者
不怕一万就怕万一

出0入442汤圆

3
发表于 2022-9-5 15:15:56 来自手机 | 只看该作者
原则上并不会。。通常大家会加锁解决设备单一访问问题。

出0入115汤圆

4
发表于 2022-9-5 15:27:54 | 只看该作者
任务调度或者中断是否破坏写flash的时序,如果没有,问题不大。

出55入4汤圆

5
 楼主| 发表于 2022-9-5 15:34:27 | 只看该作者
wye11083 发表于 2022-9-5 15:15
原则上并不会。。通常大家会加锁解决设备单一访问问题。
(引用自3楼)


大神您好  您是说原则上我那个文件数据被错写  原因不会是串口中断引起其它高级别任务调度导致吗?

另外是不是UCOS II系统在写文件时是不是已经默认加锁了啊?

出0入442汤圆

6
发表于 2022-9-5 15:40:50 来自手机 | 只看该作者
ChenXC1121 发表于 2022-9-5 15:34
大神您好  您是说原则上我那个文件数据被错写  原因不会是串口中断引起其它高级别任务调度导致吗?

另 ...

(引用自5楼)

ucos我没有折腾过。。但根据经验,嵌入式操作系统可能不会去主动加锁。。你可以想办法测测在什么条件下最容易出错,然后定位到具体地方。

出0入84汤圆

7
发表于 2022-9-5 16:08:12 | 只看该作者
涉及到硬件的 都加个锁安全些。
也不占多少资源。

出0入0汤圆

8
发表于 2022-9-5 17:04:50 | 只看该作者
读写flash设备只需加互斥信号量即可,颗粒度做细点

出0入42汤圆

9
发表于 2022-9-5 17:10:32 | 只看该作者
flash读写操作时肯定要避免被中断。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-28 21:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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