在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例嵌入式开发 → STM32F4 FreeRTOS开发手册_V1.1_已解锁.pdf

STM32F4 FreeRTOS开发手册_V1.1_已解锁.pdf

嵌入式开发

下载此实例
  • 开发语言:C/C++
  • 实例大小:11.67M
  • 下载次数:22
  • 浏览次数:346
  • 发布时间:2022-02-11
  • 实例类别:嵌入式开发
  • 发 布 人:mklili
  • 文件格式:.pdf
  • 所需积分:2
 相关标签: FreeRTOS STM32F4 STM32 stm RTOS

实例介绍

【实例简介】STM32F4 FreeRTOS开发手册_V1.1_已解锁.pdf

【实例截图】

【核心代码】

目录
S STM32F407 FreeRTOS 开发手册 V1.1 ............................................................................................ 1
第一章 ..................................................................................................................... FreeRTOS 简介 . 15
1.1 初识 FreeRTOS .................................................................................................. 16
1.1.1 什么是 FreeRTOS? ................................................................................... 16
1.1.2 为什么选择 FreeRTOS? ........................................................................ 16
1.1.3 FreeRTOS 特点 ......................................................................................... 17
1.1.4 商业许可 .................................................................................................. 17
1.2 磨刀不误砍柴工 ................................................................................................ 18
1.2.1 资料查找 .................................................................................................. 18
1.2.2 FreeRTOS 官方文档 ................................................................................. 20
1.2.3 Cortex-M 架构资料 ................................................................................... 22
1.3 FreeRTOS 源码初探 ........................................................................................... 22
1.3.1 FreeRTOS 源码下载 ................................................................................. 22
1.3.2 FreeRTOS 文件预览 ................................................................................. 24
第二章 FreeRTOS 移植 ............................................................................................................... 29
2.1 准备工作 ............................................................................................................ 30
2.1.1 准备基础工程 .......................................................................................... 30
2.1.2 FreeRTOS 系统源码 ................................................................................. 30
2.2 FreeRTOS 移植 ................................................................................................... 30
2.2.1 向工程中添加相应文件 .......................................................................... 30
2.2.2 修改 SYSTEM 文件 ................................................................................. 34
2.3 移植验证实验 .................................................................................................... 38
2.3.1 实验程序设计 .......................................................................................... 38
2.3.2 实验程序运行结果分析 .......................................................................... 41
第三章 FreeRTOS 系统配置 ....................................................................................................... 43
3.1 FreeRTOSConfig.h 文件 ..................................................................................... 44
3.1 “INCLUDE_”开始的宏 ...................................................................................... 44
3.2 “config”开始的宏 ............................................................................................... 45
ALIENTEK 探索者 FreeRTOS 开发教程
6
STM32F407 FreeRTOS 开发手册
第四章 FreeRTOS 中断配置和临界段 ....................................................................................... 53
4.1 Cortex-M 中断 .................................................................................................... 54
4.1.1 中断简介 .................................................................................................. 54
4.1.2 中断管理简介 .......................................................................................... 54
4.1.3 优先级分组定义 ...................................................................................... 55
4.1.4 优先级设置 .............................................................................................. 57
4.1.5 用于中断屏蔽的特殊寄存器 .................................................................. 58
4.2 FreeRTOS 中断配置宏 ....................................................................................... 59
4.2.1 configPRIO_BITS ..................................................................................... 59
4.2.2 configLIBRARY_LOWEST_INTERRUPT_PRIORITY ......................... 59
4.2.3 configKERNEL_INTERRUPT_PRIORITY ............................................. 59
4.2.4 configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY ............ 61
4.2.5 configMAX_SYSCALL_INTERRUPT_PRIORITY ................................ 61
4.3 FreeRTOS 开关中断 ........................................................................................... 62
4.4 临界段代码 ........................................................................................................ 62
4.4.1 任务级临界段代码保护 .......................................................................... 63
4.4.2 中断级临界段代码保护 .......................................................................... 64
4.5 FreeRTOS 中断测试实验 ................................................................................... 65
4.5.1 实验程序设计 .......................................................................................... 65
4.5.2 实验程序运行结果 .................................................................................. 69
第五章 FreeRTOS 任务基础知识 ............................................................................................... 71
5.1 什么是多任务系统? ........................................................................................ 72
5.2 FreeRTOS 任务与协程 ....................................................................................... 73
5.2.1 任务(Task)的特性 .................................................................................... 73
5.2.2 协程(Co-routine)的特性 .......................................................................... 74
5.3 任务状态 ............................................................................................................ 74
5.4 任务优先级 ........................................................................................................ 75
5.5 任务实现 ............................................................................................................ 75
5.6 任务控制块 ........................................................................................................ 76
5.7 任务堆栈 ............................................................................................................ 78
第六章 FreeRTOS 任务相关 API 函 函数 数 ...................................................................................... 80
ALIENTEK 探索者 FreeRTOS 开发教程
7
STM32F407 FreeRTOS 开发手册
6.1 任务创建和删除 API 函数 ................................................................................ 81
6.2 任务创建和删除实验(动态方法) ..................................................................... 83
6.2.1 实验程序设计 .......................................................................................... 83
6.2.2 程序运行结果分析 .................................................................................. 87
6.3 任务创建和删除实验(静态方法) ..................................................................... 88
6.3.1 实验程序设计 .......................................................................................... 88
6.3.2 程序运行结果分析 .................................................................................. 93
6.4 任务挂起和恢复 API 函数 ................................................................................ 93
6.5 任务挂起和恢复实验 ........................................................................................ 94
6.5.1 实验程序设计 .......................................................................................... 94
6.5.2 程序运行结果分析 ................................................................................ 100
第七章 FreeRTOS 列表和列表项 ............................................................................................. 101
7.1 什么是列表和列表项? .................................................................................. 102
7.1.1 列表 ........................................................................................................ 102
7.1.2 列表项 .................................................................................................... 102
7.1.3 迷你列表项 ............................................................................................ 103
7.2 列表和列表项初始化 ...................................................................................... 104
7.2.1 列表初始化 ............................................................................................ 104
7.2.2 列表项初始化 ........................................................................................ 105
7.3 列表项插入 ...................................................................................................... 105
7.3.1 列表项插入函数分析 ............................................................................ 105
7.3.2 列表项插入过程图示 ............................................................................ 107
7.4 列表项末尾插入 .............................................................................................. 108
7.4.1 列表项末尾插入函数分析 .................................................................... 108
7.4.2 列表项末尾插入图示 ............................................................................ 109
7.5 列表项的删除 .................................................................................................. 110
7.6 列表的遍历 ....................................................................................................... 111
7.7 列表项的插入和删除实验 .............................................................................. 112
7.7.1 实验程序设计 ........................................................................................ 112
7.7.2 程序运行结果分析 ................................................................................ 116
第八章 FreeRTOS 调度器开启和任务相关函数详解 ............................................................. 120
8.1 阅读本章所必备的知识 .................................................................................. 121
ALIENTEK 探索者 FreeRTOS 开发教程
8
STM32F407 FreeRTOS 开发手册
8.2 调度器开启过程分析 ...................................................................................... 121
8.2.1 任务调度器开启函数分析 .................................................................... 121
8.2.2 内核相关硬件初始化函数分析 ............................................................ 123
8.2.3 使能 FPU 函数分析 ............................................................................... 124
8.2.4 启动第一个任务 .................................................................................... 124
8.2.5 SVC 中断服务函数 ................................................................................. 125
8.2.6 空闲任务 ................................................................................................ 130
8.3 任务创建过程分析 .......................................................................................... 131
8.3.1 任务创建函数分析 ................................................................................ 131
8.3.2 任务初始化函数分析 ............................................................................ 132
8.3.3 任务堆栈初始化函数分析 .................................................................... 136
8.3.4 添加任务到就绪列表 ............................................................................ 137
8.4 任务删除过程分析 .......................................................................................... 139
8.5 任务挂起过程分析 .......................................................................................... 141
8.6 任务恢复过程分析 .......................................................................................... 144
第九章 FreeRTOS 任务切换 ..................................................................................................... 146
9.1 PendSV 异常 ..................................................................................................... 147
9.2 FreeRTOS 任务切换场合 ................................................................................. 148
9.2.1 执行系统调用 ........................................................................................ 148
9.2.2 系统滴答定时器(SysTick)中断 ............................................................. 149
9.3 PendSV 中断服务函数 ..................................................................................... 150
9.4 查找下一个要运行的任务 .............................................................................. 151
9.6 FreeRTOS 时间片调度 ..................................................................................... 154
9.6 时间片调度实验 .............................................................................................. 156
9.6.1 实验程序设计 ........................................................................................ 156
9.6.2 程序运行结果分析 ................................................................................ 159
第十章 FreeRTOS 系统内核控制函数 ..................................................................................... 160
10.1 内核控制函数预览 ........................................................................................ 161
10.2 内核控制函数详解 ........................................................................................ 161
第十一章 FreeRTOS 其他任务 API 函数 ................................................................................ 166
11.1 任务相关 API 函数预览 ................................................................................ 167
ALIENTEK 探索者 FreeRTOS 开发教程
9
STM32F407 FreeRTOS 开发手册
11.2 任务相关 API 函数详解 ................................................................................ 168
11.3 任务壮态查询 API 函数实验 ........................................................................ 176
11.3.1 实验程序设计 ....................................................................................... 176
11.3.2 程序运行结果分析 ............................................................................... 180
11.4 任务运行时间信息统计实验 ........................................................................ 181
11.4.1 相关宏的设置 ....................................................................................... 181
11.4.2 实验程序设计 ....................................................................................... 183
11.4.3 程序运行结果分析 ............................................................................... 187
第十二章 FreeRTOS 时间管理 ................................................................................................. 188
12.1 FreeRTOS 延时函数 ....................................................................................... 189
12.1 函数 vTaskDelay() ................................................................................... 189
12.2 函数 prvAddCurrentTaskToDelayedList() .............................................. 190
12.3 函数 vTaskDelayUntil() .......................................................................... 192
12.2 FreeRTOS 系统时钟节拍 ............................................................................... 196
第十三章 FreeRTOS 队列 ......................................................................................................... 202
13.1 队列简介 ........................................................................................................ 203
13.2 队列结构体 .................................................................................................... 205
13.3 队列创建 ........................................................................................................ 206
13.3.1 函数原型 .............................................................................................. 206
13.3.2 队列创建函数详解 .............................................................................. 208
13.3.3 队列初始化函数 .................................................................................. 209
13.3.4 队列复位函数 ...................................................................................... 210
13.4 向队列发送消息 ............................................................................................ 212
13.4.1 函数原型 .............................................................................................. 212
13.4.2 任务级通用入队函数 .......................................................................... 216
13.4.3 中断级通用入队函数 .......................................................................... 220
13.5 队列上锁和解锁 ............................................................................................ 222
13.6 从队列读取消息 ............................................................................................ 224
13.7 队列操作实验 ................................................................................................ 228
13.7.1 实验程序设计 ...................................................................................... 228
13.7.2 程序运行结果分析 .............................................................................. 236
ALIENTEK 探索者 FreeRTOS 开发教程
10
STM32F407 FreeRTOS 开发手册
第十四章 FreeRTOS 信号量 ..................................................................................................... 238
14.1 信号量简介 .................................................................................................... 239
14.2 二值信号量 .................................................................................................... 239
14.2.1 二值信号量简介 .................................................................................. 239
14.2.2 创建二值信号量 .................................................................................. 241
14.2.3 二值信号量创建过程分析 .................................................................. 242
14.2.4 释放信号量 .......................................................................................... 243
14.2.5 获取信号量 .......................................................................................... 244
14.3 二值信号量操作实验 .................................................................................... 246
14.3.1 实验程序设计 ...................................................................................... 246
14.3.2 程序运行结果分析 .............................................................................. 252
14.4 计数型信号量 ................................................................................................ 253
14.4.1 计数型信号量简介 .............................................................................. 253
14.4.2 创建计数型信号量 .............................................................................. 253
14.4.3 计数型信号量创建过程分析 .............................................................. 254
14.4.4 释放和获取计数信号量 ...................................................................... 255
14.5 计数型信号量操作实验 ................................................................................ 255
14.5.1 实验程序设计 ...................................................................................... 255
14.5.2 程序运行结果分析 .............................................................................. 259
14.6 优先级翻转 .................................................................................................... 260
14.7 优先级翻转实验 ............................................................................................ 261
14.7.1 实验程序设计 ...................................................................................... 261
14.7.2 程序运行结果分析 .............................................................................. 266
14.8 互斥信号量 .................................................................................................... 268
14.8.1 互斥信号量简介 .................................................................................. 268
14.8.2 创建互斥信号量 .................................................................................. 268
14.8.3 互斥信号量创建过程分析 .................................................................. 269
14.8.4 释放互斥信号量 .................................................................................. 271
14.8.5 获取互斥信号量 .................................................................................. 274
14.9 互斥信号量操作实验 .................................................................................... 279
14.9.1 实验程序设计 ...................................................................................... 279
14.9.2 程序运行结果分析 .............................................................................. 282
14.10 递归互斥信号量 .......................................................................................... 283
ALIENTEK 探索者 FreeRTOS 开发教程
11
STM32F407 FreeRTOS 开发手册
14.10.1 递归互斥信号量简介 ........................................................................ 283
14.10.2 创建互斥信号量 ................................................................................ 283
14.10.3 递归信号量创建过程分析 ................................................................ 284
14.10.4 释放递归互斥信号量 ........................................................................ 284
14.10.5 获取递归互斥信号量 ........................................................................ 285
14.10.6 递归互斥信号量使用示例 ................................................................ 287
第十五章 FreeRTOS 软件定时器 ............................................................................................. 289
15.1 软件定时器简介 ............................................................................................ 290
15.2 定时器服务/Daemon 任务 ............................................................................ 290
15.2.1 定时器服务任务与队列 ...................................................................... 290
15.2.2 定时器相关配置 .................................................................................. 290
15.3 单次定时器和周期定时器 ............................................................................ 291
15.4 复位软件定时器 ............................................................................................ 291
15.5 创建软件定时器 ............................................................................................ 293
15.6 开启软件定时器 ............................................................................................ 295
15.7 停止软件定时器 ............................................................................................ 296
15.8 软件定时器实验 ............................................................................................ 297
15.8.1 实验程序设计 ...................................................................................... 297
15.8.2 程序运行结果分析 .............................................................................. 301
第十六章 FreeRTOS 事件标志组 ............................................................................................. 302
16.1 事件标志组简介 ............................................................................................ 303
16.2 创建事件标志组 ............................................................................................ 304
16.3 设置事件位 .................................................................................................... 304
16.4 获取事件标志组值 ........................................................................................ 306
16.5 等待指定的事件位 ........................................................................................ 307
16.6 事件标志组实验 ............................................................................................ 308
16.6.1 实验程序设计 ...................................................................................... 308
16.6.2 程序运行结果分析 .............................................................................. 313
第十七章 FreeRTOS 任务通知 ................................................................................................. 316
17.1 任务通知简介 ................................................................................................ 317
17.2 发送任务通知 ................................................................................................ 317
ALIENTEK 探索者 FreeRTOS 开发教程
12
STM32F407 FreeRTOS 开发手册
17.3 任务通知通用发送函数 ................................................................................ 320
17.3.1 任务级任务通知通用发送函数 .......................................................... 320
17.3.2 中断级任务通知发送函数 .................................................................. 323
17.4 获取任务通知 ................................................................................................ 326
17.5 任务通知模拟二值信号量实验 .................................................................... 330
17.5.1 实验程序设计 ...................................................................................... 330
17.5.2 实验程序运行结果 .............................................................................. 333
17.6 任务通知模拟计数型信号量实验 ................................................................ 333
17.6.1 实验程序设计 ...................................................................................... 334
17.6.2 实验程序运行结果 .............................................................................. 335
17.7 任务通知模拟消息邮箱实验 ........................................................................ 335
17.7.1 实验程序设计 ...................................................................................... 336
17.7.2 实验程序运行结果 .............................................................................. 339
17.8 任务通知模拟事件标志组实验 .................................................................... 339
17.8.1 实验程序设计 ...................................................................................... 340
17.8.2 实验程序运行结果 .............................................................................. 343
第十八章 FreeRTOS 低功耗 Tickless 模式 .............................................................................. 344
18.1 STM32F4 低功耗模式 .................................................................................... 345
18.1.1 睡眠(Sleep)模式 ................................................................................... 345
18.1.2 停止(Stop)模式 .................................................................................... 346
18.1.3 待机(Standby)模式 ............................................................................... 346
18.2 Tickless 模式详解 ........................................................................................... 347
18.2.1 如何降低功耗? .................................................................................. 347
18.2.2 Tickless 具体实现 ................................................................................. 347
18.3 低功耗 Tickless 模式实验 ............................................................................. 353
18.3.1 实验程序设计 ...................................................................................... 353
18.3.2 实验程序运行结果 .............................................................................. 358
第十九章 FreeRTOS 空闲任务 ................................................................................................. 360
19.1 空闲任务详解 ................................................................................................ 361
19.1.1 空闲任务简介 ...................................................................................... 361
19.1.2 空闲任务的创建 .................................................................................. 361
19.1.3 空闲任务函数 ...................................................................................... 362
ALIENTEK 探索者 FreeRTOS 开发教程
13
STM32F407 FreeRTOS 开发手册
19.2 空闲任务钩子函数详解 ................................................................................ 365
19.2.1 钩子函数 .............................................................................................. 365
19.2.2 空闲任务钩子函数 .............................................................................. 366
19.3 空闲任务钩子函数实验 ................................................................................ 367
19.3.1 实验程序设计 ...................................................................................... 367
19.3.2 实验程序运行结果 .............................................................................. 369
第二十章 FreeRTOS 内存管理 ................................................................................................. 370
20.1 FreeRTOS 内存管理简介 ............................................................................ 371
20.2 内存碎片 ...................................................................................................... 371
20.3 heap_1 内存分配方法 ..................................................................................... 372
20.3.1 分配方法简介 ...................................................................................... 372
20.3.2 内存申请函数详解 .............................................................................. 372
20.3.3 内存释放函数详解 .............................................................................. 375
20.4 heap_2 内存分配方法 ..................................................................................... 375
20.4.1 分配方法简介 ...................................................................................... 375
20.4.2 内存块详解 .......................................................................................... 376
20.4.3 内存堆初始化函数详解 ...................................................................... 377
20.4.4 内存块插入函数详解 .......................................................................... 378
20.4.5 内存申请函数详解 .............................................................................. 379
20.4.6 内存释放函数详解 .............................................................................. 381
20.5 heap_3 内存分配方法 ..................................................................................... 382
20.6 heap_4 内存分配方法 ..................................................................................... 384
20.6.1 分配方法简介 ...................................................................................... 384
20.6.2 内存堆初始化函数详解 ...................................................................... 384
20.6.3 内存块插入函数详解 .......................................................................... 386
20.6.4 内存申请函数详解 .............................................................................. 389
20.6.5 内存释放函数详解 .............................................................................. 393
20.7 heap_5 内存分配方法 ..................................................................................... 394
20.8 FreeRTOS 内存管理实验 ............................................................................... 395
20.8.1 实验程序设计 ...................................................................................... 395
20.8.2 实验程序运行结果 .............................................................................. 398

实例下载地址

STM32F4 FreeRTOS开发手册_V1.1_已解锁.pdf

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警