Project Icon

STM32FreeRTOS

STM32微控制器的FreeRTOS移植库,支持多版本和灵活配置

STM32FreeRTOS是一个为STM32微控制器移植的FreeRTOS库,提供9.x和10.x系列版本。该库支持灵活配置,包括用户自定义设置、默认配置文件和额外配置选项。它集成了基于Newlib的线程安全堆分配实现,并在多种STM32开发板上进行了广泛测试。STM32FreeRTOS为嵌入式开发提供实时操作系统支持,可与Arduino环境兼容。

Arduino用STM32 FreeRTOS库

这是将FreeRTOS移植到STM32作为Arduino库。

有关FreeRTOS的更多信息,请访问FreeRTOS网站。 另外,请参阅非常有用的入门指南页面。

该库提供了2个FreeRTOS版本:

每个版本都经过ST修改(参见FreeRTOS源码中的st_readme.txt)。

这些与STM32Cube MCU包提供的相同。 或者通过STMicroelectronics GitHub组织: stm32_mw_freertos

配置

FreeRTOS有几个配置选项,可以在FreeRTOSConfig.h文件中指定。

该库提供了一个名为FreeRTOSConfig_Default.h的默认FreeRTOS配置文件。

用户可以通过在名为STM32FreeRTOSConfig.h的文件中添加自己的配置,在草图级别提供自己的FreeRTOS配置文件。

或者通过在名为STM32FreeRTOSConfig_extra.h的文件中添加额外配置,在草图级别添加默认配置之外的额外FreeRTOS配置。

FreeRTOS提供了堆分配方案,请参见RTOS源代码中包含的内存分配实现。 为了扩展这些方案,基于Dave Nadler的工作添加了使用C运行时(Newlib)的线程安全堆分配:

http://www.nadler.com/embedded/newlibAndFreeRTOS.html

默认情况下,使用heap_useNewlib.c。可以通过配置文件中的定义进行更改:

/* 定义要使用的内存分配实现:
 * 1到5对应heap_[1-5].c
 * -1对应heap_useNewlib_ST.c
 * 默认为-1,参见heap.c
 */

从v10.0.1开始,可以使用CMSIS-RTOSv2替代默认的CMSIS-RTOS。

要使用CMSIS-RTOSv2,必须定义configUSE_CMSIS_RTOS_V2并将其设置为1

限制

  • MPU: 不支持。
  • 未提供CMSIS-RTOSv2支持。它作为示例提供。
  • 在Cortex-M0和Cortex-M0+上,xTaskCreate()和vTaskStartScheduler()之间禁用所有IT。 因此,无法在中间使用IT,如Serial.print()... 这就是为什么在"frLiyLayland"示例中,在xTaskCreate()和vTaskStartScheduler()之间, 我们使用直接printf(),它将直接访问USART而不使用中断

文件和配置

  • STM32FreeRTOS.h : 必须始终首先#include。它引用所需的包含文件。
  • STM32FreeRTOSConfig.h : 如果在草图级别存在,它包含FreeRTOS配置。
  • STM32FreeRTOSConfig_extra.h : 如果在草图级别存在,它包含额外的FreeRTOS配置。
  • FreeRTOSConfig_Default.h : 如果STM32FreeRTOSConfig.h不存在,它包含此STM32移植版的默认FreeRTOS配置。

测试结果(使用Arduino_Core_STM32)

STM32FreeRTOS v9.0.x

开发板AnalogRead_DigitalReadBlink_AnalogReadfrBlinkfrBlinkPrintfrJitterfrLiuLayland
Nucleo F091RC通过通过通过通过通过失败
Nucleo F103RB通过通过通过通过通过通过
Nucleo F303RE通过通过通过通过通过通过
Nucleo F429ZI通过通过通过通过通过通过
STM32F746G-DISCOVERY通过通过通过通过通过通过
Nucleo L053R8通过*通过*通过*通过*通过*失败
Nucleo L152RE通过通过通过通过通过通过
B-L475E-IOT01A通过通过通过通过通过通过

STM32FreeRTOS v10.0.x

开发板AnalogRead_DigitalReadfrBlinkPrintfrLiuLaylandfrBlink (CMSIS-RTOSv2)Blinky (CMSIS-RTOSv2)
Nucleo F091RC通过通过失败通过通过
Nucleo F103RB通过通过通过通过通过
Nucleo F303RE通过通过通过通过通过
Nucleo F429ZI通过通过通过通过通过
STM32F746G-DISCOVERY通过通过通过通过通过
Nucleo-G071RB通过通过失败通过通过
Nucleo H743ZI通过通过通过通过通过
Nucleo L053R8通过*通过*失败通过通过
Nucleo L152RE通过通过通过通过通过
B-L475E-IOT01A通过通过通过通过通过
P-Nucleo-WB55RG通过通过失败通过通过

* 由于RAM较小,将configUSE_NEWLIB_REENTRANT设置为0时通过。

STM32FreeRTOS v10.2.x

开发板AnalogRead_DigitalReadfrBlinkPrintfrLiuLaylandfrBlink (CMSIS-RTOSv2)Blinky (CMSIS-RTOSv2)
Nucleo F091RC通过通过失败通过通过
Nucleo F103RB通过通过通过通过通过
Nucleo F303RE通过通过通过通过通过
Nucleo F411RE通过通过通过通过通过
STM32F746G-DISCOVERY通过通过通过通过通过
Nucleo-G071RB通过通过失败通过通过
Nucleo-G474RE通过通过失败通过通过
Nucleo H743ZI通过通过通过通过通过
Nucleo L053R8通过*通过*失败通过通过
Nucleo L152RE通过通过通过通过通过
B-L475E-IOT01A通过通过通过通过通过
P-Nucleo-WB55RG通过通过失败通过通过

* 由于RAM较小,将configUSE_NEWLIB_REENTRANT设置为0时通过。

STM32FreeRTOS v10.3.1

开发板AnalogRead_DigitalReadfrBlinkPrintfrLiuLaylandfrBlink (CMSIS-RTOSv2)Blinky (CMSIS-RTOSv2)
Nucleo F091RC (Cortex-M0)通过通过通过通过通过
Nucleo G071RB (Cortex-M0+)通过通过通过通过通过
Nucleo F103RB (Cortex-M3)通过通过通过通过通过
Nucleo L476RG (Cortex-M4)通过通过通过通过通过
Nucleo H743ZI (Cortex-M7)通过通过通过通过通过
Nucleo L552ZE-Q (Cortex-M33)通过通过通过通过通过
Nucleo U575ZI-Q (Cortex-M33)通过通过通过通过通过
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号