嵌入式系统多任务处理应用开发实战:基于ARM MCU和FreeRTOS内核
- ISBN:9787111718130
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:412
- 出版时间:2023-02-01
- 条形码:9787111718130 ; 978-7-111-71813-0
本书特色
本书基于项目编写,讲述了如何利用FreeRTOS多任务处理内核让ARM Cortex微控制器进行多任务处理。
内容简介
本书讲述了如何利用FreeRTOS多任务处理内核让ARM Cortex微控制器进行多任务处理。本书还详细讲解了多任务处理操作系统的各项特性,例如:调度、优先级、邮箱、事件标志和信号量等。本书的重要特色之一是使用非常流行的Clicker 2 for STM32开发板(你可以很轻松地换用其他型号的开发板)和FreeRTOS进行实时项目实战。这些项目包括:LED以不同频率闪烁、7段数码管的刷新显示、用不同任务控制各种传感器的移动机器人、独立控制的多个伺服电机、多任务处理的物联网项目、具有独立键盘输入的温度控制器、具有三项任务(激活、发生器和显示)的随机数发生器、家用报警系统以及泊车管理系统等等。
目录
目 录
译者序
前言
致谢
第1章 微型计算机系统 / 1
1.1 概述 / 1
1.2 微控制器系统 / 1
1.2.1 RAM / 4
1.2.2 ROM / 5
1.2.3 PROM / 5
1.2.4 EPROM / 5
1.2.5 EEPROM / 5
1.2.6 flash EEPROM / 5
1.3 微控制器的特点 / 6
1.3.1 供电电压 / 6
1.3.2 时钟 / 6
1.3.3 定时器 / 6
1.3.4 看门狗 / 6
1.3.5 复位输入 / 7
1.3.6 中断 / 7
1.3.7 欠电压检测器 / 7
1.3.8 模数转换器 / 7
1.3.9 串行输入/输出 / 7
1.3.10 SPI和I2C / 8
1.3.11 LCD驱动器 / 8
1.3.12 模拟比较器 / 8
1.3.13 实时时钟 / 8
1.3.14 睡眠模式 / 8
1.3.15 上电复位 / 8
1.3.16 低功率运行 / 9
1.3.17 灌电流/拉电流能力 / 9
1.3.18 USB接口 / 9
1.3.19 CAN接口 / 9
1.3.20 以太网接口 / 9
1.3.21 Wi-Fi和蓝牙接口 / 9
1.4 微控制器架构 / 9
1.5 小结 / 10
拓展阅读 / 10
第2章 ARM微控制器架构 / 11
2.1 概述 / 11
2.2 ARM微控制器 / 11
2.2.1 Cortex-M / 13
2.2.2 Cortex-R / 14
2.2.3 Cortex-A / 14
2.2.4 Cortex-M处理器对比 / 14
2.2.5 Cortex-M 兼容性 / 15
2.2.6 处理器性能测量 / 15
2.3 STM32F407VGT6微控制器 / 16
2.3.1 STM32F407VGT6的基本特点 / 16
2.3.2 内部模块示意图 / 18
2.3.3 供电 / 20
2.3.4 低功耗模式 / 20
2.3.5 时钟电路 / 20
2.4 通用输入和输出 / 24
2.5 嵌套向量中断控制器 / 26
2.6 外部中断控制器 / 26
2.7 定时器 / 26
2.8 模数转换器 / 26
2.9 内置温度传感器 / 27
2.10 数模转换器 / 27
2.11 复位 / 27
2.12 电特性 / 27
2.13 小结 / 28
拓展阅读 / 28
第3章 ARM Cortex微控制器开发板 / 29
3.1 概述 / 29
3.2 LPC1768 / 29
3.3 STM32 Nucleo系列 / 29
3.4 EasyMx PRO v7 for STM32 / 30
3.5 STM32F4DISCOVERY板 / 31
3.6 mbed应用板 / 31
3.7 EasyMx PRO v7 for Tiva / 32
3.8 MINI-M4 for STM32 / 33
3.9 Clicker 2 for MSP432 / 34
3.10 Tiva EK-TM4C123GXL
LaunchPad / 34
3.11 Fusion for ARM V8 / 35
3.12 Clicker 2 for STM32 / 35
3.13 小结 / 36
拓展阅读 / 36
第4章 Clicker 2 for STM32开发板 / 37
4.1 概述 / 37
4.2 Clicker 2 for STM32硬件 / 37
4.2.1 板载LED / 38
4.2.2 板载按键开关 / 38
4.2.3 复位开关 / 38
4.2.4 供电 / 39
4.2.5 板载mikroBUS插座 / 39
4.2.6 输入/输出引脚 / 40
4.2.7 振荡器 / 41
4.2.8 板载微控制器编程 / 41
4.3 小结 / 42
拓展阅读 / 42
第5章 ARM微控制器编程 / 43
5.1 概述 / 43
5.2 支持ARM微控制器的集成开发
环境 / 43
5.2.1 EWARM / 43
5.2.2 ARM Mbed / 44
5.2.3 MDK-ARM / 44
5.2.4 TrueStudio for STM32 / 45
5.2.5 System Workbench for
STM32 / 45
5.2.6 mikroC Pro for ARM / 45
5.3 小结 / 46
拓展阅读 / 46
第6章 使用mikroC Pro for ARM编程 / 47
6.1 概述 / 47
6.2 mikroC Pro for ARM / 47
6.3 通用输入/输出库 / 49
6.3.1 GPIO_Clk_Enable / 49
6.3.2 GPIO_Clk_Disable / 50
6.3.3 GPIO_Config / 50
6.3.4 GPIO_Set_Pin_Mode / 52
6.3.5 GPIO_Digital_Input / 53
6.3.6 GPIO_Digital_Output / 53
6.3.7 GPIO_Analog_Input / 53
6.3.8 GPIO_Alternate_Function_
Enable / 54
6.4 存储器类型说明符 / 54
6.5 PORT输入/输出 / 54
6.6 按位访问 / 55
6.7 bit数据类型 / 55
6.8 中断和异常 / 55
6.8.1 异常 / 55
6.8.2 中断服务程序 / 56
6.9 创建新项目 / 57
6.10 仿真 / 64
6.11 调试 / 66
6.12 其他mikroC IDE工具 / 67
6.12.1 ASCII表 / 67
6.12.2 GLCD位图编辑器 / 68
6.12.3 HID终端 / 68
6.12.4 中断助手 / 69
6.12.5 LCD定制字符 / 69
6.12.6 7段编辑器 / 69
6.12.7 UDP终端 / 69
6.12.8 USART终端 / 70
6.12.9 USB HID bootloader / 71
6.12.10 统计 / 71
6.12.11 库管理器 / 72
6.12.12 编译列表 / 73
6.12.13 输出文件 / 73
6.12.14 选项窗口 / 73
6.13 小结 / 74
拓展阅读 / 74
第7章 多任务处理简介 / 75
7.1 概述 / 75
7.2 多任务处理内核的优势 / 76
7.3 对实时操作系统的需求 / 76
7.4 任务调度算法 / 77
7.4.1 协作调度 / 77
7.4.2 轮询调度 / 82
7.4.3 抢占调度 / 82
7.4.4 调度算法的目标 / 83
7.4.5 抢占调度与非抢占调度之间的
区别 / 83
7.4.6 其他一些调度算法 / 84
7.5 调度算法的选择 / 85
7.6 小结 / 85
拓展阅读 / 85
第8章 FreeRTOS简介 / 86
8.1 概述 / 86
8.2 FreeRTOS发行版 / 87
8.3 从mikroElektronika网站进行
安装 / 88
8.4 编写项目文件 / 89
8.5 FreeRTOS头文件路径与源文件
路径 / 90
8.6 编译器大小写敏感 / 91
8.7 编译模板程序 / 92
8.8 小结 / 92
拓展阅读 / 92
第9章 使用FreeRTOS函数 / 93
9.1 概述 / 93
9.2 FreeRTOS数据类型 / 93
9.3 FreeRTOS变量命名 / 94
9.4 FreeRTOS函数命名 / 94
9.5 常用宏定义 / 94
9.6 任务状态 / 94
9.7 与任务相关的函数 / 96
9.7.1 创建新任务 / 96
9.7.2 延迟任务 / 97
9.7.3 项目1—让LED每秒闪烁
1次 / 97
9.7.4 项目2—让一个LED每秒闪
烁1次,另一个LED每200ms
闪烁1次 / 100
9.7.5 挂起任务 / 102
9.7.6 让挂起的任务恢复执行 / 102
9.7.7 项目3—挂起和恢复任务 / 103
9.7.8 删除任务 / 105
9.7.9 项目4—让LED闪烁并删除
任务 / 105
9.7.10 获取任务句柄 / 107
9.7.11 定时执行 / 108
9.7.12 滴答计数 / 108
9.7.13 项目5—利用函数vTask-
DelayUntil()让LED闪烁 / 108
9.7.14 任务优先级 / 110
9.7.15 项目6—让LED闪烁和切
换不同优先级的按键开关 / 111
9.7.16 项目7—获取/设置任务优
先级 / 113
9.8 使用液晶显示屏 / 114
9.8.1 HD44780 LCD模块 / 115
9.8.2 连接LCD与Clicker 2 for STM32
开发板 / 116
9.8.3 LCD函数 / 116
9.8.4 项目8—在LCD上
显示文本 / 117
9.9 任务名称、任务数量及滴答计数 / 119
9.10 项目9—在LCD上显示任务
名称、任务数量及滴答计数 / 120
9.11 转而执行另一个优先级相同的
任务 / 122
9.12 取消延迟 / 123
9.13 项目10—7段2位多路复用LED
显示屏计数器 / 123
9.14 项目11—7段4位多路复用LED
显示屏计数器 / 129
9.15 项目12—7段4位多路复用LED
显示屏事件计数器 / 135
9.16 项目13—交通灯控制器 / 136
9.17 项目14—改变LED
闪烁频率 / 144
9.18 项目15—通过USB串口向PC
发送数据 / 148
9.19 项目16—用PC键盘改变LED
闪烁频率 / 154
9.20 任务列表 / 156
9.21 项目17—在PC屏幕上显示
任务列表 / 157
9.22 任务信息 / 159
9.23 项目18—在PC屏幕上显示
任务信息 / 160
9.24 任务状态 / 162
9.25 项目19—在PC屏幕上显示
任务状态 / 163
9.26 任务参数 / 165
9.27 小结 / 165
拓展阅读 / 165
第10章 队列管理 / 166
10.1 全局变量概述 / 166
10.2 为何是队列 / 166
10.3 创建队列并利用队列发送和接
收数据 / 167
10.4 项目20—用PC键盘改变LED
闪烁频率 / 169
10.5 删除队列、为队列命名、重置
队列 / 172
10.6 项目21—使用各种队列函数 / 173
10.7 其他一些队列函数 / 175
10.8 项目22—开关式温度控制器 / 176
10.9 小结 / 185
拓展阅读 / 185
第11章 信号量和互斥量 / 186
11.1 概述 / 186
11.2 创建二进制信号量和互斥量 / 187
11.3 创建计数型信号量 / 187
11.4 删除信号量并获取信号量计数 / 188
11.5 释放和占用信号量 / 188
11.6 项目23—向PC发送内部和
外部温度数据 / 189
11.7 小结 / 194
拓展阅读 / 194
第12章 事件组 / 195
12.1 概述 / 195
12.2 事件标志和事件组 / 195
12.3 创建和删除事件组 / 196
12.4 设置、清除、等待事件组位以及
获取事件组位 / 196
12.5 项目24—向PC发送内部和外
部温度数据 / 198
12.6 项目25—控制LED的闪烁 / 202
12.7 项目26—基于GPS的项目 / 205
12.8 小结 / 212
拓展阅读 / 212
第13章 软件定时器 / 213
13.1 概述 / 213
13.2 创建、删除、启动、停止和重置
定时器 / 214
13.3 修改和获取定时器周期 / 216
13.4 定时器名称和ID / 217
13.5 项目27—反应定时器 / 217
13.6 项目28—生成方波 / 220
13.7 项目29—事件计数器(例如
频率计数器) / 222
13.8 小结 / 225
拓展阅读 / 225
第14章 一些示例项目 / 226
14.1 概述 / 226
14.2 项目30—生成频率可调节的
方波 / 226
14.3 项目31—扫频波形发生器 / 230
14.4 项目32—RGB灯光控制器 / 233
14.5 项目33—带键盘的家庭报警
系统 / 236
14.6 项目34—带蜂鸣器的超声波
泊车 / 244
14.7 项目35—步进电机项目 / 251
14.8 项目36—与Arduino通信 / 262
14.9 小结 / 267
拓展阅读 / 267
第15章 空闲任务和空闲任务钩子 / 268
15.1 概述 / 268
15.2 空闲任务 / 268
15.3 空闲任务钩子函数 / 268
15.4 项目37—显示空闲处理器
......
-
深度学习的数学
¥43.5¥69.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0 -
贝叶斯推理与机器学习
¥139.3¥199.0