硬汉嵌入式论坛

 找回密码
 立即注册
查看: 978|回复: 8
收起左侧

[FreeRTOS] FreeRTOS时间片大小

[复制链接]

3

主题

7

回帖

16

积分

新手上路

积分
16
发表于 2024-1-3 11:15:28 | 显示全部楼层 |阅读模式
现在项目使用的是STM32H743芯片,有一个任务需要100us执行一次,想请问硬汉哥FreeRTOS的时间片大小能不能设置成100us?会不会对单片机的性能产生影响?要是不能设置成100us的话,有没有其它可以实现的方法?定时器中断100us可行吗?

我在STM32CubeMX已经尝试设置100us,但是不行,时间片不能设置成比1ms小。是有什么限制吗?
回复

使用道具 举报

22

主题

67

回帖

133

积分

初级会员

积分
133
发表于 2024-1-3 18:32:20 | 显示全部楼层
当你时间片达到us级别的时候 任务切换已经是很耗时的了 会导致任务切换卡顿 切换一次也是几us的时间
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
发表于 2024-1-4 09:09:29 | 显示全部楼层
没问题的,H7系列有500MHz主频,100us是无压力的。你仅创建一个任务测试下。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-1-4 21:43:14 | 显示全部楼层
eric2013 发表于 2024-1-4 09:09
没问题的,H7系列有500MHz主频,100us是无压力的。你仅创建一个任务测试下。

硬汉老师,请问下一般来说,主频与时间片的对应关系是多少呢,我问过一个同事,说是差不多1000倍的关系
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2024-2-20 11:45:02 | 显示全部楼层
可以用定时器中断,1ms是默认的时间片,如果想有更小的时间做其他事情的话,就用定时器中断。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
发表于 2024-2-20 11:53:09 | 显示全部楼层
Lanyu199920922 发表于 2024-1-4 21:43
硬汉老师,请问下一般来说,主频与时间片的对应关系是多少呢,我问过一个同事,说是差不多1000倍的关系

一般情况下,都是设置系统时钟节拍为1KHz。
回复

使用道具 举报

7

主题

36

回帖

57

积分

初级会员

积分
57
发表于 2024-3-4 15:28:26 | 显示全部楼层
可以用一个定义器定时100us触发信号量,然后任务阻塞该信号量,这个任务优先级调高,是不是就成100us了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106721
QQ
发表于 2024-3-4 16:02:10 | 显示全部楼层
zbq 发表于 2024-3-4 15:28
可以用一个定义器定时100us触发信号量,然后任务阻塞该信号量,这个任务优先级调高,是不是就成100us了

可以,就是要额外占用系统资源和性能。
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2024-3-7 13:45:29 | 显示全部楼层
个人认为tick设得太小会降低系统效率,如果你设置100us,任务又比较多的话,光切换任务的时间花消就占了很大部分,留给你任务处理的时间就很短,CPU资源被浪费在无效的任务切换之中,就像楼上的兄弟说的系统会非常卡顿。100us用定时器中断没问题的。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-1 08:08 , Processed in 0.236100 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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