没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
目录
章节内容总结 .......................................................................................................................................... 3
1、裸机系统与多任务系统 ............................................................................................................ 3
1.1 裸机系统 ............................................................................................................................ 3
1.2 多任务系统 ........................................................................................................................ 3
2. 数据结构——链表与节点 .......................................................................................................... 4
3. 创建任务 ...................................................................................................................................... 4
3.1 硬件初始化 ........................................................................................................................ 4
3.2 创建单任务——SRAM 静态内存 .................................................................................... 4
3.3 创建单任务——SRAM 动态内存 .................................................................................... 5
3.4 创建多任务——SRAM 动态内存 .................................................................................... 6
4. 启动流程 ...................................................................................................................................... 6
4.1 第一种启动方式 ................................................................................................................ 6
4.2 第二种启动方式 ................................................................................................................ 6
4.3 孰优孰劣 ............................................................................................................................ 7
4.5 FreeRTOS 的启动流程 ...................................................................................................... 7
4.6 任务启动和任务切换使用的三个异常............................................................................. 7
5. 任务管理 ...................................................................................................................................... 7
5.1 任务的基本概念 ................................................................................................................ 7
5.2 任务调度器的基本概念 .................................................................................................... 8
5.4 任务状态迁移 .................................................................................................................... 8
5.5 任务状态的概念 ................................................................................................................ 9
5.6 任务的设计要点 ................................................................................................................ 9
6. 信号量 ........................................................................................................................................ 10
6.1 消息队列的基本概念 ...................................................................................................... 10
6.2 消息队列的运作机制 ...................................................................................................... 10
6.3 消息队列的阻塞机制 ...................................................................................................... 11
6.4 消息队列的应用场景 ...................................................................................................... 11
6.5 消息队列控制块 .............................................................................................................. 11
6.7 消息队列使用事项 .......................................................................................................... 11
7.信号量 ...................................................................................................................................... 11
7.1 信号量基本概念 .............................................................................................................. 11
7.2 二值信号量运作机制 ...................................................................................................... 12
7.3 计数信号量的运作机制 .................................................................................................. 13
8.互斥量 ...................................................................................................................................... 14
8.1 互斥量基本概念 .............................................................................................................. 14
8.2 互斥量的优先级继承机制 .............................................................................................. 14
8.3 互斥量应用场景 .............................................................................................................. 15
8.4 互斥量的运作机制 .......................................................................................................... 15
9. 事件 ............................................................................................................................................ 16
9.1 事件的基本概念 .............................................................................................................. 16
9.2 事件应用场景 .................................................................................................................. 16
9.1 事件运作机制 .................................................................................................................. 17
10. 软件定时器 .............................................................................................................................. 18
10.1 软件定时器的基本概念 ................................................................................................ 18
10.2 软件定时器应用场景 .................................................................................................... 18
10.3 软件定时器的精度 ........................................................................................................ 18
10.4 软件定时器的运作机制 ................................................................................................ 19
11. 任务通知 .................................................................................................................................. 20
11.1 任务通知的基本概念 ................................................................................................... 20
11.2 任务通知的运作机制 ................................................................................................... 20
12. 内存管理 .................................................................................................................................. 20
12.1 内存管理的基本概念 .................................................................................................... 20
12.2 内存管理的应用场景 .................................................................................................... 21
13. 中断管理 .................................................................................................................................. 22
13.1 异常与中断的基本概念 ................................................................................................ 22
13.2 中断的介绍 .................................................................................................................... 22
13.3 中断管理的运作机制 .................................................................................................... 23
13.4 中断延迟的概念 ............................................................................................................ 24
项目相关内容总结 ................................................................................................................................ 24
1、 移植 FreeRTOS 系统至 STM32 中,设计面向健康监测、环境监测与遥操作控制的
多任务模型; ................................................................................................................................ 24
1.2 设计面向健康监测、环境监测与遥操作控制的多任务模型; ................................. 25
1.3 为什么选择 STM32F411CEUx 这款芯片 ...................................................................... 25
2、 针对任务与任务间、任务与中断间数据的交互,设计多个消息队列,并对队列中紧
急消息问题进行改进; ................................................................................................................ 26
3、 基于 MPU6050 进行手势检测开发, 提高 MPU6050 芯片的姿态检测精度,实现手部运
行轨迹估计遥操作机器人; ........................................................................................................ 27
4、采用 DMA 发送蓝牙数据,使用状态机处理数据帧避免断层异常,设计定时器监控超时
异常,提高可靠性。 .................................................................................................................... 31
DMA 发送蓝牙数据 .............................................................................................................. 33
使用状态机处理数据帧 ........................................................................................................ 33
状态机设置 ............................................................................................................................ 33
5、优化 EM7029 心率检测官方库,提升检测速度;优化 MPU6050 运动功能,基于 RTC
定时检测,提升检测灵敏度; .................................................................................................... 33
6、 通过 IIC 总线实现 IC 间数据通信;采用 DMA 发送蓝牙数据,实现客户端与手环端同
步传感器数据与手环状态; ........................................................................................................ 39
7、 将物理内存划分为 BOOT、 Flag、 APP 区,将代码分为 Bootloader 和 APP 部分,实现
蓝牙无线升级系统程序。 ............................................................................................................ 43
2023.04-2023.08 智能电子手环软件开发
项目简介: 基于 STM32 主控、 FreeRTOS 系统和 LVGL 图形库, 开发佩戴式电子手环, 基
于各硬件传感器,实现系统无线 OTA 升级、抬腕亮屏、心率检测等功能, 并进行低功耗软件
优化,降低点亮消耗。
技术架构: STM32F411 + FreeRTOS + LVGL + 蓝牙通信
主要工作:
1、 移植 FreeRTOS 系统, 设计多个消息队列实现多任务间通信,对消息队列中紧急消息问题
改进;
2、 优化 EM7028 心率检测官方库,提升检测速度;优化 MPU6050 运动功能,基于 RTC 定时
检测,提升检测灵敏度;
3、 通过 IIC 总线实现 IC 间数据通信;采用 DMA 发送蓝牙数据,实现客户端与手环端同步
传感器数据与手环状态;
4、 将物理内存划分为 BOOT、 Flag、 APP 区,将代码分为 Bootloader 和 APP 部分,实现
蓝牙无线升级系统程序。
章节内容总结
1、裸机系统与多任务系统
1.1 裸机系统
1)分为轮询系统和前后台系统
2)轮询系统:
主程序在死循环里面不断循环,顺序处理各种事情。顺序执行代码,检测外部事件时,系
统实时响应能力较差。
只适用于顺序执行的功能代码,有外部事件驱动时,实时性降低。
3)前后台系统:
轮询系统基础上加入中断,事件处理还是在轮询系统中完成,中断称为前台,轮询系统称
为后台。
中断会打断后台程序的执行,转而执行中断服务程序。简短事情在中断服务程序中处理,
复杂长时事情在后台处理。
1.2 多任务系统
事件响应在中断中完成,事件处理在任务中完成。
任务根中断一样具有优先级,优先级高被优先执行。每个任务独立互不干扰,具备优先级。
2. 数据结构——链表与节点
FreeRTOS 中链表实现是双向链表
3. 创建任务
3.1 硬件初始化
BSP_Init()函数进行管理板级外设的初始化,和使用裸板进行硬件初始化时相同。
3.2 创建单任务——SRAM 静态内存
任务使用的栈和任务控制块都是用静态内存,即预先定义好的全局变量(全局变量都存在
内部 SRAM 中)。
1)定义任务
a) 任务:一个无线循环且不带返回值的 C 函数。(死循环,否则任务返回时可能出
错)
b) 延时函数必须使用 FreeRTOS 中的延时函数,vTaskDelay()函数,使得当前任务
被挂起,调度器会切换到其他就绪任务。
c) 定义任务函数内容
2)空闲任务与定时器任务堆栈函数
a) 设置空闲任务和定时器任务的堆栈内存
3)定义任务栈
a) 定义一个独立的全局变量作为任务栈,任务的栈占用的是 MCU 内部的 RAM
(RAM 大小决定支持的任务数量)。
4)定义任务控制块
a) 定义任务控制块,任务控制块认为是任务的身份证
5)静态创建任务
a) 任务三要素:主体函数、任务栈、任务控制块
b) 将撒要素连接起来静态任务创建函数 xTaskCreateStatic(),让任务可以随时被系
统启动
a) 任务栈起始地址,只有在使用静态内存的时候才需要提供
b) 任务控制块指针,使用静态内存的时候预先定义好,动态内存的时候,
xTaskCreate 会返回一个指向人物控制块的指针。
6)启动任务
a) 任务创建好后处于就绪状态,就绪态任务可以参与操作系统的调度。
b) 开启任务调度器,vTaskStartScheduler(),真正进入实时操作系统的第一步。
3.3 创建单任务——SRAM 动态内存
任务使用的栈和任务控制块是创建任务的时候 FreeRTOS 动态的分配的,并不是预先定义
好的全局变量。
1) 动态内存空间的堆从哪里来
a) 使用动态内存即堆,属于 SRAM 中。
b) 在 SRAM 中定义一个大数组,即对内存,供 FreeRTOS 动态内存分配函数使用。
c) 第一次使用时,会将定义的堆内存进行初始化。
2) 定义任务函数
a) 一个无限循环无返回的函数
3) 定义任务栈
a) 任务栈在任务创建的时候创建,动态内存按需分配内存,随用随取。
4) 定义任务控制块指针
a) 任务控制块是在任务创建的时候分配内存空间创建,任务创建函数返回一个指针,
用于指向任务控制块。只需预先定义一个任务控制块指针(也称为句柄)。
5) 动态创建任务
a) 使用 xTaskCreate()函数来创建一个任务
b) 任务堆栈大小,单位为字
6) 启动任务
a) vTaskStartScheduler();
剩余56页未读,继续阅读
资源评论
孟庆磊
- 粉丝: 127
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功