完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
RTTnano 的用户main函数中的优先级是多少?为什么会出现创建新的task之后,main函数会抢占掉低优先级的task,例如RT_THREAD_PRIORITY_MAX设置为8 ,低于3的优先级任务都会被main抢占,从而导致无法执行,这样该如何优雅一点解决,目前我的解决办法就是增大任务优先级。
|
|
相关推荐
2个回答
|
|
建议读一遍启动过程
Reset handler (CMSIS/…/arm/startup_stm32fxxx.s)优先级判定逻辑在 rt_system_scheduler_start() |
|
|
|
RTTnano的用户main函数没有明确的优先级,它是最高优先级的空闲任务。当创建了更低优先级的任务时,main函数会被抢占掉,这是因为RTTnano调度器采用优先级抢占式调度算法。这种算法会根据任务的优先级来决定任务的调度顺序,优先级越高的任务被调度的概率越大。而优先级低于main函数的任务会被main函数抢占,从而导致无法执行。
为了解决这个问题,可以采取以下方法: 1. 调整任务的优先级:将低于main函数优先级的其他任务的优先级调高,以确保它们能够正常执行。 2. 创建其他高优先级的任务:如果需要保持低优先级任务的执行,可以创建其他高优先级的任务,使它们和main函数竞争执行资源,以确保所有任务都能被调度执行。 3. 使用协程或定时器:考虑使用协程或定时器来实现一些功能,而不是使用低优先级的任务。协程可以在main函数中运行,无需创建新的任务,从而避免了任务被抢占的问题。 4. 调整RTTnano的配置参数:RTTnano提供了一些配置参数来调整调度器的行为,例如可以调整时间片的长度或者改变调度算法,以满足具体需求。 综上所述,根据具体情况选择适合的解决方案,并根据实际需求调整任务的优先级或RTTnano的配置参数,以确保任务能够按照预期执行。 |
|
|
|
只有小组成员才能发言,加入小组>>
157个成员聚集在这个小组
加入小组【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
906 浏览 0 评论
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
1313 浏览 0 评论
【Vision Board创客营连载体验】使用 Vision Board 做一个 UVC Camera
939 浏览 0 评论
【Vision Board创客营连载体验】TinyMaix进行手写数字识别
1205 浏览 0 评论
【Vision Board创客营连载体验】RA8D1-Vision Board使用7寸屏设置为RGB666大端模式模式成功显示摄像头图案
1216 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 19:49 , Processed in 0.681800 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号