你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

在具有 RTOS 的 STM32Cube 上开发应用

[复制链接]
STMCU小助手 发布时间:2022-7-23 22:44
前言2 q" `/ l* |# `/ ?9 k! d
STMCubeTM 计划源自意法半导体,旨在通过减少开发的工作量、时间与成本,使开发者受益。 STM32Cube 涵盖 STM32 产品系列。
7 @* h/ y$ t, cSTM32Cube 1.x 版包括:
7 D  C, ~5 R! r7 C8 k图形软件配置工具 STM32CubeMX,可通过图形化的生成初始化 C 代码。. Q$ ^: A) H& K* @7 k
针对每个系列提供综合的嵌入式软件平台 (即 STM32CubeF4 用于 STM32F4 系列)
8 f  ~2 w) [* p4 S" Q" a$ i: K8 z– STM32 抽象层嵌入式软件 STM32Cube HAL,确保在 STM32 各个产品之间实现最大限度的可移植性5 x$ ~8 N) d! }3 R4 ~
一套一致的中间件,比如 RTOSUSBTCP/IP、图形
" n) |! }9 w* M0 ^1 ^: s所有嵌入式软件实用工具均配备一套完整的示例。
" s( ]' s5 f+ v, D, Q实时操作系统是为在嵌入式 / 实时应用中使用而优化的操作系统。它们的主要目标是确保及时、确定性地响应事件。使用实时操作系统,应用可写为一组独立的线程,线程间使用消息队列和信号量通信。3 c  m) g; e/ B) s) A3 Y1 Y
本用户手册的目标读者为在 STM32 微控制器上使用 STM32Cube 固件的开发者。它完整描述了如何使用具有实时操作系统 (RTOS)的 STM32Cube 固件组件;本用户手册还提供了一组示例说明,它们基于 FreeRTOS,使用 CMSIS-OS 封装层提供的通用 API
& f1 l1 @+ E$ a! {, i在 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 件包中提供的自述文件。
9 Y( r& q8 J) M1 p7 t0 ]: Y* W
8 I7 H" q! X/ m3 [" s: B
* G4 O: q& v& i, h9 x8 K
1 Free RTOS
$ E% Z9 P# C( m4 \/ q1.1概述
9 b- c2 w3 H: e: s. s6 VFreeRTOS 是 RTOS 的一种,尺寸非常小,可运行于微控制器上,但其使用并不限于微控制器应用。
; x, ], _1 S3 U9 e) j$ }1 j& ^' H微控制器是尺寸小、资源受限的处理器,它在单个芯片上包含了处理器本身、用于保存要执行的程序的只读存储器 (ROM Flash)、所执行程序需要的随机存取存储器 (RAM)。一般情况下,程序直接从只读存储器执行。
+ S! [9 r6 p8 ?: O, K微控制器用于深度嵌入式应用(对于那些应用,您永远不会看到处理器本身或运行的软件),它们一般有非常明确、专门的工作。尺寸的限制以及专用的终端应用等性质,令其很少能使用完整的 RTOS 实现 - 或者说不可能使用完整的 RTOS 实现。因此,FreeRTOS 仅为内核提供了实时调度功能、任务间通信、时序和同步原语。这意味着更准确地说,它是一个实时内核,或实时执行器。命令控制台界面、网络栈等额外的功能可作为附加组件。
  \/ L; E: n9 V: ]FreeRTOS 为可调整的实时示例生成器内核,专为小型嵌入式系统设计。其特点包括
" @2 T# f* Z" x  O5 g# n3 m, tFree RTOS 示例生成器内核 —— 优先式、合作式及混合式配置选项。
7 M6 h8 j2 C3 T$ P官方支持 27 种架构 (ARM7 ARM Cortex M3 每个算一种架构)。
! m  j* `" q0 a( a4 H- s2 X" \* rFreeRTOS-MPU 支持 Cortex M3 存储器保护单元 (MPU)。
6 o7 E& `. F7 v9 k6 [2 l7 V设计目标为小尺寸、简单和易用。一般来说,示例生成器内核二进制映像大约为 4K 9K 字节。2 w! _' y8 ^; |# c
代码结构极易移植,主要用 C 编写。
5 n7 F; K! r" i1 D支持任务和协同例程。
; b. j. C8 `$ e7 _可通过队列、二进制信号量、计数信号量、递归信号量、互斥量在任务间、任务与中断间通信和同步。" @* G; z. n. i
互斥量有优先级继承。: w0 f# r9 y, C: C
支持高效的软件定时器。. {/ \! S2 L' e7 @: L7 c
强大的执行跟踪功能。
& {3 V- s' |- G( W% R& P9 o7 h栈溢出检测选项。' c: P# c* M7 ?5 M- q
预配置的示例应用,用于选定的单板电脑,可直接使用,加快学习曲线。0 c. K4 N8 ^* J
免费论坛支持,或可选择商业支持和授权。- ]- u, f# T7 R7 u% C
可创建的任务数无软件限制。
% f8 }3 G4 J, S可使用的优先级数无软件限制。& a$ @8 Q) C9 a# n
优先级指定无限制 - 可为多个任务指定同一优先级。
4 c  ~. _$ `7 V7 F免费的开发工具可用于很多支持的架构。+ {, Y, j# a7 t4 q
免费的嵌入式软件源代码。
2 p3 p$ Y  p5 _2 s/ y4 v; H% f免版税。" J+ p: l8 d1 o- K" f/ K* q
可从标准的 Windows 主机交叉开发。
' j2 B' ~" e% n; s5 P" eFreeRTOS 的 heap2 方案用于内存分配管理,此方案使用最佳适用算法释放之前分配的块。
6 i) n( w& _1 o4 f$ S) A然而,它不会将相邻的自由块合并为一个大块。可用的 RAM 总量通过定义configTOTAL_HEAP_SIZE 设置 - 定义于 FreeRTOSConfig.h 中。
0 j$ b5 P2 T+ s' x: {6 p& C
( @5 N6 M  l4 c3 T7 E

' ?( t. ]* D" ?" l$ x2 `. b1.2授权, w$ `& E! P/ P
FreeRTOS 源代码使用修正的 GNU 通用公开许可来授权。该修正使用了除外形式。 GNU 通用公开许可全文如下:
2 b+ r' o  g1 Y; r: R5 q# a" {4 ^  m
2 m6 W2 @. V% [. Y

3 `! {0 C* R2 u3 ]1 a# Z G%]W~WMC]YMY9F5Y(ZP2J64.png $ F# t+ _; l( R' Y" b" T

1 r$ n+ M1 R) Y- Q5 l1 A4 ~1 h
7 B; w( N  h' X/ q完整版请查看:附件! s, n' G" U0 u& V/ w5 [

  s/ X2 I2 {1 y, |* y/ M2 o/ J0 y( a$ P4 d7 S

DM00105262_ZHV2.pdf

下载

698.51 KB, 下载次数: 0

收藏 评论0 发布时间:2022-7-23 22:44

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版