stm32中rtos里默认的1ms的看法

今天上课时问rtos的1ms是什么意思

我回答是rtos运行的频率,后面想想不对

我觉得应该回答为系统的上下文切换时间比较合适。
因为当前单片机的系统时钟频率是168000000hz,就是一秒内大约可以执行168000000条汇编指令,而rtos是1ms一次上下文切换,也就是一秒1000hz的运行频率,也就是说在这期间它每个相同优先级任务所占的1ms时间片可以分配到168mhz/1khz=168k的指令,在这1ms时间里168k条指令里可以给每个任务做自己的事情,然后时间到了就把数据入栈(保存到内存里),期间也在消耗运行指令,切换另一个任务,8个相同优先级任务的话一秒可以达到每个任务运行1000/8=125次,速度飞快,像是在同时运行。

即1ms其实是单片机的上限,不是rtos的上限,只要单片机运行足够快,1us一次上下文切换都没问题。


像到处都是delay的函数,rtos可以使cpu的这段空闲时间很容易的去干别的事情。同时多任务可以很清晰注重于方案实现,不用考虑裸机不同实现之间的干扰(像裸机更多时候只能使用中断),当相对来说rtos也会使资源占用变得更多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值