基本信息
- 原书名:GNU/Linux Rapid Embedded Programming
- 作者: (美)鲁道夫·焦梅蒂(Rodolfo Giometti)
- 译者: 俞辉 何旭莉 王晓红 李永
- 丛书名: Linux/Unix技术丛书
- 出版社:机械工业出版社
- ISBN:9787111598299
- 上架时间:2018-5-4
- 出版日期:2018 年5月
- 开本:16开
- 版次:1-1
- 所属分类:计算机 > 操作系统 > Linux

编辑推荐
使用嵌入式系统来实现你的项目
为嵌入式系统访问和管理外围设备
使用如C、Python、Bash和PHP等语言对嵌入式系统编程
使用完整的操作系统(如Debian和Ubuntu)或嵌入式系统(如OpenWrt和Yocto)
驾驭设备驱动程序的能力以优化设备的通信
通过几种方式访问数据设备,如GPIO、串口、脉宽调制、ADC、以太网、Wi-Fi、音频、视频、I2C、SPI、1-Wire、USB和CAN
几个设备的实际用例,如RFID读取器、Smart读卡器、Z-Wave设备、GSM/GPRS调制解调器
几种传感器用例,如光、压力、湿度、红外线等传感器
内容简介
计算机书籍
本书是一本非常棒的嵌入式系统教程,硬件基于BeagleBone Black系统、SAMA5D3 Xplained系统和Wandboard系统三种开发平台,软件则是非常流行的Linux系统。还涉及各种硬件端口、总线的驱动编写、编程控制等内容。整本书分为两大部分,第一部分是基础部分,包括开发环境的建立、简单命令和编程工具的使用,覆盖编译器、编程工具、脚本和daemon等。在读者打好嵌入式系统的基础之后,本书将进入第二部分,也就是各种基于硬件设备的应用。本书使用的硬件设备几乎涵盖我们所能见到过的所有连接各种开发板的连接方式,包括I2C、SPI、USB、单总线、串行总线以及各类数字模拟设备等。
作译者
目录
前言
第一部分 基础知识
第1章 开发系统的安装 2
1.1 嵌入式术语 2
1.2 系统概述 4
1.2.1 BeagleBone Black开发平台 4
1.2.2 SAMA5D3 Xplained开发平台 6
1.2.3 Wandboard开发平台 8
1.3 安装开发系统 11
1.3.1 设置宿主机 12
1.3.2 设置BeagleBone Black开发平台 14
1.3.3 设置SAMA5D3 Xplained开发平台 24
1.3.4 设置Wandboard开发平台 30
1.4 设置开发系统 35
1.4.1 通过USB、网络、overlay系统设置BeagleBone Black 36
1.4.2 通过USB、网络设置SAMA5D3 Xplained 39
1.4.3 通过USB、有线网络和无线网络设置Wandboard 42
1.4.4 通用设置 45
1.5 总结 46
译者序
本书最主要的特点就是知识点丰富,涵盖面大。硬件平台包括目前最主流的3个嵌入式系统平台,操作系统也是目前最流行的Linux。书中涵盖各种硬件端口、总线的驱动编写、编程控制等,说它是百科全书都不为过。没有涉及的比较深层的内容在书中也会提供相应的网址和资料,以帮助读者进一步学习。
本书的第二个特点就是深入浅出,循循善诱。哪怕读者是初学者也没关系,里面的命令和操作都是按照零基础的标准来安排的。书中会告诉你,如何使用和改造内核中原有的驱动,如何找到相应的设备节点,如何对各种端口进行控制等。而且还提供了大量的案例程序,无论是入门者,还是进行二次开发的程序员,都可以从中取经。
本书的第三个特点就是自由。自由的环境,自由的学习。学习本书不用担心被局限在固定的某个平台之中进行少量的二次开发。因为丰富的硬件和Linux系统的开放性会给阅读者带来自由的感受。Linux本身就是自由的,其“一切都是文件”的特性在嵌入式系统的开发中如鱼得水,在操作系统的支持下,嵌入式系统可以很方便地实现各种复杂功能。
当然,本书也有不足之处,例如书中有些内容介绍得过于细致了,其实在开始的章节第一次介绍时翔实一些是没问题的,不过到了后面还详细地说明就没有太大必要了。当然,这对那些跳跃着阅读的读者可能会比较有用。
前言
本书展示了行业中外部环境是如何通过特定的外设进行交互的。这里将使用最新的Linux内核版本4.x,软件系统基于Debian/Ubuntu系统,而嵌入式系统则使用OpenWrt和Yocto。
本书涉及的开发板平台基于目前元件市场和专业开发板制造商中最流行的CPU。在简要介绍完每个平台之后,本书将展示如何设置这些平台,使之能运行一个完整的发行版GNU/Linux并且获得对其系统控制台的访问权。之后将介绍如何针对每个平台安装一个完整的开发系统,使开发者能够运行自己开发的程序。
第一步将在嵌入式套件下进行编程,使用C、Bash脚本或者Python/PHP等语言来编程以访问外设。之后将会介绍更多的设备驱动程序和访问外设的内容以奠定坚实的基础。读者将学习通过C程序或者脚本语言(Bash/Python)和外设进行交互,以及如何为特定的硬件配置相应的设备驱动程序。
本书使用的硬件设备几乎涵盖我们所能见过的所有连接各种开发板的方式,包括I2C、SPI、USB、1-wire总线、串行总线以及各类数字和模拟设备等。
本书中使用的编程语言依据的原则是,以最快速最简单的解决方案来解决当前的问题。特别是可以找到Bash、C、PHP、Python的示例代码。
在这些章节中将会需要使用一个守护进程、一个内核模块或者可能需要重新编译整个内核。这种情况下添加了一个简短的描述,包括读者应该做什么、可以从哪里得到更多的信息和使用工具。但要说明的是,管理一个GNU/Linux系统或者内核模块等一些基本的技能是必需的。
本书涵盖内容
本书可以分为两大部分:其中第一部分是第二部分的基础。第一部分介绍如何安装一个宿主机和开发系统以及如何通过串口控制台访问嵌入式套件。首先将看到一些引导加载程序的命令以及C的编译器和交叉编译器,之后会介绍内核模块、设备驱动程序以及一些基于网络文件系统的文件系统。读者也会在主机上使用模拟器来运行一个完整的目标机Debian系统,读者也会在Bash、PHP和Python下面看到系统的守护进程和脚本程序,读者还会看到闪存和Linux的MTD(Memory Technology Device,内存技术设备)。其中会介绍JFFS2和UBIFS文件系统,以及两个非常著名的嵌入式系统Yocto和OpenWrt。
下面是第一部分中每章的简短介绍:
第1章介绍目前工业应用中的最常用的三个开发环境:BeagleBone Black系统、SAMA5 D3 Xplained系统和WandBoard系统。在简要介绍了每个开发板之后,我们将看到如何设置它们以便运行一个完整的GNU/Linux系统。我们也将看到如何在每个平台(和虚拟机中)上安装一个完整的开发系统。
第2章首先将展示如何安装开发包,然后将进一步探索串口控制台和运行在其上的shell。最后将介绍引导系统bootLoader的命令。
第3章将讲述C编译器以及交叉编译器,之后我们将看到内核模块、设备驱动程序以及一些基于NFS的文件系统,最后会看到一个开发者在主机上如何使用模拟器来运行一个完整的目标机Debian系统。
第4章将介绍系统守护进程(描述它们是什么以及如何使用它们),之后将使用Bash、PHP和Python语言来进行脚本编程。
第5章首先介绍闪存和管理闪存的软件,之后将展示Linux的内存技术设备(MTD)和两个主要的文件系统JFFS2和UBIFS,并运行它们。最后将展示如今两个最著名的嵌入式系统——Yocto和OpenWrt,学习如何在这些嵌入式系统上编写应用程序,并且把该程序添加到嵌入式系统中。
第二部分开始深入介绍所有外设。如果你是一位嵌入式开发人员,在你的职业生涯所遇到的各种外设都会涉及。在本书中,对于每一个外设,都会介绍其所支持的嵌入式套件以及如何访问和使用它。对于每种设备类型,都会结合实例展示如何管理它。
下面是第二部分中每章的简短介绍:
第6章首先简短描述GPIO线路,之后将会看到它们在嵌入式套件上是如何布局的,接着再详细了解如何以非常简单(但效率低)的方式访问这些线路,然后再以更智能(但更复杂)的方式重新再次访问。最后会在内核中通过IRQ管理和LED设备支持再快速地介绍一下GPIO管理机制。
第7章将介绍串行端口(简称串口),串口是计算机中最重要的一个外设接口(至少可以让计算机用于控制自动化行业等)。简要描述串行端口和串行设备之后,我们将通过使用一个实际的串口设备来看如何在一个GNU/Linux系统中对其进行管理。最后我们将在内核中学会如何通过一条串行线来实现网线连接的两个嵌入式系统(二者通过一条以太网电缆连接)之间的通信。
第8章将介绍USB总线,这是一种通用的总线,广泛应用于现代计算机。人们可以将各种电子设备连接到计算机,例如硬盘、键盘或其他使用相同USB端口的串行设备。
媒体评论
本书内容
·使用嵌入式系统来实现你的项目
·为嵌入式系统访问和管理外围设备
·使用如C、Python、Bash和PHP等语言对嵌入式系统编程
·使用完整的操作系统(如Debian和Ubuntu)或嵌入式系统(如OpenWrt和Yocto)
·驾驭设备驱动程序的能力以优化设备的通信
·通过几种方式访问数据设备,如GPIO、串口、脉宽调制、ADC、以太网、Wi-Fi、音频、视频、I2C、SPI、1-Wire、USB和CAN
·几个设备的实际用例,如RFID读取器、Smart读卡器、Z-Wave设备、GSM/GPRS调制解调器
·几种传感器用例,如光、压力、湿度、红外线等传感器