搜索
bottom↓
回复: 4

OSIntEnter和OSIntExit可否这样用?

[复制链接]

出0入0汤圆

发表于 2010-9-9 15:26:15 | 显示全部楼层 |阅读模式
ucos就是靠中断中执行这两个函数,然后在退出中断后自动切换任务吧?如果某个中断发生的频率很快,可不可以不用这两个函数?还有一个问题,如果一个中断向量对应多个中断标准,比如STM32的串口中断中发完,收完,校验出错。可不可以通过判断标志位来执行这两个函数,这样可以做到串口发的时候不切换任务,收的时候才切任务。

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

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入4汤圆

发表于 2010-9-9 15:33:40 | 显示全部楼层
首先这两个函数是通知内核进入临界状态和退出临界状态。也意未其它中断和高优先极任务不能打入进来。退出中断后通过任务调度函数查找到最高优先级并运行。中断频率快慢不影响使用这两个函数。这两个函数只有上面的功能,和其它无关。

出0入4汤圆

发表于 2010-9-9 15:40:20 | 显示全部楼层
高优先级的任务完成后要自行释放CPU使用权,所以每个任务最好做的事情少速度要快实时性就高。

出0入0汤圆

发表于 2010-9-9 18:02:50 | 显示全部楼层
楼主都用STM32了啊。

CC1110很痛苦。

出0入0汤圆

发表于 2010-9-9 22:52:56 | 显示全部楼层
就算是115200波特率的串口 fifo16 一秒中断也没有多少次 完全没必要为了节省这个时间去改 UC/OS 内核

况且你的程序不可能一秒内串口不停歇一直首发吧


1 OSIntEnter 实际上就是来统计中断嵌套层数的 占用时间非常短

2 OSIntExit  只有在退出最后一层中断时候 并且OSLockNesting 也为0的时候才会做出是否切换任务的判断

3 串口中断发送的时候一般也不会引起任务切换  除非你在发送任务里还激活了其他任务
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-26 05:21

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

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