STM32拥抱Azure RTOS,会放弃FreeRTOS吗?

关注+星标公众,不错过精彩内容

f63db6b43971a9e3cb01a8519fd69f6f.gif

作者 | strongerHuang

公众号 | strongerHuang

用过STM32CubeMX(或者STM32CubeIDE)开发STM32的读者应该都知道,他们支持一键生成包含FreeRTOS操作系统的代码,省去了繁杂的移植过程。

早期,由于FreeRTOS免费开源,很多嵌入式软件工程师都拥抱FreeRTOS,STM32官方也不例外,在自家的STM32CubeMX工具中集成FreeRTOS操作系统。

但是,你会发现,这两年在开始拥抱 Azure RTOS 了。。。

关于Azure RTOS

之前也好几次分享过关于Azure RTOS的内容,这里再简单描述一下 Azure RTOS。

58d9d1a5178e4e5689712c51e3eb710a.png

官方的描述:

Azure RTOS 是一个嵌入式开发套件,其中包括小型但功能强大的操作系统,可为资源受限设备提供可靠、超高速的性能。它易于使用且经过市场验证,已部署在全球超过 100 亿的设备上。Azure RTOS 支持最常用的 32 位微控制器和嵌入式开发工具,因此你可以充分利用团队现有的技能。

官方网址:

https://azure.microsoft.com/zh-cn/services/rtos

在上个月的文章《微软杀入嵌入式IDE》有描述 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操作系统。

1c163a613a8a5b6950a69e5cd4b3a225.png

STM32为啥会拥抱Azure RTOS?

为啥会拥抱Azure RTOS?

我这里简单总结了几点原因:

1.开源免费

2.组件更丰富

3.后台很强大

1.开源免费

不得不说,开源免费真香,早期FreeRTOS就是凭借开源免费获得了一大批用户。

随着,Azure RTOS开源免费,逐渐被众多嵌入式软件工程师知道并了解。因此,Azure RTOS也成了众多工程师备选的一款RTOS。

当然,这里的说明一下开源免费不等于没有任何限制,也是需要遵循有一定的开源协议,这里可以阅读我之前分享的文章:µC/OS、FreeRTOS、RT-Thread、ThreadX开源协议的具体内容

2.组件更丰富

这里是相对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

  • ······

1c212dfceb0165d36fad7c5514e9f72a.png

这里可以参看官网:

https://azure.microsoft.com/zh-cn/services/rtos

以及官网代码仓库:

https://github.com/azure-rtos

3.后台很强大

虽然FreeRTOS被亚马逊收购了,其后台也很强大,但要论软件,我觉得还是微软牛逼一点。(当然,这里可能有争论,欢迎大家讨论)

STM32会放弃FreeRTOS吗?

可能有很多工程师看到STM32这两年在拥抱Azure RTOS,就会觉得STM32会放弃FreeRTOS。

我个人认为短时间(近几年)不会放弃FreeRTOS,为啥?

1.FreeRTOS在STM32生态中很多年了,积累了很大一批用户。

2.FreeRTOS算是一款老牌RTOS,用户已经习惯了基于FreeRTOS开发应用程序。

3.基于 FreeRTOS 的解决方案更多,或者基于 FreeRTOS 常见bug解决方法更多。

好了,本文就分享到这里,以上内容,欢迎大家留言讨论。

------------ END ------------

ec609cdd3155cee2ac03d4dfde4ddebf.gif

●专栏《嵌入式工具

●专栏《嵌入式开发》

●专栏《Keil教程》

●嵌入式专栏精选教程

关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

3941bb801e8549181a73a1fb1dd2bc9c.png

e69e6a446917c0dfb81bd2b062e53694.png

点击“阅读原文”查看更多分享。

<think>嗯,用户想了解STM32常用的软件,我需要整理一下相关的开发工具和软件环境。首先,STM32STMicroelectronics的微控制器系列,软件方面应该包括开发IDE、配置工具、编程工具、中间件和第三方工具。 首先想到的是Keil MDK-ARM,这是ARM官方的IDE,支持STM32,但需要知道它是不是免费的,可能有社区版或者评估版。然后是STM32CubeIDE,这是ST自己推出的集成开发环境,基于Eclipse,可能整合了CubeMX,这个应该免费,适合初学者。 还有IAR Embedded Workbench,商业软件,功能强大,但需要许可证。Visual Studio搭配VisualGDB或者PlatformIO插件,可能更适合喜欢VS环境的开发者,特别是跨平台的PlatformIO支持STM32,这个现在挺流行的。 配置工具方面,STM32CubeMX肯定是必须的,图形化配置引脚、时钟、中间件,生成初始化代码,支持多种IDE,用户可能常用这个来快速搭建项目框架。还有STM32CubeProgrammer,用于烧录程序,支持多种接口,比如ST-LINK、USB、UART,可能还有OTA功能。 中间件和库的话,STM32Cube库包括HAL库和LL库,HAL抽象层方便移植,LL更接近寄存器,高效。还有标准外设库,虽然旧但一些老项目可能还在用。另外,FreeRTOSAzure RTOS(ThreadX)这些实时操作系统,ST的软件包里有集成,用户可能有需要。 第三方工具方面,OpenOCD开源调试工具,配合GDB,适合喜欢命令行或自定义环境的开发者。J-Link工具链如果用户有Segger的调试器,可能用这个。Wireshark用于网络协议分析,如果用到以太网或USB功能可能会需要。MATLAB/Simulink的STM32支持包,适合做模型设计开发,特别是控制系统。 调试和测试工具,ST-LINK Utility已经整合到CubeProgrammer里了,可能需要说明一下。逻辑分析仪如Saleae,或者示波器软件,用于信号分析。串口工具如Putty、Tera Term,调试信息输出常用。 其他工具比如Git用于版本控制,Doxygen生成文档,可能开发者需要这些辅助工具。 用户可能是刚开始接触STM32,或者有一定经验想了解更全面的工具链。需要分门别类,结构清晰,可能用户需要选择适合自己的工具,比如免费还是商业,图形化还是命令行。另外,需要提到各个工具的主要功能和适用场景,帮助用户理解不同工具的作用,比如CubeMX用于配置,CubeIDE作为开发环境,中间件和RTOS的作用等。 要确保每个工具的介绍简明扼要,重点突出,同时注意中文表达流畅,不使用Markdown,分段合理。可能需要检查是否有遗漏的重要工具,比如PlatformIO作为新兴工具,是否应该重点推荐?或者是否有其他常用工具比如Tracealyzer之类的调试工具? 总之,整理成开发环境与工具、配置与编程工具、中间件与库、第三方工具、调试与测试工具几个大类,每个类别下列举常用软件,并简要说明其用途和特点,这样用户能逐步了解整个STM32开发的软件生态。</think>关于STM32开发常用的软件工具,以下是分步说明和推荐列表: --- ### **一、开发环境与工具** 1. **STM32CubeIDE** - **功能**:ST官方推出的免费集成开发环境(基于Eclipse),整合代码编辑、编译、调试功能。 - **特点**:内置STM32CubeMX配置工具,支持自动生成初始化代码,适合快速开发。 2. **Keil MDK-ARM (µVision)** - **功能**:ARM官方商业IDE,支持STM32全系列芯片。 - **特点**:编译效率高,兼容CMSIS标准,需购买许可证(提供免费版本但限制代码大小)。 3. **IAR Embedded Workbench** - **功能**:商业IDE,支持STM32的C/C++开发。 - **特点**:优化性能强,调试功能丰富,适合企业级项目。 4. **Visual Studio + 插件** - **常用插件**: - **VisualGDB**:支持STM32调试与代码生成。 - **PlatformIO**:开源跨平台工具,支持STM32开发(需VS Code)。 --- ### **二、配置与编程工具** 1. **STM32CubeMX** - **功能**:图形化配置工具,用于设置引脚、时钟、外设、中间件(如FreeRTOS、USB库)。 - **输出**:生成初始化代码(支持HAL/LL库),适配多种IDE(Keil/IAR/CubeIDE)。 2. **STM32CubeProgrammer** - **功能**:烧录工具,支持通过ST-LINK、UART、USB等方式下载程序到芯片。 - **扩展**:支持固件升级、OTP区域编程。 --- ### **三、中间件与库** 1. **STM32Cube软件包** - **HAL库 (Hardware Abstraction Layer)** 提供硬件抽象层,简化外设操作(如GPIO、UART、SPI),但效率略低。 - **LL库 (Low-Layer)** 更接近寄存器级的操作,适合对性能要求高的场景。 2. **标准外设库 (Standard Peripheral Library)** - **说明**:旧版库(已停止更新),适用于早期STM32F1/F2系列项目。 3. **实时操作系统 (RTOS)** - **FreeRTOS**:开源RTOSSTM32CubeMX可直接集成。 - **Azure RTOS (ThreadX)**:微软提供的商业RTOS,高可靠性。 --- ### **四、调试与测试工具** 1. **ST-LINK Utility** - **功能**:调试与烧录工具(已整合到STM32CubeProgrammer中)。 2. **OpenOCD + GDB** - **功能**:开源调试工具链,支持命令行调试,适配ST-LINK/J-LINK。 3. **逻辑分析仪软件** - **Saleae Logic**:捕获和分析GPIO、SPI、I2C等信号。 4. **串口调试工具** - **Putty/Tera Term**:查看UART输出日志。 - **STM32CubeMonitor**:ST官方监控工具,支持实时变量可视化。 --- ### **五、第三方工具** 1. **PlatformIO** - **功能**:跨平台开发框架(支持VS Code),集成STM32编译、烧录、调试功能。 2. **MATLAB/Simulink** - **功能**:通过STM32硬件支持包生成代码,适合算法验证与模型驱动开发。 3. **Wireshark** - **用途**:网络协议分析(适用于STM32以太网或USB通信项目)。 --- ### **六、辅助工具** - **Git**:代码版本管理。 - **Doxygen**:自动生成代码文档。 - **J-Link工具链**:Segger调试器的配套软件(支持RTT日志等高级功能)。 --- ### **选择建议** - **初学者**:推荐STM32CubeIDE + STM32CubeMX,免费且集成度高。 - **企业开发**:Keil/IAR + STM32CubeMX,确保编译效率和商业支持。 - **跨平台/开源**:PlatformIO + OpenOCD,灵活适配不同环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

strongerHuang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值