
前言2 q" `/ l* |# `/ ?9 k! d STMCubeTM 计划源自意法半导体,旨在通过减少开发的工作量、时间与成本,使开发者受益。 STM32Cube 涵盖 STM32 产品系列。 STM32Cube 1.x 版包括: •图形软件配置工具 STM32CubeMX,可通过图形化的生成初始化 C 代码。. Q$ ^: A) H& K* @7 k •针对每个系列提供综合的嵌入式软件平台 (即 STM32CubeF4 用于 STM32F4 系列) – STM32 抽象层嵌入式软件 STM32Cube HAL,确保在 STM32 各个产品之间实现最大限度的可移植性5 x$ ~8 N) d! }3 R4 ~ –一套一致的中间件,比如 RTOS、 USB、 TCP/IP、图形 –所有嵌入式软件实用工具均配备一套完整的示例。 实时操作系统是为在嵌入式 / 实时应用中使用而优化的操作系统。它们的主要目标是确保及时、确定性地响应事件。使用实时操作系统,应用可写为一组独立的线程,线程间使用消息队列和信号量通信。3 c m) g; e/ B) s) A3 Y1 Y 本用户手册的目标读者为在 STM32 微控制器上使用 STM32Cube 固件的开发者。它完整描述了如何使用具有实时操作系统 (RTOS)的 STM32Cube 固件组件;本用户手册还提供了一组示例说明,它们基于 FreeRTOS,使用 CMSIS-OS 封装层提供的通用 API。 在 STM32Cube 固件中,通过 ARM 提供的通用 CMSIS-OS 封装层,将 FreeRTOS 用作实时操作系统。使用 FreeRTOS 的样例和应用可直接移植到其它任何 RTOS 而不需要修改高层API,在此情况下仅需更改 CMSIS-OS 封装。8 `8 K& ?- c) P6 j, P- N4 ~ 请参考软件包的发布说明,以了解与 STM32CubeTM 共同使用的 FreeRTOS 和 CMSIS-RTOS固件组件版本。' M# C* b+ z% t) `) U. G8 e- Q 本文档适用于所有 STM32 器件;然而为了简洁起见,以 STM32F4xx 器件和 STM32CubeF4作为参考平台。若需了解更多在 STM32 设备上样例实现的信息,请参考相关 STM32Cube 固件包中提供的自述文件。 * G4 O: q& v& i, h9 x8 K 1 Free RTOS 1.1概述 FreeRTOS 是 RTOS 的一种,尺寸非常小,可运行于微控制器上,但其使用并不限于微控制器应用。 微控制器是尺寸小、资源受限的处理器,它在单个芯片上包含了处理器本身、用于保存要执行的程序的只读存储器 (ROM 或 Flash)、所执行程序需要的随机存取存储器 (RAM)。一般情况下,程序直接从只读存储器执行。 微控制器用于深度嵌入式应用(对于那些应用,您永远不会看到处理器本身或运行的软件),它们一般有非常明确、专门的工作。尺寸的限制以及专用的终端应用等性质,令其很少能使用完整的 RTOS 实现 - 或者说不可能使用完整的 RTOS 实现。因此,FreeRTOS 仅为内核提供了实时调度功能、任务间通信、时序和同步原语。这意味着更准确地说,它是一个实时内核,或实时执行器。命令控制台界面、网络栈等额外的功能可作为附加组件。 FreeRTOS 为可调整的实时示例生成器内核,专为小型嵌入式系统设计。其特点包括 •Free RTOS 示例生成器内核 —— 优先式、合作式及混合式配置选项。 •官方支持 27 种架构 (ARM7 和 ARM Cortex M3 每个算一种架构)。 •FreeRTOS-MPU 支持 Cortex M3 存储器保护单元 (MPU)。 •设计目标为小尺寸、简单和易用。一般来说,示例生成器内核二进制映像大约为 4K 到9K 字节。2 w! _' y8 ^; |# c •代码结构极易移植,主要用 C 编写。 •支持任务和协同例程。 •可通过队列、二进制信号量、计数信号量、递归信号量、互斥量在任务间、任务与中断间通信和同步。" @* G; z. n. i •互斥量有优先级继承。: w0 f# r9 y, C: C •支持高效的软件定时器。. {/ \! S2 L' e7 @: L7 c •强大的执行跟踪功能。 •栈溢出检测选项。' c: P# c* M7 ?5 M- q •预配置的示例应用,用于选定的单板电脑,可直接使用,加快学习曲线。0 c. K4 N8 ^* J •免费论坛支持,或可选择商业支持和授权。- ]- u, f# T7 R7 u% C •可创建的任务数无软件限制。 •可使用的优先级数无软件限制。& a$ @8 Q) C9 a# n •优先级指定无限制 - 可为多个任务指定同一优先级。 •免费的开发工具可用于很多支持的架构。+ {, Y, j# a7 t4 q •免费的嵌入式软件源代码。 •免版税。" J+ p: l8 d1 o- K" f/ K* q •可从标准的 Windows 主机交叉开发。 FreeRTOS 的 heap2 方案用于内存分配管理,此方案使用最佳适用算法释放之前分配的块。 然而,它不会将相邻的自由块合并为一个大块。可用的 RAM 总量通过定义configTOTAL_HEAP_SIZE 设置 - 定义于 FreeRTOSConfig.h 中。 1.2授权, w$ `& E! P/ P FreeRTOS 源代码使用修正的 GNU 通用公开许可来授权。该修正使用了除外形式。 GNU 通用公开许可全文如下: : R5 q# a" {4 ^ m 2 m6 W2 @. V% [. Y ![]() 完整版请查看:附件! s, n' G" U0 u& V/ w5 [ / J0 y( a$ P4 d7 S |
DM00105262_ZHV2.pdf
下载698.51 KB, 下载次数: 0
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南
ST 微控制器电磁兼容性 (EMC) 设计指南