4.23文创礼盒,买2个减5元
欢迎光临中图网 请 | 注册
> >
嵌入式系统多任务处理应用开发实战:基于ARM MCU和FreeRTOS内核

嵌入式系统多任务处理应用开发实战:基于ARM MCU和FreeRTOS内核

出版社:机械工业出版社出版时间:2023-02-01
开本: 16开 页数: 412
中 图 价:¥110.3(7.4折) 定价  ¥149.0 登录后可看到会员价
加入购物车 收藏
运费6元,满69元免运费
?快递不能达地区使用邮政小包,运费14元起
云南、广西、海南、新疆、青海、西藏六省,部分地区快递不可达
本类五星书更多>

嵌入式系统多任务处理应用开发实战:基于ARM MCU和FreeRTOS内核 版权信息

嵌入式系统多任务处理应用开发实战:基于ARM MCU和FreeRTOS内核 本书特色

本书基于项目编写,讲述了如何利用FreeRTOS多任务处理内核让ARM Cortex微控制器进行多任务处理。

嵌入式系统多任务处理应用开发实战:基于ARM MCU和FreeRTOS内核 内容简介

本书讲述了如何利用FreeRTOS多任务处理内核让ARM Cortex微控制器进行多任务处理。本书还详细讲解了多任务处理操作系统的各项特性,例如:调度、优先级、邮箱、事件标志和信号量等。本书的重要特色之一是使用非常流行的Clicker 2 for STM32开发板(你可以很轻松地换用其他型号的开发板)和FreeRTOS进行实时项目实战。这些项目包括:LED以不同频率闪烁、7段数码管的刷新显示、用不同任务控制各种传感器的移动机器人、独立控制的多个伺服电机、多任务处理的物联网项目、具有独立键盘输入的温度控制器、具有三项任务(激活、发生器和显示)的随机数发生器、家用报警系统以及泊车管理系统等等。

嵌入式系统多任务处理应用开发实战:基于ARM MCU和FreeRTOS内核 目录

目  录

译者序

前言

致谢

第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—显示空闲处理器

......

展开全部
商品评论(0条)
暂无评论……
书友推荐
编辑推荐
返回顶部
中图网
在线客服