嵌入式系统原理与实践:ARM Cortex-M4 Kinetis微控制器
![]() |
Kinetis系列微控制器将高效ARM Cortex-M4内核与先进的低功耗设计技术相结合,是业内功耗最低的基于Cortex-M4的MCU解决方案。
本书以飞思卡尔(Freescale)的ARM Cortex-M4内核的Kinetis系列微控制器为蓝本阐述嵌入式系统的软件与硬件设计,全书共15章,其中第1章为概述,简要阐述嵌入式系统的知识体系、学习误区、学习建议和基于硬件构件的嵌入式系统开发方法;第2章给出ARM Cortex-M4简介及K60硬件最小系统;第3章给出第一个样例程序及开发环境下的工程组织方法,完成第一个K60工程的入门任务;第4章阐述串行通信接口UART,并给出第一个带中断的实例,1~4章囊括了学习一个新MCU完整要素的入门环节;5~14分别给出了GPIO的应用实例(键盘、LED与LCD)、定时器、A/D、D/A、比较器、TSI、SPI、I2C、I2S、Flash、CAN、SDHC、USB、以太网及K60其他模块等;第15章给出了进一步学习指导。
本书适用于有关高校嵌入式系统的教学或技术培训资料,也可供ARM Cortex-M4应用工程师作为技术研发参考。
(1)国内第1本以ARM Cortex-M4 Kinetis微控制器为蓝本的嵌入式图书;(2)内容详尽,讲解循序渐进,符合学习的规律;(3)本书提供了网上光盘,内含所有底层驱动构件源程序、测试实例、辅助阅读材料、教学课件、相关芯片资料及常用软件工具。
目 录
第1章 概 述 1
1.1 嵌入式系统定义、由来及特点 1
1.1.1 嵌入式系统的定义 1
1.1.2 嵌入式系统的由来及其与
微控制器的关系 2
1.1.3 嵌入式系统的特点 3
1.2 嵌入式系统的知识体系、学习误区及
学习建议 4
1.2.1 嵌入式系统的知识体系 4
1.2.2 嵌入式系统的学习误区 5
1.2.3 基础阶段的学习建议 7
1.2.4 嵌入式系统开发所遇到的
若干问题 8
1.3 嵌入式硬件构件的基本思想与
应用方法 9
1.4 基于硬件构件的嵌入式系统
硬件电路设计 9
1.4.1 设计时需要考虑的基本问题 9
1.4.2 硬件构件化电路原理图绘制的
简明规则 11
1.4.3 实验PCB板设计的简明规则 13
1.5 基于硬件构件的嵌入式底层软件构件的
编程方法 16
1.5.1 嵌入式硬件构件和软件构件的
层次模型 16
1.5.2 底层构件的实现方法与
编程思想 17
1.5.3 硬件构件及底层软件构件的
重用与移植方法 18
1.6 嵌入式系统的常用术语 19
1.6.1 与硬件相关的术语 19
1.6.2 与通信相关的术语 21
1.6.3 与功能模块及软件相关的术语 21
1.7 本章小结 22
习题 23
第2章 Kinetis微控制器概述与K60硬件
最小系统 24
2.1 学习一个新MCU芯片的基本要素 24
2.2 ARM背景知识简介 25
2.2.1 ARM简介 25
2.2.2 Cortex-M4处理器特性简介 28
2.3 Kinetis系列微控制器概述及型号标识 29
2.3.1 Kinetis系列微控制器概述 29
2.3.2 Kinetis系列微控制器型号标识 31
2.4 K60系列微控制器的存储器映像与
编程结构 31
2.4.1 K60系列MCU性能概述与
内部结构简图 31
2.4.2 K60系列存储器映像 33
2.5 K60的引脚功能与硬件最小系统 34
2.5.1 K60的引脚功能 35
2.5.2 K60的硬件最小系统原理图 37
2.5.3 Kinetis器写入器与K60核心板 39
2.5.4 硬件最小系统测试方法 40
2.6 ARM Cortex-M4的寄存器及指令简介 41
2.6.1 ARM Cortex-M4的寄存器简介 41
2.6.2 ARM Cortex-M4的指令
系统简介 43
2.7 本章小结 44
习题 44
第3章 第一个样例程序及工程组织 45
3.1 GPIO模块的驱动构件设计 45
3.1.1 GPIO的基础知识 45
3.1.2 GPIO模块概要与编程要点 46
3.1.3 GPIO驱动构件设计 48
3.2 CodeWarrior开发环境简介 54
3.3 嵌入式设计编码基本规范 55
3.3.1 硬件驱动构件文件 56
3.3.2 数据类型 56
3.3.3 函数 57
3.3.4 源码文件夹结构 58
3.4 第一个C语言工程:控制小灯闪烁 59
3.4.1 Light构件设计 59
3.4.2 Light构件测试工程主程序 62
3.4.3 在CW环境下导入样例工程 63
3.5 理解第一个C工程 63
3.5.1 CW开发环境下工程文件
组织框架 64
3.5.2 文件说明 65
3.5.3 芯片上电启动执行过程 72
3.6 在CW环境下创建一个新的工程 72
3.7 本章小结 73
习题 74
第4章 异步串行通信 75
4.1 异步串行通信的基础知识 75
4.1.1 基本概念 75
4.1.2 RS-232C总线标准 77
4.1.3 电平转换电路原理 78
4.2 UART模块功能概述 79
4.3 UART模块的编程结构 80
4.4 UART模块的底层驱动构件设计 85
4.4.1 UART构件的函数原型设计 85
4.4.2 UART构件的头文件
(hw_uart.h) 85
4.4.3 UART构件的源程序文件
(hw_uart.c) 88
4.5 以查询方式接收的UART模块
测试实例 92
4.6 以中断方式接收的UART模块
测试实例 94
4.7 本章小结 96
习题 97
第5章 GPIO的应用实例:键盘、LED与
LCD 98
5.1 键盘模块的驱动构件设计 98
5.1.1 键盘模型及接口 98
5.1.2 键盘驱动构件设计 100
5.1.3 键盘驱动构件测试实例 107
5.2 LED模块的驱动构件设计 109
5.2.1 LED的基础知识 109
5.2.2 LED驱动构件设计 110
5.2.3 LED驱动构件测试实例 113
5.3 LCD模块的驱动构件设计 115
5.3.1 LCD的基础知识 115
5.3.2 LCD驱动构件设计 120
5.3.3 LCD驱动构件测试实例 125
5.4 本章小结 126
习题 127
第6章 定时器相关模块 128
6.1 计数器/定时器的基本工作原理 128
6.2 可编程延迟模块PDB 129
6.2.1 PDB的基础知识 129
6.2.2 PDB模块概要与编程要点 129
6.2.3 PDB构件设计及测试实例 130
6.3 Flex定时器FTM 135
6.3.1 FTM的基础知识 135
6.3.2 FTM模块概要与编程要点 135
6.3.3 FTM构件设计及测试实例 138
6.4 周期中断定时器PIT 142
6.4.1 PIT的基础知识 142
6.4.2 PIT模块概要与编程要点 143
6.4.3 PIT构件设计及测试实例 144
6.5 低功耗定时器LPTMR 148
6.5.1 LPTMR的基础知识 148
6.5.2 LPTMR模块概要与编程要点 148
6.5.3 LPTMR构件设计及测试实例 148
6.6 载波调制发射器(CMT) 155
6.6.1 CMT的基础知识 155
6.6.2 CMT模块概要与编程要点 156
6.6.3 CMT构件设计及测试实例 157
6.7 实时时钟 160
6.7.1 RTC基础知识 160
6.7.2 RTC模块概要与编程要点 161
6.7.3 RTC构件设计及测试实例 162
6.8 本章小结 166
习题 167
第7章 A/D、D/A、CMP和TSI模块 168
7.1 16位A/D转换模块的驱动构件设计 168
7.1.1 A/D转换的基础知识 168
7.1.2 A/D转换常用传感器简介 169
7.1.3 A/D转换模块概要与编程要点 170
7.1.4 A/D转换驱动构件设计 171
7.1.5 A/D转换驱动构件测试实例 175
7.2 12位D/A转换模块的驱动构件设计 177
7.2.1 D/A转换的基础知识 177
7.2.2 D/A转换模块概要 178
7.2.3 D/A转换驱动构件设计 179
7.2.4 D/A转换驱动设计构件
测试实例 180
7.3 K60的比较器模块的驱动构件设计 182
7.3.1 CMP基础知识 182
7.3.2 CMP模块概要与编程要点 182
7.3.3 CMP驱动构件设计 184
7.3.4 CMP驱动构件测试实例 187
7.4 触摸感应接口 189
7.4.1 TSI基础知识 189
7.4.2 TSI模块概要与编程要点 190
7.4.3 TSI驱动构件设计 190
7.4.4 TSI驱动构件测试实例 194
7.5 本章小结 196
习题 197
第8章 SPI、I2C与I2S 198
8.1 SPI模块的驱动构件设计 198
8.1.1 SPI基础知识 198
8.1.2 K60的SPI模块概要与
编程要点 202
8.1.3 SPI驱动构件设计 204
8.1.4 SPI驱动构件测试实例 210
8.2 I2C模块的驱动构件设计 211
8.2.1 I2C基础知识 211
8.2.2 K60的I2C模块概要与
编程要点 215
8.2.3 I2C驱动构件设计 217
8.2.4 I2C驱动构件测试实例 224
8.3 I2S模块的驱动构件设计 227
8.3.1 I2S基础知识 227
8.3.2 K60的I2S模块概要与
编程要点 229
8.3.3 I2S驱动构件设计 232
8.3.4 I2S驱动构件测试实例 235
8.4 本章小结 236
习题 237
第9章 Flash在线编程 238
9.1 Flash基础知识 238
9.2 Flash模块概要与编程要点 239
9.2.1 K60的Flash模块 239
9.2.2 Flash存储器主要寄存器说明 241
9.2.3 Flash存储器编程要素 243
9.3 Flash在线编程驱动构件设计 247
9.3.1 Flash在线编程驱动构件头
文件 247
9.3.2 Flash模块驱动构件源文件 248
9.4 Flash在线编程驱动构件测试实例 251
9.5 Flash模块保护与加密功能 255
9.5.1 Flash模块的保护功能 255
9.5.2 Flash模块的加密功能 255
9.6 本章小结 257
习题 257
第10章 K60的CAN总线开发方法 258
10.1 CAN总线基础知识 258
10.1.1 CAN总线协议的历史概况 258
10.1.2 CAN硬件系统的典型电路 258
10.1.3 CAN总线的有关基本概念 260
10.1.4 帧结构 263
10.1.5 位时间 266
10.2 FlexCAN模块概述与编程要点 267
10.2.1 FlexCAN模块特征 267
10.2.2 操作模式 268
10.2.3 内存映射/寄存器简介 269
10.2.4 报文缓冲区结构 270
10.2.5 仲裁处理、匹配处理及
报文缓冲区管理 273
10.2.6 FlexCAN驱动构件设计 274
10.3 CAN驱动构件测试实例 283
10.3.1 回环测试 283
10.3.2 非回环测试 286
10.4 本章小结 287
习题 288
第11章 高容量SD存储卡SDHC 289
11.1 SDHC基本概念及硬件特性 289
11.1.1 SD概述 289
11.1.2 SD历史与发展 289
11.1.3 SD的物理特性 290
11.2 SD存储卡系统概念 292
11.2.1 SD总线拓扑结构 292
11.2.2 总线协议 293
11.3 SDHC模块基本编程方法 296
11.3.1 SDHC模块功能简介 296
11.3.2 SD模块编程概要 298
11.4 SD读写驱动构件设计 298
11.4.1 SDHC构件驱动设计 299
11.4.2 DiskIO驱动构件设计 304
11.4.3 SD卡读写测试主程序 313
11.5 本章小结 315
习题 316
第12章 USB 2.0编程 317
12.1 USB基本概念及硬件特性 317
12.1.1 USB概述 317
12.1.2 USB相关基本概念 319
12.1.3 USB的物理特性 323
12.2 USB的通信协议 325
12.2.1 USB基本通信单元:包 325
12.2.2 USB通信中的事务处理 327
12.2.3 从设备的枚举看USB
数据传输 328
12.3 USB模块功能简介 332
12.3.1 K60的USB模块功能简介 332
12.3.2 K60的USB模块主要寄存器
介绍 333
12.4 K60作为USB从机的开发方法 337
12.4.1 PC方USB设备驱动程序的
选择及基本原理 337
12.4.2 PC作为USB主机的程序
设计 340
12.4.3 K60作为USB从机的
构件化设计 341
12.4.4 K60的USB模块测试实例 348
12.5 本章小结 350
习题 350
第13章 基于K60的嵌入式以太网 351
13.1 嵌入式以太网相关基础知识 351
13.1.1 以太网的由来与协议模型 351
13.1.2 以太网中主要物理设备 353
13.1.3 相关名词解释 355
13.2 K60以太网模块概要与编程要点 358
13.2.1 以太网模块引脚及硬件连接 358
13.2.2 以太网物理层收发器EPHY的
编程基础 359
13.3 以太网驱动构件设计 360
13.3.1 物理层构件 360
13.3.2 链路层构件 363
13.4 以太网测试实例 373
13.4.1 第一个构件实例:网络连接 373
13.4.2 第二个测试实例:以太帧的发送
和接收 375
13.4.3 第三个测试实例:链路层ARP
协议编程 378
13.4.4 第四个测试实例:使用ICMP
协议响应Ping请求 380
13.4.5 第五个测试实例:UDP报文的
发送和接收 383
13.4.6 第六个测试实例:TCP报文的
发送和接收 384
13.4.7 第七个测试实例:HTTP协议静
态页面的实现 388
13.5 本章小结 390
习题 391
第14章 系统时钟与其他功能模块 392
14.1 时钟系统 392
14.1.1 时钟系统概述 392
14.1.2 时钟设置方法及实例代码
分析 395
14.2 芯片配置模块 397
14.3 电源管理模块 398
14.3.1 电源模式 399
14.3.2 低功耗唤醒单元 400
14.4 端口控制与中断模块 401
14.4.1 端口控制与中断模块简介 401
14.4.2 功能说明 402
14.5 复位与启动模块 403
14.5.1 复位 403
14.5.2 启动模块 404
14.6 杂项控制模块与交叉开关 404
14.6.1 杂项控制模块 404
14.6.2 交叉开关 404
14.7 看门狗 405
14.7.1 看门狗定时器 405
14.7.2 外部看门狗 411
14.8 本章小结 411
习题 412
第15章 进一步学习指导 413
15.1 关于更为详细的技术资料 413
15.2 关于实时操作系统RTOS 413
15.3 关于嵌入式系统稳定性问题 414
参考文献 416
前 言
嵌入式计算机系统简称为嵌入式系统,其概念最初源于传统测控系统对计算机的需求。随着以微处理器(MPU)为内核的微控制器(MCU)制造技术的不断进步,计算机领域在通用计算机系统与嵌入式计算机系统这两大分支分别得以发展。通用计算机已经在科学计算、通信、日常生活等各个领域产生了重要的影响。在后PC时代,嵌入式系统的广阔应用是计算机发展的重要特征。一般来说,嵌入式系统的应用范围可以粗略分为两大类:一类是电子系统的智能化(如工业控制、汽车电子、数据采集、测控系统、家用电器、现代农业、传感网应用等),这类应用也被称为微控制器领域;另一类是计算机应用的延伸(如平板电脑、手机、电子图书等),这类应用也被称为应用处理器领域。在ARM产品系列中,ARM Cortex-M系列与ARM Cortex-R系列适用于电子系统的智能化类应用,即微控制器领域;ARM Cortex-A系列适用于计算机应用的延伸,即应用处理器领域。不论如何分类,嵌入式系统的技术基础是不变的,即要完成一个嵌入式系统产品的设计,需要有硬件、软件及行业领域相关知识。但是,随着嵌入式系统中软件规模日益增大,对嵌入式底层驱动软件的封装提出了更高的要求,可复用性与可移植性受到特别的关注,嵌入式软硬件构件化开发方法逐步被业界所重视。
本书读者对象
本书以嵌入式硬件构件与底层软件构件设计为主线,按照嵌入式软件工程的要求,以飞思卡尔(Freescale)的Kinetis系列微控制器(ARM Cortex-M4内核)中的K60为蓝本阐述嵌入式系统的软件、硬件设计及基本开发方法。包含通用知识、底层驱动构件基本思想、底层驱动构件源程序、底层驱动构件测试与应用实例等。主要面向高年级本科生或研究生的教学。为适合于教学及篇幅所限,注意以下几点:①从应用角度阐述嵌入式系统通用基础知识,并分散到相应章节中;②本书不阐述汇编指令,一开始就使用C语言编程;③不详细介绍芯片内部寄存器,而是从编程方法角度给出编程要点与底层驱动构件封装与应用方法;④为方便教学与实际应用,书中列出所有底层驱动构件对外接口函数原型;⑤给出所有底层驱动构件的测试用例;⑥提供网上光盘,给出丰富的教学与开发资料,也扩展了纸质版的内容。与本书随后出版的还有我们撰写的另外两本书,一本是《Kinetis微控制器体系结构与开发实践——基于ARM Cortex-M4内核》,给出ARM Cortex-M4的汇编指令分析、Kinetis微控制器的内部寄存器、底层驱动构件封装原理的技术细节及应用注意点等,主要面向工程师,也可供教师及研究生参考,该书不再阐述嵌入式系统的通用基础知识。另一本是《嵌入式实时操作系统MQX应用开发技术》,阐述飞思卡尔的开源嵌入式实时操作系统MQX的应用方法,该书也以Kinetis微控制器为蓝本进行撰写。这三本书形成一个ARM Cortex-M4、Kinetis微控制器、MQX的体系。教育部支持的高校科技竞赛之一“全国大学生飞思卡尔杯智能汽车竞赛”,从2012年开始可以使用Kinetis微控制器,一些学校也以此为蓝本进行嵌入式系统及应用教学,本书的主要目的是配合这两项工作。一些学校智能车比赛使用的是K10芯片,它是K60芯片的子集,K10芯片没有USB、以太网等较为复杂的模块。
本书基本思想
从1991年开始进行单片机与嵌入式系统应用开发至今,作者从事该方向研究与教学工作已有20多年时间。其中1991~1999年期间,使用MCS-51系列MCU。2000年以来,陆续以飞思卡尔(2004年以前是摩托罗拉半导体部)的HC08/S08、S12/S12X、ColdFire等系列MCU为蓝本先后写了一些嵌入式应用技术入门方面的书,得到了许多读者的肯定,深受感动。在写书方面,多年来一直在探索如何能够使读者不误入歧途,如何能够快速入门,如何能够规范编程,如何能够由浅入深、循序渐进,如何能够使读者打好嵌入式硬件与软件基础。为此从以下几点把握写作。
(1)把与芯片无关的通用知识分离出来,从涉及底层编程角度对基本原理进行简明扼要的阐述,分别放入相应章节的前面或网上光盘中。这些知识主要包括通用I/O、串行通信、键盘编码原理、LED扫描原理、SPI、PWM、USB、I2C、CAN、A/D、D/A、嵌入式以太网等,并在各书中基本保持不变。经过多年不断修改完善,可把通用部分斟酌得更好一些。也使得8位、16位、32位的书风格保持一致。新的芯片出来后,书的修改只要更新与芯片的相关部分即可。
(2)硬件相关的部分采用了硬件构件思想,制定了一些基本规范,对底层驱动进行构件化封装,提高了可复用性与可移植性。使程序结构更加清晰,初学者可以“先使用、后理解”。
(3)不论是8位、16位、32位,也不论是哪个芯片,从编程角度来看,把与硬件相关的共性和与硬件无关的共性分别抽象出来,力求做到,硬件相关部分风格一致,硬件无关部分程序一致。这样便于融会贯通,不再纠结于芯片位数、操作系统等问题。
从2010年6月拿到飞思卡尔Kinetis系列参考手册Rev.0开始,至今已近一年半时间,参考手册也升级到Rev.6。期间,苏州大学飞思卡尔嵌入式与物联网研发团队学习消化了1 800多页的参考手册;制作了K60核心板、Kinetis系列写入器;为了与RTOS无缝衔接而修订原来的底层驱动构件规范;按统一规范逐个模块编写底层驱动构件,并设计测试用例;与SD-ExtBoard-D型扩展板对接并编写实验教学程序;在实时操作系统MQX下编写用例,以检验底层驱动构件的无缝衔接。本书就是在这些工作的基础上,结合多年来撰写嵌入式书籍的经验写成的。
关于飞思卡尔微控制器
飞思卡尔是全球最大半导体公司之一,在微控制器领域长期居全球市场领先地位,以高可靠性获得业界的一致赞誉。该公司的微控制器产品系列齐全,由不同位数(如8位、16位、32位等)、不同封装形式(如DIP、SOIC、QFP、LQFP、BGA等)、不同温度范围(0~70℃、40~85℃、40~105℃、40~125℃等)、所含模块不同等构成了庞大的产品系列。飞思卡尔的S08(8位)、S12/S12X(16位)、ColdFire(32位)、ARM Cortex(32位)等系列MCU,广泛地应用于汽车电子、消费电子、工业控制、网络和无线市场等嵌入式系统各个领域。系列齐全的微控制器产品,为嵌入式系统各种应用提供了选择与解决方案,使得用户可以各取所需。不论是电子系统智能化还是计算机应用延伸的嵌入式应用设计,无论需要怎样的系统功能和集成度,总能从飞思卡尔庞大产品系列中选取一款合适的芯片进行应用开发。这正是嵌入式系统产品设计者所期望的,也节省了嵌入式学习者的时间,可以加快开发进度,提高开发质量。
本书特点
2009年以来,作者撰写的《基于32位ColdFire构建嵌入式系统》、《嵌入式技术基础与实践(第2版)》与《嵌入式系统设计实战——基于飞思卡尔S12X微控制器》等书,系统阐述和应用了嵌入式构件开发思想,本书秉承这些工作,按照“通用知识—芯片编程结构概要—基本编程方法—底层驱动构件封装—应用方法与举例”的线条,逐步阐述电子系统智能化嵌入式应用的软件与硬件设计。
(1)把握通用知识与芯片相关知识之间的平衡。书中对于嵌入式“通用知识”的基本原理,以应用为立足点,进行语言简洁、逻辑清晰的阐述,同时注意与芯片相关知识之间的衔接,使读者在更好地理解基本原理的基础上,理解芯片应用的设计,反过来又加深对通用知识的理解。
(2)把握硬件与软件的关系。嵌入式系统是软件与硬件的综合体,嵌入式系统设计是一个软件、硬件协同设计的工程,不能像通用计算机那样把软件、硬件完全分开。特别是对电子系统智能化嵌入式应用来说,没有对硬件的理解就不可能写好嵌入式软件,同样没有对软件的理解也不可能设计好嵌入式硬件。因此,本书注重把握硬件知识与软件知识之间的关系。
(3)对底层驱动进行构件化封装。书中对每个模块均给出根据嵌入式软件工程基本原则并按照构件化封装要求编制底层驱动程序,同时给出详细、规范的注释及对外接口,为实际应用提供底层构件,方便移植与复用,可以为读者进行实际项目开发节省大量时间。
(4)设计合理的测试用例。书中所有源程序均经测试通过,并保留测试用例在本书的网上光盘中,避免了因例程的书写或固有错误给读者带来烦恼。这些测试用例,也将为读者验证与理解带来方便。
(5)网上光盘提供了所有模块完整的底层驱动构件化封装程序与测试用例(包括CW-IDE下程序、IAR-IDE下的程序)。需要使用PC的程序的测试用例,还提供了PC的C#源程序。网上光盘中还提供了分章阅读资料(分章英文资料及中文参考翻译)、CW10.1简明使用方法、IAR简明使用方法、写入器驱动与使用方法、部分工具软件、有关硬件原理图及其他技术资料。网上光盘的版本将会适时更新。
(6)提供硬件核心板、写入调试器,方便读者进行实践与应用。同时提供了核心板与苏州大学飞思卡尔嵌入式中心设计制作的SD-ExtBoard-D型扩展板的对接,以满足教学实验需要。
本书主要内容
本书以飞思卡尔的ARM Cortex-M4内核的Kinetis系列微控制器为蓝本阐述嵌入式系统的软件与硬件设计。全书共15章,其中第1章为概述,简要阐述嵌入式系统的知识体系、学习误区、学习建议和基于硬件构件的嵌入式系统开发方法。第2章给出ARM Cortex-M4简介及K60硬件最小系统。第3章给出第一个样例程序及开发环境下的工程组织方法,完成第一个K60工程的入门任务。第4章阐述串行通信接口UART,并给出第一个带中断的实例。1~4章囊括了学习一个新MCU完整要素的入门环节。5~14章分别给出了GPIO的应用实例(键盘、LED与LCD)、定时器、A/D、D/A、比较器、TSI、SPI、I2C、I2S、Flash、CAN、SDHC、USB、以太网及K60其他模块等。第15章给出了进一步学习指导。
本书提供了网上光盘,内含所有底层驱动构件源程序、测试实例、辅助阅读材料、教学课件、相关芯片资料及常用软件工具。网上光盘下载地址:http://sumcu.suda.edu.cn。
作者分工与致谢
本书由王宜怀负责编制提纲和统稿工作,并撰写第1~6章、第15章。吴瑾撰写7~10章、蒋银珍撰写11~14章。苏州大学嵌入式系统与物联网方向研究生朱乐乐、苏勇、石晶、姚丹丹、李翠霞、周杰、秦保波、陈爱兵等协助书稿整理及程序调试工作,他们卓有成效的工作,使本书更加实用。飞思卡尔半导体有限公司的Andy Mastronardi先生、殷刚先生、马莉女士一直关心支持苏州大学飞思卡尔嵌入式中心的建设,为本书的撰写提供了硬件及软件资料,并提出了许多宝贵建议。飞思卡尔半导体有限公司的许多技术人员提供了技术支持。电子工业版社的田宏峰先生为本书的出版做了大量细致的工作,在此一并表示诚挚的谢意。
鉴于作者水平有限,书中难免存在不足和错误之处,恳望读者提出宝贵意见和建议,以便再版时改进。
王宜怀
2012年2月于苏州大学
还没人赞这篇日记