发新帖我要提问
12
返回列表
打印
[STM32F1]

如何在STM32中实现多任务调度?

[复制链接]
手机看帖
扫描二维码
随时随地手机跟帖
21
风凉| | 2025-4-21 10:33 | 只看该作者 回帖奖励 |倒序浏览
关键任务,分配高优先级,确保实时性。普通任务,分配中等优先级,平衡实时性和资源占用。低优先级任务,分配低优先级,避免影响关键任务

使用特权

评论回复
22
她已醉| | 2025-6-11 16:30 | 只看该作者
每个任务需分配独立的栈空间和任务控制块(TCB),并通过xTaskCreate()函数创建。任务函数通常包含无限循环,通过vTaskDelete()删除自身或由其他任务删除。

使用特权

评论回复
23
将爱藏于深海| | 2025-6-11 17:00 | 只看该作者
抢占式调度,高优先级任务可打断低优先级任务。若多个任务优先级相同,则通过时间片轮转(默认1ms)分配CPU时间

使用特权

评论回复
24
西洲| | 2025-6-11 18:00 | 只看该作者
合作式调度,任务需主动调用taskYIELD()让出CPU,否则不会发生抢占

使用特权

评论回复
25
故意相遇| | 2025-6-11 19:30 | 只看该作者
优先级数字越小,优先级越低(最低为0)。总优先级数由configMAX_PRIORITIES定义(默认56)

使用特权

评论回复
26
春日负喧| | 2025-6-11 22:00 | 只看该作者
使用vTaskPrioritySet()动态修改任务优先级

使用特权

评论回复
27
白马过平川| | 2025-6-12 02:00 | 只看该作者
FreeRTOS使用SysTick定时器作为基础时钟,默认时间片为1ms。每次定时中断触发任务切换,保存当前任务上下文并加载下一个任务的上下文

使用特权

评论回复
28
失物招領| | 2025-6-12 05:22 | 只看该作者
在STM32CubeMX中配置USE_PREEMPTION为Enable以启用抢占式调度

使用特权

评论回复
29
风凉| | 2025-6-12 16:49 | 只看该作者
避免频繁创建/删除任务,优先使用任务挂起/恢复(vTaskSuspend()和vTaskResume())

使用特权

评论回复
30
温室雏菊| | 2025-6-12 23:30 | 只看该作者
通过uxTaskGetStackHighWaterMark()监控任务栈使用情况,避免栈溢出

使用特权

评论回复
31
捧一束彼岸花| | 2025-6-13 09:00 | 只看该作者
避免优先级反转,通过优先级继承机制(如互斥锁)解决高优先级任务因等待低优先级任务持有的资源而被阻塞的问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则