rtos的系统节拍
传统的rtos都是利用一个硬件定时器产生周期性的节拍中断,作为系统的时基。在多数的应用中,系统节拍的周期都是毫秒级的,rtos的超时、延迟、定时的分辨率都是以节拍为单位。即使一个任务在几个连续的节拍内执行,系统节拍中断还是会周期性的发生,浪费了cpu的执行时间。下图是一个示例,虽然某段时间内只有idle任务在执行,系统节拍中断还是会如期发生。
此外,任务延迟或超时等时间相关的功能都基于系统滴答中断计时,计时时间到后,通过系统节拍周期中断触发调度器。因此,如果任务的延迟时间小于一个系统节拍周期,则只能主动等待,直到所需的时间结束。
周期级分辨率的rtos
segger之前推出的embos ultra,改变了过去rtos采用周期节拍中断作为系统时基的工作方式,采用硬件定时器加计数器的方式,只在必要时产生中断。这就消除了传统的周期性节拍中断,减少了不必要的cpu活动,同时能降低系统的功耗。embos ultra基于时间事件的调度都能以微秒指定。
体验embos ultra微秒级调度
目前embos ultra支持cortexm/r/a,以及risc-v架构的处理器。从官网可以下载到基于segger embedded studio的示例demo,用于测试,内核以二进制库提供。embos ultra的api完全兼容embos,只是多了几个任务管理的api,任务可以按照ms或us延迟。
先将demo例程的任务做了修改,hptask分别以1000us、2000us不等延迟,lptask以80ms延迟。
static void hptask(void) { while (1) { bsp_setled(0); os_task_delay_us(1000); bsp_clrled(0); os_task_delay_us(2000); bsp_setled(0); os_task_delay_us(3000); bsp_clrled(0); os_task_delay_us(4000); }}static void lptask(void) { while (1) { bsp_toggleled(1); os_task_delay_ms(80u); }} 下载代码至目标板上运行,通过systemview来观测系统的执行:
从os事件视图可以看到,系统不存在周期性的节拍中断,只是在需要进行任务调度时触发一次中断。从下面的timeline视图可以更直观的看出,红色涂抹的位置是系统中断。
注意上图中的时间(996.8us、1.9ms,2.9ms……)并不是任务的间隔时间,而是调度器执行的间隔时间。
再将任务代码改成:
static void hptask(void) { while (1) { bsp_setled(0); os_task_delay_us(50); bsp_clrled(0); os_task_delay_us(100); }}static void lptask(void) { while (1) { bsp_toggleled(1); os_task_delay_us(200u); }} hptask任务分别延迟50us和100us,lptask延迟200us,运行后观测timeline:
hptask首次执行延迟了50us之后,系统定时器中断触发,调度器开始执行,从idel任务切换到hptask任务。同时可以发现,从中断触发到hptask任务体开始执行实际上已经过去了10us,这是因为中断处理和任务调度的执行需要消耗一定cpu时间,这个与处理器架构和cpu运行频率有关,在cortex-m上大概在10us左右。也就是说在当前的处理器上,延迟时间小于10us是没有意义的,但是在主频很高的mpu(应用处理器)上这个时间可能要短很多。
总之,现在很多的mcu的性能都已经很高了。同时,一些应用要求处理器有比较高的计算能力,还要求系统能有很好的实时性,甚至在mpu上使用rtos。此种应用场景下,如果rtos支持cpu周期级别的分辨率,这实际上可以进一步提升系统的实时性。而且,在针对一些外设的处理上,使用微秒级的延迟,还能提高cpu的使用效率,扩展了rtos的潜在应用范围。
蓝牙传输的原理_蓝牙耳机怎么连接手机
原汁机外观设计需要防水之外,电机内部如何防水
15.6英寸主流游戏本 神舟Z7M搭载十系显卡
FIOT-LAB:磁通门电流传感器取得突破,激光雷达实现智慧储粮
如何选择过程控制阀 过程控制阀的效率提升技巧
RTOS的系统节拍
ATA-2161高压放大器在压电薄膜传感器心脏监测研究中的应用
“2020年红外测温产品宣讲会暨全国经销商交流会”圆满落幕!
AI心灵之窗开启,科技再掀革命
空调技术:如何处理内机“嗡嗡”噪音
德州仪器推出低频率下最低杂讯LDO线性电压稳压器
3分钟轻松实现网口连接罗克韦尔AB CompactLogix系列PLC
高压压力传感器在汽车行业的温度补偿和校准
星纵物联入选【2023年先进制造业倍增计划企业名单】!
Microchip推出新型加密单片机CEC1712 可躲开反恶意程序软件
马斯克表示星链太空卫星互联网延迟约为20毫秒 观看高清视频和玩在线游戏不卡顿
嵌入式技术在生活中是如何应用的
国家新一代人工智能的重要发展方向是决策智能
基于serialX串口驱动移植libmodbus的步骤
AMD RX Vega怒怼GTX 1080 Ti!发布三款全曝光:水冷375W