嵌入式Linux实战教程

嵌入式Linux实战教程

河源职业技术学院, 深圳信盈达电子有限公司, 周永福, 李令伟, 邹莉莉, 陈志发, 编著

出版社:电子工业出版社

年代:2014

定价:49.0

书籍简介:

本书内容包括嵌入式Linux开发环境、嵌入式Linux内核移植、Linux驱动开发以及实例开发4个部分。本书系统地讲解了嵌入式Linux的环境搭建,嵌入式Linux的I/O与文件系统的开发、LED驱动开发、LCD驱动开发、按键驱动开发、网络应用开发、基于中断的开发、设备驱动程序的开发以及嵌入式图形界面的开发等,并且讲解了产品封装以及6410平台Linux环境搭建,使读者能够更快更好地掌握所学知识。

书籍目录:

目录

第1章嵌入式Linux开发环境

1.1嵌入式介绍

1.1.1嵌入式系统定义

1.1.2嵌入式操作系统

1.1.3常见的嵌入式操作系统

1.2虚拟机及Linux系统安装

1.2.1安装VMware Workstation软件

1.2.2在VMware Workstation虚拟机安装Red Hat Linux系统

1.3Linux常用命令

1.3.1系统询问命令

1.3.2文件操作命令

1.3.3目录操作命令

1.3.4口令、权限命令

1.3.5文件压缩命令

1.3.6网络相关命令

1.3.7其他命令

1.4Linux下的编辑工具

1.4.1编辑器分类

1.4.2VIM的使用

1.5主机开发环境的配置

1.5.1超级终端配置图解

1.5.2Minicom 配置

1.5.3TFTP服务

1.5.4NFS服务

1.5.5Telnet服务

1.6Red Hat下通过安装镜像文件使用yum安装软件

1.6.1修改yum配置文件

1.6.2安装卸载软件方法

1.7Makefile编写规则

1.7.1Makefile简介

1.7.2Makefile的基本结构

1.7.3Makefile中的变量

1.7.4Makefile的隐含规则

1.8交叉编译工具基础知识

1.8.1交叉编译工具链的安装

1.8.2arm-linux-gcc选项

1.8.3arm-linux-ld选项

1.8.4arm-linux-objcopy

1.8.5arm-linux-objdump

1.9小知识

第2章BootLoader移植与开发

2.1U-Boot的目录结构

2.1.1BootLoader简介

2.1.2常用BootLoader介绍

2.1.3U-Boot 1.3.4目录介绍

2.2U-Boot的制作过程

2.3U-Boot运行过程

2.3.1程序启动过程

2.3.2U-Boot的两个阶段

2.4U-Boot源码分析

2.5U-Boot应用:主要用于启动内核进行准备工作

2.5.1U-Boot的应用

2.5.2BootLoader与内核的交互

2.6U-Boot的重要数据结构

2.6.1gd全局数据变量指针

2.6.2bd电路板数据指针

2.6.3环境变量指针

2.6.4设备相关设置

2.6.5命令结构体类型定义

第3章Linux内核裁剪

3.1嵌入式Linux内核启动过程

3.1.1Linux版本及特点

3.1.2内核代码初始化分析

3.1.3setup_arch()函数分析

3.1.4rest_init()函数分析

3.1.5挂接根文件系统

3.1.6初始化设备驱动程序

3.2Linux内核源码目录介绍

3.3Linux内核配置系统分析

3.3.1内核中的 Kconfig文件介绍

3.3.2Linux内核源码Makefile文件分析

3.4针对S3C2440 开发板移植内核的过程

3.5添加驱动程序到内核源码

第4章根文件系统移植与制作

4.1分析Linux 文件系统层次标准

4.2根文件系统各目录作用

4.3移植Busybox 开源代码、构造根文件系统

4.3.1Busybox 的诞生

4.3.2Busybox 许可证

4.3.3POSIX 环境

4.4制作Linux根文件系统

4.4.1下载并配置安装Busybox

4.4.2完善根文件系统

4.4.3通过 NFS服务测试文件系统

第5章Linux驱动介绍

5.1驱动原理

5.2内核模块的主要相关命令

5.3设备分类

5.4设备驱动程序工作原理

5.5应用程序、库、内核、驱动程序的软件关系

5.6Linux驱动程序开发步骤

5.7驱动程序的加载和卸载

5.8关键概念

5.8.1不可剥夺型内核(non-preemptive kernel):(分时操作系统内核)

5.8.2可剥夺型内核(preemptive kernel):(实时操作系统内核)

5.8.3可重入函数

5.8.4资源

5.8.5共享资源

5.8.6代码的临界段

5.8.7实时系统的特点

5.8.8死锁

5.8.9Linux的进程状态描述

5.8.10Linux内核的三种调度方法

5.8.11所有任务都采用Linux分时调度策略时

5.8.12所有任务都采用FIFO调度策略时

5.8.13所有任务都采用RR调度策略时

5.8.14进程调度依据(系统进程调度原理)

5.8.15描述进程的数据结构task_struct (任务结构体)

5.8.16Linux使用内核函数goodness()对进程进行加权处理

5.9中断与异常

5.9.1Linux异常处理体系结构概述

5.9.2中断注册方法

5.10并发和竞态

5.10.1并发及其管理

5.10.2信号量和互斥体

5.10.3自旋锁

第6章字符设备驱动开发

6.1主设备号和次设备号

6.2重要数据结构

6.2.1file_operaions结构

6.2.2file结构

6.3字符设备注册方式

6.3.1早期版本的字符设备注册(2.6版本以前)

6.3.2杂项(misc device)设备注册

6.3.3Linux 2.6的版本设备注册

6.4打印信息

6.5高级字符驱动程序操作

6.5.1ioctl

6.5.2定位设备(llseek实现)

6.5.3休眠

6.5.4阻塞和非阻塞操作

6.5.5poll和 select

6.5.6与read 和write 的交互

6.5.7刷新待处理输出

6.6异步通知

6.7内核同步机制

6.7.1原子操作

6.7.2信号量(semaphore)

6.7.3自旋锁(spinlock)

第7章LED驱动开发与应用编程

7.1Linux驱动程序开发概述

7.1.1应用程序、库、内核、驱动程序的关系

7.1.2Linux驱动程序的分类

7.2LED驱动程序范例

7.2.1LED驱动程序(xyd2440_leds.c)

7.2.2LED驱动程序的Makefile

7.2.3LED驱动测试程序(leds_app.c)

7.2.4操作步骤

第8章按键驱动开发与应用编程

8.1按键的硬件原理

8.2按键驱动中的数据结构

8.3按键驱动的模块加载和卸载函数

8.4按键设备驱动中断处理程序

8.5按键设备驱动的打开、释放函数

8.6按键设备驱动读函数

8.7按键驱动程序范例

8.8操作步骤

第9章LCD驱动开发实例分析

9.1FrameBuffer的原理

9.2FrameBuffer在Linux中的实现和机制

9.3Linux内核中的platform机制

9.4S3C2440 LCD驱动分析

9.5s3c2440 LCD驱动移动移植

9.5.1代码修改

9.5.2修改Kconfig――添加新屏支持到内核菜单

9.5.3修改内核配置

9.6FrameBuffer应用例子

9.6.1应用程序源码

9.6.2操作步骤

第10章输入子系统和触摸屏

10.1认识输入子系统

10.1.1为什么需要输入子系统

10.1.2相关API

10.1.3一个简单的按键驱动的例子

10.2触摸屏驱动分析

10.2.1Linux内核定时器

10.2.2触摸屏驱动代码分析

10.3触摸屏的校准

10.3.1触摸屏的校准介绍

10.3.2tslib库的编译使用

10.3.3将tslib校准引用到自己的项目中

第11章网络驱动开发与应用编程

11.1TCP/IP 协议概述

11.1.1TCP/IP 协议族

11.1.2TCP 和 UDP

11.2TCP/IP网络基础编程

11.2.1socket 概述

11.2.2地址及顺序处理

11.2.3socket 基础编程

11.3DM9000网卡驱动程序移植

11.3.1DM9000网卡特性

11.3.2DM9000网卡与S3C2440硬件连接

11.3.3DM9000与开发板接口定义

11.3.4DM9000驱动移植到S3C2440步骤

11.4DM9000 网卡驱动源码解析

11.4.1两个重要的结构体简单介绍:sk_buff和net_device

11.4.2驱动代码具体分析

11.4.3dm9000_netdev_ops和 dm9000_ethtod_ops

11.4.4平台设备驱动的结构体定义

11.4.5驱动初始化函数

11.4.6probe函数

11.4.7remove函数:设备的删除函数

11.4.8打开、关闭函数和操作函数

第12章基于Qt Creator环境的QT开发

12.1概要说明

12.2安装步骤

12.3Qt Creator测试

12.4Qt Ctreator中配置ARM版本交叉编译环境

12.5交叉编译ARM版本Qt4程序

第13章产品封装、发布

13.1Linux内核镜像格式

13.2Linux内核镜像的产生过程

13.3嵌入式Linux常用文件系统

13.4制作常用的文件系统镜像

13.4.1制作Cramfs文件系统和部署

13.4.2制作JFFS2文件系统镜像和部署

13.4.3制作YAFFS2文件系统镜像和部署

第14章6410平台Linux环境搭建

14.1概述

14.2编译器的安装

14.3编译U-Boot和内核

14.3.1编译U-Boot

14.3.2编译内核

14.4烧写内核到NAND Flash

14.4.1制作用于一键烧写Linux的SD卡

14.4.2烧写Linux到开发板的NAND Flash中

14.5文件程序或文件下载到开发板中

14.5.1通过超级终端下载

14.5.2通过SD卡复制

附录ALinux开发平台硬件介绍

A.1S3C2440系列芯片介绍

A.2S3C2440开发板硬件设计说明

A.2.1电源设计

A.2.2复位电路

A.2.3系统时钟电路

A.2.4JTAG接口电路

A.2.5GPIO电路、指示灯电路、按键电路

A.2.6蜂鸣器电路

A.2.7串口电路

A.2.8A/D和D/A电路

A.2.9外部Flash芯片

A.2.10SD卡接口电路

A.2.11SDARM芯片模块

A.2.12NOR Flash芯片模块

A.2.13NAND Flash芯片模块

A.2.14USB接口

A.2.15网络模块

A.2.16音频输入与输出电路

A.2.17LCD接口和CMOS摄像接口

A.2.18系统总线接口

A.2.19开发板完整原理图

附录BJTAG仿真调试器下载程序的过程

附录CJ-Link仿真调试器的使用

附录DLinux常用命令介绍

参考文献

内容摘要:

本书以信盈达xyd2440开发板为例,从嵌入式Linux系统开发必备的Linux知识点出发,分析并详细讲解U-Boot、内核、根文件系统的源码与制作过程,详细介绍Linux系统驱动理论,尤其花了大量的精力介绍基于嵌入式Linux 26内核下的各类驱动设备,包括LED、按键、触摸屏、LCD和网卡等各种外设和芯片驱动程序的开发技术与实操项目详解。此外,还介绍了基于Qt的GUI系统的移植、产品固化代码及发布的方法。本书从基本的Linux系统的操作命令开始,由浅及深地讲解相关内容,使读者循序渐进地掌握嵌入式开发的方法和技巧,最终能够为嵌入式开发板配置、移植、裁剪内核,编写开发驱动程序,以及移植GUI系统,从而掌握整个嵌入式Linux系统的开发方法。【作者简介】深圳信盈达电子有限公司、是一家专注于单片机、ARM、嵌入式产品开发和技术培训的高新技术服务企业,公司下设开发部和技术培训部。公司开发部为国内外众多客户开发多款基于嵌入式单片机、ARM等技术的整套方案和高性能产品,技术培训部提供优秀的单片机、ARM、嵌入式产品开发工程师培训。同时为众多工程师,各大师专院校提供实验器材及技术培训课程!

书籍规格:

书籍详细信息
书名嵌入式Linux实战教程站内查询相似图书
丛书名信盈达技术创新系列图书
9787121229237
如需购买下载《嵌入式Linux实战教程》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位电子工业出版社
版次1版印次1
定价(元)49.0语种简体中文
尺寸26 × 19装帧平装
页数印数

书籍信息归属:

嵌入式Linux实战教程是电子工业出版社于2014.5出版的中图分类号为 TP316.89 的主题关于 Linux操作系统-程序设计-教材 的书籍。