野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10110|回复: 5

关于SDK中给出的FreeRTOS的任务切换问题

[复制链接]
发表于 2018-7-12 15:33:34 | 显示全部楼层 |阅读模式
我跑了一下SDK里面FreeRTOS_Hello的例程。我自己又创建了一个打印Hello Roy!的任务。想看一下两个任务是怎么切换的,但是我发现,串口打印出来的,一直都是打印最先创建的任务,后面的一个任务,根本没有运行,就算我把任务优先级调了。也没有运行到第二个任务去。请大佬帮我看看这是什么问题。

main

main

task

task
回复

使用道具 举报

发表于 2018-7-12 16:13:00 | 显示全部楼层
任务的死循环里要加系统延时,不然高优先级任务一直没挂起,其它任务没有执行的机会
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-13 11:07:35 | 显示全部楼层
flyleaf 发表于 2018-7-12 16:13
任务的死循环里要加系统延时,不然高优先级任务一直没挂起,其它任务没有执行的机会

我两个任务,设置的是一样的优先级啊。调度器不是按时间片来执行任务的吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-13 11:19:45 | 显示全部楼层
flyleaf 发表于 2018-7-12 16:13
任务的死循环里要加系统延时,不然高优先级任务一直没挂起,其它任务没有执行的机会

您好,我加了一个vTaskDelay,就可以实现两个任务切换了。我看FreeRTOS的中文说明里面。两个任务切换的例程,只是加了一个空循环的延迟函数来实现两个任务切换。我也加了一个,但是效果还是只运行一个任务。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-13 11:20:08 | 显示全部楼层
这个是说明书里面的例程函数。
图像 3.png
回复 支持 反对

使用道具 举报

发表于 2018-7-13 11:23:01 | 显示全部楼层
Missionary 发表于 2018-7-13 11:20
这个是说明书里面的例程函数。

这样不行的,一直不释放,又是最高优先级,从来不挂起,其它任务完全没机会得到系统的宠爱
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 20:37 , Processed in 0.055494 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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