硬汉嵌入式论坛

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

[μCOS-II] 关于ucosii任务切换的过程的疑问

[复制链接]

36

主题

70

回帖

178

积分

初级会员

积分
178
发表于 2016-6-20 11:03:48 | 显示全部楼层 |阅读模式
uc/OS在切换任务时需要进行开关中断,那如果在中断的那个点上来了一包串口数据,由于中断关闭,无法进入串口接收中断,这样如果传递时没有握手机制,是不是会产生数据包的丢失?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107397
QQ
发表于 2016-6-20 11:28:13 | 显示全部楼层
这个可以简单计算下的,你虽然关闭了全局中断,但是串口硬件还是工作着的,他可以缓冲一个字节数据的,比如波特率115200bps,缓冲一个字节需要70微妙左右,uCOS-II的任务切换速度是300多个时钟周期,对于168MHz主频来说,2微妙左右就完成了,足以。

实在不放心就DMA缓冲。
回复

使用道具 举报

36

主题

70

回帖

178

积分

初级会员

积分
178
 楼主| 发表于 2016-6-20 11:32:06 | 显示全部楼层

回 eric2013 的帖子

eric2013:这个可以简单计算下的,你虽然关闭了全局中断,但是串口硬件还是工作着的,他可以缓冲一个字节数据的,比如波特率115200bps,缓冲一个字节需要70微妙左右,uCOS-II的任务切换速度是300多个时钟周期,对于168MHz主频来说,2微妙左右就完成了,足以。

实在不放心就DMA缓冲。 (2016-06-20 11:28) 
嗯也是,还有硬件上的缓存和DMA。明白了,多谢。
回复

使用道具 举报

336

主题

2042

回帖

3055

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3055
发表于 2016-6-20 16:06:40 | 显示全部楼层

回 eric2013 的帖子

eric2013:这个可以简单计算下的,你虽然关闭了全局中断,但是串口硬件还是工作着的,他可以缓冲一个字节数据的,比如波特率115200bps,缓冲一个字节需要70微妙左右,uCOS-II的任务切换速度是300多个时钟周期,对于168MHz主频来说,2微妙左右就完成了,足以。

实在不放心就DMA缓冲。 (2016-06-20 11:28) 
我还是有点担心。
串口在接受一个字节完毕的时候,产生中断,如果这个时候正好关闭了中断,这个中断信号就丢失了哦。 难道中断信号会缓存?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107397
QQ
发表于 2016-6-20 16:23:54 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:我还是有点担心。
串口在接受一个字节完毕的时候,产生中断,如果这个时候正好关闭了中断,这个中断信号就丢失了哦。 难道中断信号会缓存? (2016-06-20 16:06) 
实现任务切换的PendSV是最低优先级的中断,串口中断优先级高于他即可,这个不用担心。

除非你刻意在串口中断程序里面长时间关闭全局中断。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-30 07:18 , Processed in 0.220393 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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