首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

embOS推出一个RTOS的革命性功能,支持微秒和CPU时钟周期级分辨率的任务调度和API延迟参数设置

embOS-Ultra — The next generation RTOS (segger.com) 当前的RTOS功能同质化越来越严重的今天,这个功能还是非常有意义的,这个是就是大家一直想要,但各种主流RTOS却一直没有提供的功能。 一、特点: 1、使用硬件定时器替代传统的系统滴答定时器。 2、行仅在需要执行的时候执行系统中断/任务调度,其实就是类似tickless模式。 3、所有API的延迟参数除了支持传统的ms级时间基准(一般我们都是设置为1ms),开始支持us级甚至ns级。更重要的是,用户甚至可以将其时间单位设置到和CPU主频一个级别。 我们调用各种RTOS的通信组件和延迟函数,都有一个延迟参数可以设置,这个参数我们就可以使用更高分辨率参数,而不受之前传统滴答时间基准的限制。 二、实际意义: 这个就非常有意义了,通过更高的精度和时间分辨率,大大拓展了RTOS潜在应用范畴。比如很多外设驱动,我们都需要us延迟支持,现在解决办法各种各样,我们现在一直用的是DWT时钟周期计数器做个us延迟。 有了RTOS的支持,是不是大大方便了我们调用。

03

内核低分辨率定时器实现

低分辨率定时器可以分为周期性和动态性,这里只讨论周期性。在jiffies小节中知道,linux系统会在每个时钟中断会增加jiffies的值,同时还会去处理到期的定时器。而系统时钟中断的速度取决于HZ的值,如果HZ配置为1000,则每秒会产生1000次时钟中断。如果按照样的话,是不是HZ的值越大越好,其实不然。如果HZ的值越大,则会造成系统的负载也会越大。所以HZ的值一般在每个平台是不一样的。假设HZ=250,那么系统会在每4ms会产生一个时钟中断,然后会去处理超时的定时器。但是4ms对有些设备是可以满足的,对一些要求延迟到us的设备是不满足的,所以linux设计者就推出了高精度定时器Hrtimer,所以把之前依赖HZ的值的定时器称为低分辨率定时器。

02
领券