《嵌入式系统开发实用教程》[75M]百度网盘|pdf下载|亲测有效
《嵌入式系统开发实用教程》[75M]百度网盘|pdf下载|亲测有效

嵌入式系统开发实用教程 pdf下载

出版社 清华大学出版社京东自营官方旗舰店
出版年 2013-09
页数 390页
装帧 精装
评分 9.3(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供嵌入式系统开发实用教程电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

内容简介

  《嵌入式系统开发实用教程/高职高专计算机专业精品教材》介绍了嵌入式系统软件开发的相关技术,并以嵌入式软件的基本开发技术为主线,以ARM+Linux为基本架构,系统讲述了嵌入式软件开发的基本知识、基本流程和基本方法。采用理论和实例相结合的编写方法,内容实用、结构清晰、图文并茂、通俗易懂,力求使读者轻松学习嵌入式软件开发技术。本书共8章,主要内容包括:嵌入式系统开发技术基础、嵌入式系统开发环境、嵌入式软件开发基础、引导加载程序BootLoader的移植、Linux在ARM平台的移植、根文件系统、嵌入式Linux设备驱动程序开发、嵌入式Linux的图形用户接口。
  《嵌入式系统开发实用教程/高职高专计算机专业精品教材》的主要特点是通过模拟器(QEMU、SkyEye)学习嵌入式软件系统,并详细介绍基于SkyEye的移植三部曲(U—Boot、内核、文件系统)。
  《嵌入式系统开发实用教程/高职高专计算机专业精品教材》适合于高职高专院校、成人高等院校、本科院校举办的职业技术学院电子信息类专业教学使用,也可用于技能型紧缺人才的培养。《嵌入式系统开发实用教程/高职高专计算机专业精品教材》适合刚接触嵌入式软件开发的人员,能够帮助读者快速入门。

内页插图

目录

第1章 嵌入式系统开发技术基础
1.1 嵌入式系统概述
1.1.1 嵌入式系统的定义、分类与特点
1.1.2 嵌入式系统的组成
1.1.3 嵌入式系统的应用领域及发展趋势
1.2 嵌入式处理器
1.2.1 嵌入式处理器的分类与特点
1.2.2 ARM微处理器简介
1.2.3 ARM微处理器基础
1.2.4 ARM微处理器的指令系统
1.2.5 ARM内存管理单元
1.3 嵌入式操作系统
1.3.1 嵌入式操作系统的种类、特点与发展
1.3.2 嵌入式Linux概述
1.4 嵌入式系统的结构、开发流程、开发要点
1.4.1 嵌入式系统的结构
1.4.2 开发模式及开发流程
1.4.3 嵌入式Linux系统开发要点
本章小结
习题1

第2章 嵌入式系统开发环境
2.1 嵌入式系统开发环境简介
2.2 0K2440-Ⅱ开发平台介绍
2.2.1 0K2440-11开发板构成
2.2.2 0K2440-Ⅱ开发板硬件资源
2.2.3 实例——0K2440-Ⅱ开发板的基本使用
2.2.4 实例——引导Windows CE
2.2.5 实例——引导Linux
2.3 交叉编译的基本知识
2.3.1 ARM编译环境
……

第3章 嵌入式软件开发基础
第4章 引导加载程序BootLoader的移植
第5章 Linux在ARM平台的移植
第6章 根文件系统
第7章 嵌入式Linux设备驱动程序开发
第8章 嵌入式Linux的图形用户接口
附录 资源及学习网站
参考文献

精彩书摘

  2.块设备(blockdevice)
  块设备是文件系统的宿主,如磁盘,也可以像文件一样被访问。Linux用blkdevs向量表维护已经登记的块设备文件。它像chrdevs向量表一样,使用设备的主设备号作为索引。它的条目也是device—struct数据结构。与字符设备不同的是,块设备分为SCSI类和IDE类。向Linux内核登记并向核心提供文件操作。可以参考fs/devices.c。
  块设备驱动程序和字符设备驱动程序的主要区别是:对字符设备发出读、写请求时,实际的硬件I/O操作就发生了;块设备则不然,它利用一块系统内存作为缓冲区,读/写时,它首先察看缓冲区的内容,如果缓冲区的数据能满足用户的要求,就从缓冲区中返回请求的数据;否则,就调用请求函数进行实际的I/O操作。块设备主要针对磁盘等慢速设备,以免耗费过多的CPU等待时间。块设备主要有硬盘、光盘驱动器等。可以查看文件/proc/devices。
  注意:用户进程是通过设备文件与实际的硬件进行通信。每个设备文件都有文件属性,c表示字符设备,b表示块设备。每个文件都有2个设备号,第1个是主设备号,标识驱动程序;第2个是从设备号,标识使用同一个设备驱动程序的不同硬件设备。设备文件的主设备号必须与设备驱动程序在登记时申请的主设备号一致,否则用户进程将无法访问驱动程序。
  3.网络设备(netdevice)
  网络设备不同于字符设备和块设备,它面向的上一层不是文件系统而是网络协议层,是通过BSD套接口访问数据。网络设备在特定的数据结构中进行注册,以便与外界交换数据包时被调用。网络设备在Linux中做专门的处理。Linux的网络系统主要是基于BSDUNIX的Socket机制。在系统和驱动程序之间定义有专门的数据结构(sk—buff)进行数据的传递。系统里支持对发送数据和接收数据的缓存,提供流量控制机制,提供对多协议的支持。
  4.杂项设备(miscdevice)
  杂项设备是在嵌入式系统中用得比较多的一种设备驱动,在Linux内核include/linux目录中有miscdevice.h文件,要把miscdevice从设备定义在该文件中。由于这些字符设备不符合预先确定的字符设备范畴,所有这些设备采用主设备号10,一起归于杂项设备。7.1.3Linux设备驱动程序概述
  1.Linux的设备驱动程序的组成
  Linux的设备驱动程序可以分为3个主要组成部分。
  (l)自动配置和初始化子程序。负责监测所要驱动的硬件设备是否存在和能否正常工作。如果该设备正常,则对这个设备及其相关的设备驱动程序需要的软件状态进行初始化。这部分驱动程序仅在初始化时被调用一次。
  (2)服务于I/O请求的子程序,又称为驱动程序的上半部分,与设备无关,这部分根据I/O请求,通过特定的设备驱动程序接口来与设备进行通信。调用这部分程序是由于系统调用的结果。这部分程序在执行时,系统仍认为是与进行调用的进程属于同一个进程,只是由用户态变成了核心态,具有进行此系统调用的用户程序的运行环境,因而可以在其中调用sleep()等与进行运行环境有关的函数。
  (3)中断服务子程序,又称为驱动程序的下半部分,与设备有关,常称为设备驱动程序,它直接与相应的设备进行通信,并向上半部分提供一组访问接口。在Linux系统中,并不是直接从中断向量表中调用设备驱动程序的中断服务子程序,而是由Linux系统来接收硬件中断,再由系统调用中断服务子程序。中断可以在任何一个进程运行时产生,因而在中断服务程序被调用时,不能依赖于任何进程的状态,也就不能调用任何与进程运行环境有关的函数。因为设备驱动程序一般支持同一类型的若干设备,所以一般在系统调用中断服务子程序时,都带有一个或多个参数,以唯一标识请求服务的设备。
  2.Linux中的中断处理程序
  Linux的中断处理程序很有特色,一个中断处理程序分为两部分:上半部(TopHalf)和下半部(BottomHalf)。之所以会有上半部和下半部之分,是为了提高中断处理的效率。
  上半部的功能是登记中断。当一个中断发生时,它就把设备驱动程序中的中断处理程序的下半部挂到该设备的下半部执行队列中,然后等待新的中断的到来。这样一来,上半部执行的速度就会很快,就可以接受更多它所负责的设备产生的中断。上半部之所以要快,因为它是完全屏蔽中断,如果它不执行完,其他中断就不能被及时处理,只能等到这个中断处理程序执行完毕。
  但是,有些中断事件的处理比较复杂,所以中断处理程序必须多花一点时间才能把事情做完。可是怎样才能在短时间内完成复杂的处理任务呢?此时Linux引入了下半部的概念。下半部和上半部最大的不同是下半部是可中断的,而上半部是不可中断的。
  下半部几乎做了中断处理程序所有的事情,因为上半部只是将下半部排到了它们所负责设备的中断处理队列中去,然后就什么都不管了。下半部所负责的工作是查看设备,以获得产生中断的事件信息,并根据这些信息(一般通过读设备上的寄存器得来)进行相应的处理。
  由于下半部是可中断的,所以在它运行期间,如果其他设备产生了中断,这个下半部可以暂时被中断,等到那个设备的上半部运行完后,再运行它。
  注意:如果一个设备中断处理程序正在运行,无论它是在运行上半部还是下半部,只要中断处理程序还没有处理完,在这期间该设备产生的新的中断都将被忽略。因为同一个中断处理程序是不能并行执行的。7.1.4设备驱动程序中关键的数据结构
  设备管理的目标是对所有外设进行良好的读、写、控制等操作。由于用户希望能用同样的应用程序和命令来访问设备和普通文件,为此,Linux中的设备管理使用了设备文件这个概念来统一设备的访问接口。由于Linux中将设备当做文件来处理,所以对设备进行操作的系统调用和对文件的操作类似,主要包括open()、read()、write()、ioctl()、close()等。应用程序发出系统调用后,会从用户态转换为内核态,通过内核将open()这样的系统调用转换成对物理设备的操作。
  ……