OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5845|回复: 4

FREERTOS:临界区代码保护,中断处理

[复制链接]

15

主题

79

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2016-2-14
在线时间
36 小时
发表于 2022-12-13 13:25:15 | 显示全部楼层 |阅读模式
5金钱
在使用FreeRTOS时,
如果有一个任务,需要通过IIC读写外设数据,总的操纵时间是3ms。为了保证读写数据的完整性,做了临界区代码保护。关闭了中断。
那么,如果在关闭中断的这3ms时间中,刚好有串口数据/外部中断信号沿变化,那么这些数据/中断不就不能处理了?
而且,比如是串口数据,错过了1个字节,接收到的数据就不完整了,不能正常处理串口操作。
请问各位是怎么处理  临界区代码保护和中断的关系的呢?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

800

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3775
金钱
3775
注册时间
2017-3-7
在线时间
1645 小时
发表于 2022-12-13 13:29:29 | 显示全部楼层
不管哪种处理方式,单核芯片都存在这个问题,这个没法避免,只能想措施补救
回复

使用道具 举报

11

主题

2103

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4588
金钱
4588
注册时间
2015-1-10
在线时间
574 小时
发表于 2022-12-13 16:04:42 | 显示全部楼层
中断可能接收不到,但是串口用空闲中断+DMA的话软件上应该能处理掉
回复

使用道具 举报

15

主题

79

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2016-2-14
在线时间
36 小时
 楼主| 发表于 2022-12-13 17:17:11 | 显示全部楼层
阿侑kevin 发表于 2022-12-13 16:04
中断可能接收不到,但是串口用空闲中断+DMA的话软件上应该能处理掉

串口,我是移植的一个比较严谨的MODBUS通讯协议。
和PLC调试的时候,如果有问题,字节之间的时间间隔也比较好调整。
回复

使用道具 举报

11

主题

2103

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4588
金钱
4588
注册时间
2015-1-10
在线时间
574 小时
发表于 2022-12-14 09:08:00 | 显示全部楼层
why3354503 发表于 2022-12-13 17:17
串口,我是移植的一个比较严谨的MODBUS通讯协议。
和PLC调试的时候,如果有问题,字节之间的时间间隔也 ...

要是你用freemodbus那种字节接收的,那就没辙了
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 20:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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