你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

求助STM32F103 FreeRTOS任务调度异常问题

[复制链接]
pretty868 提问时间:2018-10-8 10:03 /
阅读主题, 点击返回1楼
收藏 评论20 发布时间:2018-10-8 10:03
20个回答
CC4 回答时间:2018-10-10 09:42:34
基础还是要学的,先学习下操作系统原理吧,否则,大神说听不懂也是个问题。
Seaman 回答时间:2018-10-10 16:25:42
我认为这是个优先级的问题,任务1的优先级高于任务2,。方式1,:在调用vTaskDelay(500) 函数后,任务1/2进入阻塞状态,启动调度器,CPU运行的是空闲任务,直到定时时间到,任务1/2是几乎并行执行,都能正常;
Seaman 回答时间:2018-10-10 16:30:42
方式2:任务1用的是无任务调度的Delay_Ms(500)函数, 这样的话任务1就一直可以运行的状态,CPU不存在阻塞空闲,根据优先级任务1高于任务2,只有优先级高的任务1得到运行
Seaman 回答时间:2018-10-10 16:33:54
方式3:任务1、2用的都是无任务调度的Delay_Ms(500)函数,同方式2,只有任务1得到运行。如果把任务1、2的优先级改成相同,则方式3也是可以正常运行的
踮起脚摘苹果 回答时间:2020-2-10 22:21:32
如果没有反应,应该是延时函数Delay_Ms没有加FreeRTOS的内核函数进行调度
aiherong 回答时间:2020-2-13 03:13:00
在uCOSiii若同时使用systick的延时函数和OS的延时函数,二者将产生冲突!
究其原因: 后者是经前者封装后产生的,估计楼主的软件delay_ms()就是前者systick 作为ARM Cortex 内核的"心脏"是OS 任务轮询的时间片的基础,一旦OS开始
运行就随即接管滴答时钟的控制权
12
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版