嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读 > 嵌入式实时操作系统,Azure RTOS (ThreadX)

嵌入式实时操作系统,Azure RTOS (ThreadX)

开门见山:

Azure RTOS(ThreadX) 是专门为嵌入式应用程序设计的高性能实时操作系统 (RTOS)。

那么,何为实时操作系统:实时操作系统是指面向实时运行对象,并为其服务的操作系统,英文名称为real-time operating system,简写为RTOS。面向MCU或微控制器的RTOS一般也称为嵌入式实时操作系统(embedded real-time operating system)。RTOS是一种系统软件,可以为应用程序提供服务并管理微控制器硬件资源,这些硬件资源包括内存、外设和中断等。实时操作系统的主要目的是给需要执行的各种任务分配处理时间。

实时操作系统很多,再进一步细分,还可以分为面向MPU(或者和x86统称为称为CPU)的RTOS,面向MCU的RTOS。

前者MPU(micro processing unit) 一般指功能强大的微处理器,常见于高性能的控制器,平板,手机,路由器等。后者MCU(micro control unit)目前常见的微控制器一般为32位MCU,主频在几十到几百MHz。耳熟能详的MCU芯片厂商包括ST (STM32系列), NXP等。国内的兆易创新异军突起。  根据处理性能的不同,运行的操作系统也有所不同。
  • MPU实时操作系统常见有:VxWorks, QNX, 嵌入式Linux 等

  • MCU实时操作系统常见有:FreeRTOS,ThreadX, RT-Thread, MbedOS,Huawei Lite OS, Zephyr等

随着MCU产品性价比不断提升,MCU与CPU产品不再是泾渭分明,异构集成将是一个新的产品发展特点。

铺垫这么多,Threadx在RTOS中处于什么位置?是不是C位?


先看一张“引用”来的图,(图片不是很清楚)。该图列出了2019年,各主流RTOS的市场份额。图中可以看到,在MCU RTOS中FreeRTOS份额最大,Threadx只占到3%,该报告是2019年的,因此图片中仍然写的是ExpressLogic(Threadx)。

我们看一下Azure RTOS 近几年的发展:

  • 2019年,微软重金收购 ThreadX 嵌入式实时操作系统,然后,紧接着在 2020 年,开源了Azure RTOS ThreadX。

  • 2021年12月,微软发布了基于 VS 2022 的支持嵌入式RTOS、MCU软件开发的IDE。

  • 2022年3月,微软发布了基于 VS Code(去年是VS 2022)的插件Embedded Tools嵌入式开发工具,支持Azure RTOS、FreeRTOS操作系统。


Azure RTOS VS FreeRTOS

  • FreeRTOS免费开源,早期很多嵌入式软件工程师都拥抱FreeRTOS, 凭借着开源免费FreeRTOS获得了一大批用户。AzureRTOS虽然开源了,但并没有完全免费,见下面其“Liccense"申明中的一段描述,基于给出的"hardware"列表中MCU是可以免费商用开发的。不过这个"hardware"列表已经包括了一些主流的MCU。

DISTRIBUTION AND PRODUCTION USE. If you have obtained and/or are developing onmicroprocessor(s) and/or microcontroller(s) (“hardware”) listed in the filenamed “LICENSED-HARDWARE.txt” included in the repository and/or distributed withthe software you have the following rights in and to the software solely whenused in combination with the hardware. In the event hardware is not listed inthe LICENSED-HARDWARE.txt file, you do not have the rights in this Section 2.
STMicroelectronics: STM32 MCUs STM32 MPUs
MediaTek: MT3620 MCU (Azure Sphere)
Microchip: PIC 32-bit MCUs SAM 32-bit MCUs SAM 32-bit MPUs
NXP: i.MX RT10xx and RT116x/7x series crossover MCUs    LPC5500 series
Renesas: Synergy Platform RX Family of MCUs RA Family of MCUs RZ Family of MPUs
  • 相对FreeRTOS而言,Azure RTOS组件更丰富,号称全家桶。虽然FreeRTOS被亚马逊收购之后,丰富了其中的组件,但和Azure RTOS相比,还是缺少很多组件。Azure RTOS的组件几乎涵盖了嵌入式RTOS常规的组件:

  * Azure RTOS ThreadX  * Azure RTOS NetX  * Azure RTOS NetX Duo  * Azure RTOS FileX  * Azure RTOS GUIX  * Azure RTOS GUIX Studio  * Azure RTOS USBX  * Azure RTOS TraceX  * ······

ThreadX 技术亮点

下面是 ThreadX 高级技术的亮点。
  • 简单的 picokernel 体系结构

  • 自动扩展(占用空间少)

  • 确定性处理

  • 快速实时性能

  • 抢先式和协作式计划

  • 灵活的线程优先级支持

  • 动态系统对象创建

  • 无限量的系统对象

  • 经过优化的中断处理

  • 抢占阈值 (Preemption-threshold™)

  • 优先级继承

  • 事件链接 (Event-chaining™)

  • 快速软件计时器

  • 运行时内存管理

  • 运行时性能监视

  • 运行时堆栈分析

  • 内置系统跟踪

  • 广泛的处理器支持

  • 广泛的开发工具支持

  • 字节顺序完全中性

你要说亮点,看看其他主流RTOS的手册,除了全家桶这个特点,其实以上列举的那些亮点基本也是“平平无奇”。除了……

ThreadX Modules

ThreadX 模块组件为应用程序提供了一种基础结构,用于动态地加载独立于应用程序常驻部分构建的模块。在应用程序代码大小超过可用内存的情况下,此功能尤其有用。当部署核心映像后需要添加新功能时,它也可以提供帮助。此外,在需要部分固件更新时,可以使用动态加载模块。


下一篇,学习ThreadX的动态加载库是如何实现的。

https://learn.microsoft.com/zh-cn/azure/rtos/threadx-modules/chapter1https://learn.microsoft.com/zh-cn/azure/rtos/threadx/overview-threadx