描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111718130丛书名: 电子与嵌入式系统设计译丛
本书讲述了如何利用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 小结
微控制器是一种单芯片微处理器系统,它包含数据和程序内存、串行和并行输入/输出端口、定时器、外部和内部中断,所有这些都被集成到一块大约2美元就能买到的芯片之中。大约40%的微控制器被应用于办公自动化领域,例如,个人计算机、激光打印机、传真机以及智能电话等。大约三分之一的微控制器都能在消费电子产品中找到,诸如CD和DVD播放器、高保真音响设备、视频游戏机、洗碗机、电子灶具等产品都属于消费电子产品。通信市场、汽车市场以及军事用途则分享微控制器应用领域的剩余份额。
传统上,我们使用针对特定处理器的汇编语言为微控制器编写程序。尽管汇编程序运行很快,但缺点是难以用它开发和维护大型项目。此外,不同厂家生产的微控制器具有不同的汇编语言指令集,这会导致每当程序员使用不同的微控制器时,都要花费大量时间学习新的汇编语言。为一种型号微控制器编写的汇编代码无法移植到另一种型号的微控制器上。当今则使用像C、C 、Pascal或者Basic之类的高级语言为微控制器编写程序。使用高级语言的最大优势是编写的代码可以移植到各种不同型号的微控制器上。此外,使用高级编程语言开发的程序也更加易于维护。
由众多厂家生产的微控制器多种多样,大多数厂家都会提供相应的开发套件(或者开发板),本书使用的是Clicker 2 for STM32开发板。该开发板基于STM32F407型号的ARM Cortex-M4处理器,工作频率最高可达168MHz,而针对软件开发使用的是非常流行的mikroC Pro for ARM编译器和集成开发环境(IDE)。
本书的主题是FreeRTOS内核以及多任务处理。多任务处理已经成为基于微控制器的系统(即自动化应用)中的重要话题之一。随着项目复杂度的增加,人们对项目也提出越来越多的功能需求,为了完成必需的操作,此类项目必须能够让若干相互关联的任务运行在同一处理器上,并且能让它们共享CPU。由此带来的结果就是,在过去几年中,基于微控制器的应用中多任务处理的重要性持续增强,并且当今众多复杂的自动化项目都用到了某种多任务处理内核,在本书涉及的项目中使用的是FreeRTOS多任务处理内核。FreeRTOS是占据市场主导地位的多任务处理内核,在各个领域中的部署已经数不胜数。FreeRTOS是完全免费的,并且文档和技术支持也都非常完备。它能够运行在众多硬件和软件平台之上,包括ARM处理器以及mikroC Pro for ARM编译器和集成开发环境。FreeRTOS在2018年的流行程度达到其官网www.freertos.org上每隔175s就被下载一次,并且自2011年以来,在电子工程杂志EETimes所做的嵌入式市场调查中每次都名列榜首。
本书基于项目编写,主要目的是讲授FreeRTOS内核的基本特性和API函数。书中提供了大量经过全面测试的项目,这些项目都属于使用FreeRTOS创建的多任务处理应用。本书对每个项目都进行了详细的介绍,并给出了完整的程序清单。读者可以原封不动地使用这些项目,或者针对自己的需求对项目进行修改。每个项目大致按照如下所示的几个部分进行介绍:描述
目标
背景(如果可能的话)
框图
电路图
程序清单
评论
还没有评论。