随着手持类设备的普及,嵌入式应用技术得到了快速发展。嵌入式应用系统由三层结构组成,分别为硬件层、系统层和应用层。其中,硬件层主要涉及CPU的选型及板级电路的设计;系统层主要涉及操作系统的移植及驱动程序的设计,通过抽象过程完成硬件层与应用层的隔离;应用层建立在系统层之上,主要完成用户应用程序的编写和调试。
针对三层结构的特点,本书以嵌入式应用系统设计过程为主干线,按照系统设计流程组织教材的框架结构。主要包含嵌入式CPU的组成结构和接口电路设计,BootLoader的定制,Linux操作系统的裁剪和移植,Yaffs文件系统的定制,驱动案例的设计,物联网应用系统工程案例的设计,全书共分8章。
第1章 Cortex-A8处理器。作为嵌入式应用系统的关键组成部分,Cortex-A8处理器已经被广泛应用于移动终端、掌上电脑以及其他消费电子设备。本章介绍了Cortex-A8处理器的内部结构和各组成部分功能。
第2章 汇编语言。本章侧重于Linux环境下的应用,介绍了ARM汇编语言指令集、GNU ARM汇编器汇编命令以及汇编语言程序设计基础。
第3章 S5PV210概述。本章主要讲述S5PV210芯片的存储结构、寄存器结构和GPIO结构。以UART为例介绍了S5PV210内部接口控制器的使用方法,并介绍了该芯片上电复位后的启动流程,在案例一节中介绍了基于S5PV210裸机应用程序的开发过程。
第4章 U-Boot。基于Cortex-A8硬件平台运行的嵌入式Linux系统软件平台可以分为4个部分:①引导加载程序(BootLoader),依赖于所运行的硬件平台;②Linux内核,依据应用需求,需要通过裁剪和移植完成内核的定制;③文件系统,包括根文件系统和Yaffs文件系统;④嵌入式GUI和用户应用程序。本章在基于S5PV210微处理器的硬件平台上,分析了U-Boot启动流程。在使用U-Boot引导嵌入式Linux操作系统的过程中,通过工程案例详细介绍了在指定硬件和软件平台条件下,完成U-Boot的定制过程。
第5章 Linux内核移植。本章主要介绍了嵌入式Linux系统的构建过程。通过学习本章内容,能够对嵌入式Linux系统的结构有一个清晰认识,并掌握基于Tiny210硬件平台的嵌入式Linux操作系统搭建过程。
第6章 嵌入式Linux程序设计。嵌入式硬件设备需要专用的驱动程序,驱动程序需要通过特定的方法和步骤添加到嵌入式操作系统中,应用层需要编写程序调用驱动程序才能完成对系统硬件的操作。本章介绍了基于ARM-Linux驱动程序的开发、驱动程序的加载方法和基于驱动程序的应用程序开发。
第7章 图形用户接口Qt。Qt是一个基于C++图形用户界面的应用程序开发框架,本章首先介绍了Qt应用程序的开发环境,随后以案例形式介绍基于嵌入式硬件平台的Qt应用程序编写方法。
第8章 嵌入式物联网应用系统设计。本章通过实际案例介绍基于Cortex-A8微处理器的嵌入式应用系统设计,主要涉及智能家居、物联网应用云平台搭建和访问等领域。
书中涉及Windows和Linux两个操作系统,在描述两个系统中的文件路径时,使用“\”符号表示Windows环境下的文件路径,使用“/”符号表示Linux环境下的文件路径。
本书提供配套的电子课件及相关配套资源,主要包括:教学课件PPT和实验指导书,嵌入式系统开发过程中常用到的软件工具包,各章案例的程序源代码,本书所使用的硬件平台软件系统文件以及Cortex-A8系统更新和系统文件烧写说明。
书中各章节提供了大量工程案例,其中实践部分内容依托于北京赛佰特科技有限公司的CBT-Super IOT型全功能物联网教学科研实验平台,唐冬冬为本书提供了丰富的软硬件资料及技术支持。
本书应用例程和教学参考讲义,请读者到华信教育资源网注册后免费下载(www.hxedu. com.cn)。
本书可作为高等院校电子类、通信类、自动化类和计算机类等各专业“嵌入式应用系统”课程的教材,也可供从事嵌入式应用系统开发工程技术人员参考。
本书主要由姜余祥、杨萍和邹莹编写。其中,第1、2、3、4章由姜余祥编写,第5、6、7章由杨萍编写,第8章由邹莹编写。胡字滢、李晓峰参与了本书的校对以及配套电子课件和实验指导书的编写。李强和赵永永同学对本书所提供的工程案例中的程序进行了调试和整理工作。
本书在编写过程中,感谢电子工业出版社工作人员的大力支持,尤其要感谢我的家人,是她们多年来的理解、帮助和支持,才能够完成本书的撰写工作。
在此向所有关心和支持本书编写工作的人士表示衷心的感谢。
由于目前嵌入式应用领域的迅速发展,且作者的实际工作经验及水平有限,书中会有许多不足之处,望读者不吝指正。