今天上课时问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也会使资源占用变得更多。