OpenEdv-开源电子网

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

关于原子哥F1系列UCOSIII中的事件标志组案例内void flagsprocess_task(void *p_arg)函数(功能是事件标志组处理任务)调度问题

[复制链接]

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2017-6-12
在线时间
15 小时
发表于 2018-6-12 10:23:14 | 显示全部楼层 |阅读模式
1金钱
各位大虾,原子哥事件标志组案例中的这个任务函数除了OSFlagPend会引发调度,当执行完这个任务函数后,还有哪个地方引起了调度从而跳出了这个任务函数去执行其他就绪任务呢,这个工程没用到时间片~多谢多谢大侠们多多美言本帖带本案例附件,内含source insight打开

任务函数体

任务函数体

例12-1 UCOSIII事件标志组.zip

5.29 MB, 下载次数: 48

附件

最佳答案

查看完整内容[请看2#楼]

while(1)循环里面循环调用的OSFlagPend()函数!这个函数就会进行任务切换!OSFlasgPend不是只运行一次!!而是每次请求到相应的事件标志并做相应处理以后会再次调用OSFlagPend(),这个函数就会进行任务切换,而且UCOSIII每个系统时钟中断都会进行一次任务切换
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2018-6-12 10:23:15 | 显示全部楼层
本帖最后由 zuozhongkai 于 2018-6-12 15:10 编辑

while(1)循环里面循环调用的OSFlagPend()函数!这个函数就会进行任务切换!OSFlasgPend不是只运行一次!!而是每次请求到相应的事件标志并做相应处理以后会再次调用OSFlagPend(),这个函数就会进行任务切换,而且UCOSIII每个系统时钟中断都会进行一次任务切换
回复

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2017-6-12
在线时间
15 小时
 楼主| 发表于 2018-6-12 10:23:51 | 显示全部楼层
帮自个顶一下
回复

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2017-6-12
在线时间
15 小时
 楼主| 发表于 2018-6-12 15:08:53 | 显示全部楼层
明白了,问了工程师,根据while(1)接着仍旧以已有的pend等待,这就产生了调度,因为此时时间标志组里面的标志被清零了
回复

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2017-6-12
在线时间
15 小时
 楼主| 发表于 2018-6-12 15:09:59 | 显示全部楼层
zuozhongkai 发表于 2018-6-12 15:08
看清除了!!!while(1)循环里面循环调用的OSFlagPend()函数!这个函数就会进行任务切换!

我傻了,多谢多谢原子哥提醒
回复

使用道具 举报

13

主题

62

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1007
金钱
1007
注册时间
2016-8-1
在线时间
157 小时
发表于 2018-6-13 10:04:47 | 显示全部楼层
引起调度的点有十几种能引起的条件,包括这个任务的死循环反复调用就会引起还有时基中断等还有你如果有外部中断的话也会引起。。。
回复

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2017-6-12
在线时间
15 小时
 楼主| 发表于 2018-6-13 21:58:20 | 显示全部楼层
稳稳的Lau 发表于 2018-6-13 10:04
引起调度的点有十几种能引起的条件,包括这个任务的死循环反复调用就会引起还有时基中断等还有你如果有外部 ...

多谢受教了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-2 06:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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