搜索
查看: 2516|回复: 7

[已解决] 新人刚学RTOS,请教占用时间很长程序。时间片如何抢占?

[复制链接]

该用户从未签到

2

主题

7

帖子

0

蝴蝶豆

初级会员

最后登录
2019-5-17
发表于 2019-3-25 17:14:07 | 显示全部楼层 |阅读模式
本帖最后由 aceking1123 于 2019-3-25 17:18 编辑

我有2个任务,A任务必须2ms执行一次,每次用时0.7ms,B任务每60ms执行一次,用时22ms
裸跑的时候是在主程序里循环执行B任务,在每2ms中断里执行A

如果用了FreeRTOS和设置了1ms的sysclk,那么OS会如何分配时间片呢?

在task2dosth();//22ms里面能抢占实时执行task1的任务吗?

如何保证A能2ms执行一次?

void TaskA(void){
while(1){
  taskAdosth();//0.7ms
  vTaskDelay(2);
}
}

void TaskB(void){
while(1){
  taskBdosth();//22ms
  vTaskDelay(60);
}
}
222.png

IMG_20190325_170054.jpg

回复

使用道具 举报

该用户从未签到

5

主题

246

帖子

172

蝴蝶豆

金牌会员

最后登录
2021-3-26
发表于 2019-3-26 18:35:20 | 显示全部楼层
本帖最后由 edmundlee 于 2019-3-26 18:36 编辑

把执行时间长的任务, 设为低优先级别。
就是TaskA 优先级别要高于 TaskB

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

7

帖子

0

蝴蝶豆

初级会员

最后登录
2019-5-17
 楼主| 发表于 2019-3-27 10:23:19 | 显示全部楼层
edmundlee 发表于 2019-3-26 18:35
把执行时间长的任务, 设为低优先级别。
就是TaskA 优先级别要高于 TaskB

谢谢回复,我想知道具体的话,OS会在什么时候切换这两个任务呢?每1ms切换一次吗?
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

246

帖子

172

蝴蝶豆

金牌会员

最后登录
2021-3-26
发表于 2019-3-27 11:43:53 | 显示全部楼层
aceking1123 发表于 2019-3-27 10:23
谢谢回复,我想知道具体的话,OS会在什么时候切换这两个任务呢?每1ms切换一次吗? ...

在FreeRTOSConfig.h文件里的TICK_RATE_HZ 就是决定时隔多久, 调度器重新选择没被阻塞而最优先的任务执行。
回复 支持 反对

使用道具 举报

该用户从未签到

19

主题

182

帖子

32

蝴蝶豆

版主

最后登录
2020-2-21
发表于 2019-3-27 12:56:46 | 显示全部楼层
使用FreeRTOS的绝对延时就行了~参考我博客:http://blog.csdn.net/jiejiemcu/article/details/81515788

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

19

主题

182

帖子

32

蝴蝶豆

版主

最后登录
2020-2-21
发表于 2019-3-27 12:56:55 | 显示全部楼层
使用FreeRTOS的绝对延时就行了~参考我博客:http://blog.csdn.net/jiejiemcu/article/details/81515788
回复 支持 反对

使用道具 举报

该用户从未签到

19

主题

182

帖子

32

蝴蝶豆

版主

最后登录
2020-2-21
发表于 2019-3-27 12:57:43 | 显示全部楼层
使用FreeRTOS的绝对延时就行了~参考我博客:http://blog.csdn.net/jiejiemcu/article/details/81515788
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

7

帖子

0

蝴蝶豆

初级会员

最后登录
2019-5-17
 楼主| 发表于 2019-3-27 17:46:49 | 显示全部楼层
xiaojie0513 发表于 2019-3-27 12:57
使用FreeRTOS的绝对延时就行了~参考我博客:http://blog.csdn.net/jiejiemcu/article/details/81515788 ...

学习了,谢谢,我再查一下~
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-5-6 08:41 , Processed in 1.180852 second(s), 40 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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