完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
关于系统定时器超时处理函数rt_timer_check,V5.1.0版本和原来v4.1.1版本有个区别在于,进入超时回调函数t->timeout_func(t->parameter);之前,是否要开启系统中断,V4.1.1版本保持关闭,v5.1.0版本开启了中断:
v5.1.0 v4.1.1 我在某个串口任务实现当中,使用了信号量的机制,在串口接收中断当中,释放了信号量,激活任务。由于串口接收中断优先级高于系统定时器中断优先级,如果按照v5.1.0版本,执行t->timeout_func(t->parameter);之前,先开启系统中断,就会遇到任务调度上的相互竞争问题:串口接收中断先释放了信号量,激活了任务,后续立刻执行t->timeout_func(t->parameter);触发了定时器超时回调函数里的断言。请问大家,这个问题有何解法? RT_ASSERT((thread->stat & RT_THREAD_STAT_MASK) == RT_THREAD_SUSPEND); 以下是我的测试过程 1.串口中断触发,IO1输出高电平,退出中断,输出低电平 2.进入超时函数t->timeout_func(t->parameter)前,IO2输出高电平,函数执行后,输出低电平 3.从下边图片看出,IO2拉高后,电平一直为高,是因为进入了断言,原因是任务以及激活 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
185个成员聚集在这个小组
加入小组rtstudio是否可像keil加载ini解决虚拟串口与mcu串口通讯?
1267 浏览 0 评论
【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
1810 浏览 1 评论
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
2185 浏览 0 评论
【Vision Board创客营连载体验】使用 Vision Board 做一个 UVC Camera
1817 浏览 0 评论
【Vision Board创客营连载体验】TinyMaix进行手写数字识别
2050 浏览 0 评论
1544浏览 5评论
在RT-Thread Studio中新建的stm32f407-atk-explorer工程运行qemu失败,是什么原因引起的?
1839浏览 3评论
为什么rt_device_read()只能读取到两个字节数据?
428浏览 3评论
连得上热点,但是ping baidu.com出现timeout,请问跟什么有关?
498浏览 3评论
520浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-18 03:47 , Processed in 0.691342 second(s), Total 74, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1318
