《嵌入式设备驱动开发精解》——第1章 关于本教程 1.1 本书内容的组织

第1章 关于本教程

本书主要是针对从事嵌入式软件开发人员编写的,而嵌入式开发主要有两个方向,一个是从事嵌入式设备上应用程序的开发;另一个是驱动程序的开发,本书的方向更加侧重于驱动程序的开发。当然,本书对于从事应用程序的开发人员也是不错的参考,通过它可以很好地了解一个嵌入式设备是如何协调各种硬件一起工作的,对更好地进行应用层的开发是很有意义的。在一个具体的嵌入式产品中,上层软件主要是指具体的应用类程序,如可以在某一特定的硬件平台上开发一个游戏、开发一台照相机、开发一台录像机、开发一款E-mail收发程序等,这些具体的应用都非常直观地展现给了用户。而驱动程序的开发主要是针对硬件层面的设备进行软件开发,具体而言就是,为某一具体的硬件编写驱动程序,让这些硬件外设可以在特定的硬件平台上正确、稳定地工作,如使用手机上的照相机、LCD显示屏、键盘以及MP3、MP4多媒体功能,要使这些设备工作,就需要先给照相机(Camera Sensor)、LCD、多媒体等这些硬件编写驱动程序,让它们工作起来,然后结合上层的相关应用程序才组成了一个完整的应用程序。

本教程的潜在读者对象是谁?本教程主要是针对想从事嵌入式设备的驱动开发人员的。而具体到什么是驱动开发,简单意义上就是给某个设备编写驱动程序,并使之融合到整个系统中来。希望读完本书能让您对于嵌入式开发有一个全新的认识。

下面我们以一部手机为例来看一下驱动开发的工作内容是什么。我们知道一部手机包括很多的元器件,如屏幕(LCD)、按键、触摸屏、耳机、收音机、照相机、录像机、录音机、T卡、麦克风(microphone)等。这些都是可以直观看到和触摸到的,而在手机的内部还有ARM CPU、Memory(内存系统)、Flash(NAND Flash 或者Nor Flash存储系统),电源管理单元,处理射频、音频的DSP、USB、串口等。所有这些元件依靠印刷电路板(PCB)连接起来,然后通过一款巨大的软件工程把这些设备组织并管理起来,最后就变成了使用的手机了。所以说,软件是灵魂,硬件是躯体,两者缺一不可。

设备驱动开发的工作就是为这些设备编写程序,让这些设备准确地工作,并融入到手机系统中来,例如LCD,就要为不同厂商的LCD编写适合某个手机开发平台的驱动程序,这样不同的LCD才能工作在不同的平台上,其他设备类似,但是驱动的工作并不局限于此。对于整个系统架构理解最深的也是驱动开发人员,只有对整个系统有透彻的、完整的理解才能开发出一个健全、健壮的系统。

本教程主要内容包括手机驱动开发设计中用到的常用外设的驱动程序的开发,包括如何写这些驱动程序,如何去调试这些设备,出了问题如何进行跟踪定位。我们知道驱动程序的调试不仅仅是软件方面的,同时也会涉及硬件方面的内容,这就要求我们具有一定的硬件知识,最少也能读懂硬件原理图,能够根据原理图编写程序,能够拿起万用表、示波器这些常用硬件信号电性能测量设备进行硬件的调试。往往一个设备的成功运行都是建立在反复的测试和测量的基础上完成的,特别是设备间联调的时候,例如,手机系统要外加一个蓝牙、一个WIFI、一个CMMB数字电视等。这个时候就需要我们和供应商的FAE(Field Application Engineer现场支持工程师)进行联调,这种联调工作是对我们嵌入式知识体系的一个综合考量,而往往这个时候板子还没有做好,只能通过飞线进行调试,所以调试环境恶劣,那么如何开始进行调试呢?这个疑问我们会在后面针对每一类设备进行详细讲解。

1.1 本书内容的组织

本书从嵌入式开发入门的角度进行阐述,首先假设读者具有一定的C语言基础,一些嵌入式方面的知识。在第1章对什么是驱动开发进行了阐述,读者可以对驱动开发有一个基本的概念上的认识。第2章讲述了什么是嵌入式开发以及学习嵌入式开发需要掌握的基本知识及要求。第3章建立自己的Windows系统下的交叉编译环境,让读者可以在Windows下进行交叉编译。第4章阐述该交叉编译环境的工作原理及使用方法。第5章和第6章主要阐述ARM CPU的工作机制以及从开发者的角度是如何看待CPU的。第7章使用很小的篇幅阐述了ARM的汇编知识,达到认识基本ARM指令即可的要求。第8章阐述ARM的体系结构及各种关于ARM CPU使用的相关知识。第9章阐述硬件通信信号和时序的概念,让读者了解硬件是如何通过信号进行通信的。第10章阐述GPIO的配置及使用。第11章阐述ARM CPU中断配置及其使用。第12章阐述如何让LCD工作起来。第13章阐述NAND Flash的使用,其中包括了16bit和8bit Flash的使用。第14章结合时序图阐述了IIC接口的原理及使用。第15章也是结合时序图阐述了SPI接口的原理及使用。第16章阐述了EBI总线的使用。第17章阐述了LAUTERBACH公司的TRACE32的使用。第18章通过举例阐述了如何读懂硬件原理图。通过这些章节可以让读者了解一个完整的嵌入式系统开发需要具备的各个知识点,可以沿着这些知识点进行更深入的学习相关开发技术。

时间: 2024-12-04 01:54:53

《嵌入式设备驱动开发精解》——第1章 关于本教程 1.1 本书内容的组织的相关文章

《嵌入式设备驱动开发精解》——1.2 关于本教程涉及的实例

1.2 关于本教程涉及的实例 嵌入式设备驱动开发精解在后续的章节中会经常提及实例这个词,此处的实例指的是我们进行开发实验的一整套包括软件.硬件的整体开发和调试环境,软件方面的开发环境可以依据后续章节中的关于如何建立自己的开发环境进行搭建,有了软件开发环境,同样需要有一套硬件开发板来支撑后续程序的开发调试与功能的验证,这里选用的是一套手机开发的硬件平台,当然也可以使用一些ARM 开发板作为硬件环境,因为我们建立的开发环境只要稍做修改就可以适配各种编译器.各种CPU,是不依赖于某一类CPU的. 那么

《嵌入式设备驱动开发精解》——2.4 建立一个具体的嵌入式开发的小项目

前言 嵌入式设备驱动开发精解本书的编写主要是针对从事嵌入式软件开发人员.本书的内容主要涵盖ARM CPU以及各种常用外部设备驱动开发的方方面面,包括各种硬件接口.硬件接口协议说明以及各种外设的使用及调试方法,特别是对于开发调试过程中可能遇到的各种问题以及如何解决这些问题进行了讨论,同时包括但不限于软件方面的调试方法与硬件方面的调试方法等. 从事嵌入式驱动开发的工作主要就是与各种外设.外设接口以及OS(操作系统)打交道,这是一个会涉及非常多的知识点的.系统级的软件开发与设计过程. 狭义上的嵌入式驱

《嵌入式设备驱动开发精解》——1.1 本书内容的组织

1.1 本书内容的组织 嵌入式设备驱动开发精解本书从嵌入式开发入门的角度进行阐述,首先假设读者具有一定的C语言基础,一些嵌入式方面的知识.在第1章对什么是驱动开发进行了阐述,读者可以对驱动开发有一个基本的概念上的认识.第2章讲述了什么是嵌入式开发以及学习嵌入式开发需要掌握的基本知识及要求.第3章建立自己的Windows系统下的交叉编译环境,让读者可以在Windows下进行交叉编译.第4章阐述该交叉编译环境的工作原理及使用方法.第5章和第6章主要阐述ARM CPU的工作机制以及从开发者的角度是如何

《嵌入式设备驱动开发精解》——1.3 计算机配置需求

1.3 计算机配置需求 嵌入式设备驱动开发精解能够运行实例及运行编译开发环境的计算机配置要求如下. 操作系统:Windows XP/Windows 7(版本不限).硬盘空间:大于等于4 GB,主要用于安装开发环境所需软件.内存:大于等于512 MB.

《嵌入式设备驱动开发精解》——第2章 如何开始嵌入式开发

第2章 如何开始嵌入式开发 嵌入式设备驱动开发精解本文仅用于学习和交流目的,不代表异步社区观点.非商业转载请注明作译者.出处,并保留本文的原始链接.

《嵌入式设备驱动开发精解》——2.2 充分利用现有的硬件资源

2.2 充分利用现有的硬件资源 嵌入式设备驱动开发精解拥有一个开发板对于学习嵌入式开发是必不可少的,如何选择一个开发板来进行开发实验,这个是会让很多人头疼的问题.因为大家会在开发板的价格上犹豫是选择ARM7.还是ARM9,甚至是选择Cortex A8.Cortex A9之间纠结半天.另外就是开发板的利用率也是个很大的问题,我想很多人基本上是把实例跑一遍板子也就束之高阁了,利用率确实不高.其实,对于嵌入式开发的学习,买一块ARM7或者ARM9的.接口稍微丰富一点的.经济型的开发板就可以了,不需要考

《嵌入式设备驱动开发精解》——2.1 什么是嵌入式系统

2.1 什么是嵌入式系统 嵌入式设备驱动开发精解在进行嵌入式开发的讨论之前,先从概念这一层面来认识什么是嵌入式系统.从宏观上来说,一个嵌入式系统一般是一个被特意设计来做某一个或某几个特定功能的并且可能需要具备实时计算要求的系统.简单的嵌入式系统比如常见的空调.洗衣机等家用产品,这些产品就是为特定目的而设计的,它们并没有实时计算的需求,只要能把事情做完目的也就达到了.而一些涉及通信.安全.交通的嵌入式设备就必须有实时计算的要求,如手机和网络之间的通信.现代汽车的电子辅助系统都要求具有实时计算的能力

《嵌入式设备驱动开发精解》——导读

前言 嵌入式设备驱动开发精解本书的编写主要是针对从事嵌入式软件开发人员.本书的内容主要涵盖ARM CPU以及各种常用外部设备驱动开发的方方面面,包括各种硬件接口.硬件接口协议说明以及各种外设的使用及调试方法,特别是对于开发调试过程中可能遇到的各种问题以及如何解决这些问题进行了讨论,同时包括但不限于软件方面的调试方法与硬件方面的调试方法等. 从事嵌入式驱动开发的工作主要就是与各种外设.外设接口以及OS(操作系统)打交道,这是一个会涉及非常多的知识点的.系统级的软件开发与设计过程. 狭义上的嵌入式驱

《嵌入式设备驱动开发精解》——1.2 基于ARM处理器的嵌入式Linux系统

1.2 基于ARM处理器的嵌入式Linux系统 嵌入式Linux应用开发完全手册 1.2.1 ARM处理器介绍 1.ARM的概念 嵌入式处理器种类繁多,有ARM.MIPS.PPC等多种架构.ARM处理器的文档丰富,各类嵌入式软件大多(往往首选)支持ARM处理器,使用ARM开发板来学习嵌入式开发是个好选择.基于不同架构CPU的开发是相通的,掌握ARM架构之后,在使用其他CPU时也会很快上手.当然,作为产品进行选材时,需要考虑的因素就非常多了,这不在本书的介绍范围之内. ARM(Advanced R