在当前嵌入式系统的低端应用领域,以ARM CortextM0为核心的芯片有着良好的市场前景。世界各大半导体厂商(如NXP、Freescale、Atmel等)都陆续推出了基于CortextM0内核的系列芯片。随着此类芯片的大量普及,其价格也越来越低,让广大开发者以8位芯片的价格获得了32位芯片的性能,大有取代传统低端芯片之势,所以,学习和使用CortextM0开发的人也越来越多,市场潜力较大。
2010年,恩智浦(NXP)公司推出的基于ARM CortexM0内核的LPC1100系列芯片具有非常出色的性价比,随后又不断扩展升级,迅速引起业界的广泛关注。本书选取目前较为常用的LPC1114芯片,并把它当作一个32位的高级单片机来进行分析和讨论,本书在结构上也采用了传统单片机教材的形式。在编写过程中,均以官方提供的英文版数据手册为依据,书中所有引用的表格、图片、数据等都来自官方手册,但引用并非简单地对手册进行罗列翻译,而是在理解内容的基础上,结合初学者的认知规律和作者多年的教学实践经验,通过学习者易于接受的形式进行讲述,可提高学习兴趣,减小挫折感。书中讲述的内容符合初学者的认知规律,采取循序渐进的方式,力求解决在学习中可能遇到的问题,突出实际应用。
本书选取国内流行的MDKARM作为LPC1114的开发环境,用实例的方式讲述了开发中程序结构之间的关系,并详细剖析了头文件的用法,让读者不仅知其然还知其所以然。然后着重讲述LPC1114内部各组成模块的功能及实际应用,包含GPIO端口、时钟源、NVIC中断系统、系统定时器、定时器/计数器、串口、A/D转换、I2C接口、SPI接口、看门狗、功耗管理及Flash编程固件等内容。在每个章节的结尾,都会给出一个与该部分内容密切相关的实例,让学习者容易理解和掌握所讲授的内容,以此来提升学习效果。全书面向实际开发应用,注重对细节的分析,力求让读者能容易上手,快速掌握CortexM0的开发过程。
对于处理器的学习,从本质上来说就是学习处理器中各个寄存器的原理及其使用方法,为此本书讨论了LPC1114所用到的几乎所有寄存器,但并没有直接罗列所有的寄存器,而是把寄存器的学习放到了实际的例子当中,用到哪个就讨论哪个,这样能有效地避免单纯学习寄存器带来的枯燥。书中对寄存器的描述都先引用官方原文,然后再对其内容进行详细讨论。这样做不仅能提高资料的权威性,还可以避免翻译和理解上的歧义,有利于读者进行学习和参考。即便对于开发人员,本书也可作为资料手册进行查询,而不必再去翻阅官方数据手册。
书中所有程序代码及教学课件,都可以到清华大学出版社的官方网站上进行下载。本书由云南师范大学信息学院冯迅编写,希望能对有志于学习CortexM0开发的读者起到积极的帮助作用。在此,对清华大学出版社提供的大力支持表示由衷的感谢!由于编者知识局限和时间仓促,书中不足之处在所难免,恳请广大读者批评指正!
冯迅
2017年6月