图书前言

ARM公司出品了众多内核,如流行的ARM7、ARM9和ARM11内核,而目前ARM公司主推的内核为Cortex系列内核,这个系列又分为M系、R系和A系,其中A系是高性能系列,支持ARM、Thumb和Thumb2指令集,主要针对带有操作系统的智能平板电脑; R系为普通嵌入式内核,支持ARM、Thumb和Thumb2指令集,用于嵌入式系统; M系为低功耗系列,仅支持Thumb2指令集,目前有CortexM0、M0+、M1、M3和M4,用于需要快速中断的嵌入式实时应用系统中。

CortexM3是最早推出的Cortex系列内核,于2004年诞生,5年以后,ARM公司推出了可商用的CortexM0内核,之后,在CortexM0基础上推出了能耗进一步优化的CortexM0+内核(ARM公司公布的功耗数据为11.2μW/MHz),被誉为全球功耗最低的微内核。CortexM系列的内核中,M0和M0+系列主要针对控制领域,涵盖了传统8051系列单片机的应用领域,比传统8051系列单片机在处理速度、功耗、中断反应能力、编程与调试等诸多方面都有很大优势; M3系列针对控制领域中的高端实时应用领域,具有控制和数字信号处理能力,除了可用于传统8051系列单片机的应用领域外,还可用于DSP处理器应用的领域; M4系列主要针对高速控制、语音信号处理和数字信号处理领域,涵盖了传统网络控制芯片和DSP处理器的应用领域。

NXP(恩智浦)公司是全球最早推出CortexM系列内核微控制器的公司之一,目前主要产品有以LPC1115微控制器为代表的LPC11XX和LPC12XX系列(CortexM0内核)、以LPC812微控制器为代表的LPC8XX系列(CortexM0+内核)、以LPC1788微控制器为代表的LPC13XX、LPC17XX和LPC18XX系列(CortexM3内核)、以LPC4088微控制器为代表的LPC40XX系列(CortexM4内核)和以LPC4357微控制器为代表的LPC43XX系列(CortexM4和M0双核心)。目前,NXP公司是CortexM系列微控制器出品最多、型号最全和应用最广的公司之一,NXP公司的CortexM系列芯片都体现了低功耗、易使用和高性能的特点。

本书基于ARM CortexM3内核LPC1788微控制器和Keil MDK集成开发环境,详细介绍芯片级和μC/OSⅡ操作系统级的应用程序设计技术。

第1章介绍LPC1788芯片的内部架构、存储器配置和异常与中断等内容; 第2章介绍LPC1788典型硬件电路系统设计以及Keil MDK集成开发环境应用方法; 第3~8章依次介绍LPC1788的GPIO口、NVIC中断、定时器、串口、ADC、同步串行口等片上外设的工作原理和程序设计方法; 第9~11章依次介绍了3个典型应用实例,即ZLG7289B键盘与数码管控制实例、温度传感器DS18B20应用实例和LCD屏显示技术实例; 第12~15章依次介绍了μC/OSⅡ的任务管理与组件应用技术,重点介绍了信号量、互斥信号量、消息邮箱、消息队列、事件标志组和软定时器的应用方法,这部分内容不是自成体系的,需要结合参考文献[8,9,11]开展研究与学习。

 本书的教学思路

本书根据作者多年的教学讲义整理而成,理论课时为32学时,实验课时为16学时,开放实验课时为16学时。如果用作大学本科教材,则理论课时宜为32~48学时,建议讲述第1~11章内容,按书中章节顺序讲述; 实验学时建议为16~32学时。书中第9~11章可用于课程设计,第12~15章内容面向有嵌入式操作系统基础的学生开展教学与讨论。针对教师教学研究活动,作者提供更多的交流和技术支持。

建议理论教学与实验教学同步进行。理论教学过程中,可设置2~4学时讨论课,或安排学生分组作学习交流主题报告。实验教学可设置3~4个基础性实验和1~2个设计性实验,可结合全国大学生电子设计大赛的题目开展拓展性实验工作,并且应以学生自己动手为主。

ARM CortexM3嵌入式开发与实践——基于LPC1788和μC/OSⅡ

对于自学本书的嵌入式爱好者而言,要求至少具有数字电路、模拟电路、C语言程序设计等课程的基础知识,并建议在学习过程中设计一套LPC1788学习板配套学习,本书的每个实例都是完整的,可在清华大学出版社网站本书页面下载,但是强烈建议读者在学习过程中自行输入实例代码,遇到问题可通过Email:zhnyong@21cn.com与作者探讨。

 本书的特色

本书具有以下4个方面的特色: 

其一,详细讲解了基于CortexM3核心的LPC1788微控制器存储配置、异常(或中断)向量表以及片上各种外设,讲述了LPC1788微控制器片上外设的访问方法。

其二,详细描述了基于LPC1788的典型应用电路,这些电路涉及了LED灯、串口、用户按键、ADC、数码管、复位电路、测温电路、JTAG(SWD)、SDRAM、W25Q64存储器、TFT LCD屏等。

其三,实例丰富,通过完整的实例详细阐述了芯片级和μC/OSⅡ系统级的程序设计方法,对基于LPC1788微控制器的嵌入式软件设计具有较强的指导作用。

其四,坚持“授人以渔,而非授人以鱼”的原则,每章小结中都提出了用于复习、加深和扩展本章知识的综合练习,成功地完成这些程序练习,就能体现读者真正掌握了本章内容,从而可以学习下一章的内容。

 致谢

感谢NXP公司为本书编写提供了大量技术支持,要特别感谢辛华峰、王朋朋和张宇等专家的指导和对初稿的建设性意见,使得本书理论与工程实践能紧密结合,成为一本兼有教学、科研和工程应用价值的针对性很强的参考书。

作者还要感谢北京博创兴盛陆海军总经理对本书出版的关心和支持。

感谢我的爱人贾晓天老师在繁忙的工作之余阅读了本书初稿,并提出了宝贵建议。

还要特别感谢阅读了作者已经出版的图书的读者反馈的宝贵意见,使得本书的写作按照“认识→应用→思考→提升”的思路进行,不仅教学更加方便,而且自学门槛较以往的书大大降低。

最后,特别感谢清华大学出版社工作人员为本书出版所做的细致工作。由于作者水平有限,书中难免会有纰漏之处,敬请专家和读者批评指正。

 免责声明

知识的发展和科技的进步是多元的。本书内容上广泛引用的知识点均罗列于参考文献中,主要为LPC1788用户手册、LPC1788芯片手册、CortexM3技术手册、嵌入式实时操作系统μC/OSⅡ、Keil MDK和IAR EWARM集成开发环境等内容,所有这些引用内容的知识产权归相关公司所有,作者保留其余内容的所有权利。本书内容仅用于教学目的,旨在推广CortexM3核心LPC1788微控制器、μC/OSⅡ、Keil MDK和EWARM集成开发环境等,禁止任何单位或个人摘抄或扩充本书内容用于出版发行,严禁将本书内容用于商业应用。

张勇

2015年1月

于江西财经大学枫林园