《嵌入式Linux系统开发技术详解—基于ARM》

图书作者:华清远见 丛书名称: 北京华清远见嵌入式培训中心教材 出版日期:2006年8月 PDF电子版免费下载

编辑推荐理由

推荐评分:5.0分

多年嵌入式人才培养及项目研发经验总结

数百家企业嵌入式研发岗位人才需求汇总

数十所嵌入式专业大学院校教学现状调研

侧重实践及案例分析并辅以代码加以讲解

图书简介

本书以嵌入式linux系统开发流程为主线,剖析了嵌入式linux系统构建的各个环节。本书从嵌入式系统基础知识和linux编程技术讲起,接下来说明了嵌入式linux交叉开发环境的建立,然后分析了嵌入式linux系统的引导程序、内核和文件系统三大组成部分,最后介绍了嵌入式linux系统集成和部署的方法。本书使用的嵌入式linux系统软件全部来源于开源站点,文中提供了具体的链接地址。本书主要以arm平台为例,对u-boot和linux内核启动过程做了详细分析,为学习嵌入式linux系统开发奠定基础。本书从概念上阐述了嵌入式linux系统开发流程,实践上提供了具体的操作步骤,使读者能够深入理解嵌入式linux系统构建。
  • 本书可作为高等院校电子类、电气类、控制类等专业高年级本科生、研究生学习嵌入式linux的教材,也可供广大希望转入嵌入式领域的科研和工程技术人员参考使用,还可作为广大嵌入式培训班的教材和教辅材料。...

图书目录

  • ※第1章 概述

  • 1.1 嵌入式系统
  • 1.2 嵌入式操作系统
  • 1.3 嵌入式linux历史
  • 1.4 嵌入式linux开发环境
  • 1.5 嵌入式linux系统开发要点
  • ※第2章 arm处理器

  • 2.1 arm处理器简介
  • 2.1.1 arm公司简介
  • 2.1.2 arm处理器体系结构
  • 2.1.3 linux与arm处理器
  • 2.2 arm指令集
  • 2.2.1 arm微处理器的指令集概述
  • 2.2.2 arm指令寻址方式
  • 2.2.3 thumb指令概述
  • 2.3 典型arm处理器简介
  • 2.3.1 atmel at91rm9200
  • 2.3.2 samsung s3c2410
  • 2.3.3 ti omap1510/1610系列
  • 2.3.4 freescale i.max21
  • 2.3.5 intel xscale pxa系列
  • 2.4 三星s3c2410开发板
  • 2.4.1 三星s3c2410开发板介绍
  • 2.4.2 众多的开发板供应商
  • ※第3章 linux编程环境

  • 3.1 linux常用工具
  • 3.1.1 shell简介
  • 3.1.2 常用shell命令
  • 3.1.3 编写shell脚本
  • 3.1.4 正则表达式
  • 3.1.5 程序编辑器
  • 3.2 makefile
  • 3.2.1 gnu make
  • 3.2.2 makefile规则语法
  • 3.2.3 makefile文件中变量的使用
  • 3.3 二进制代码工具的使用
  • 3.3.1 gnu binutils工具介绍
  • 3.3.2 binutils工具软件使用
  • 3.4 编译器gcc的使用
  • 3.4.1 gcc编译器介绍
  • 3.4.2 gcc编译选项解析
  • 3.5 调试器gdb的使用技巧
  • 3.5.1 gdb调试器介绍
  • 3.5.2 gdb调试命令
  • 3.6 linux编程库
  • 3.6.1 linux编程库介绍
  • 3.6.2 linux系统调用
  • 3.6.3 linux线程库
  • ※第4章 交叉开发环境

  • 4.1 交叉开发环境介绍
  • 4.1.1 交叉开发概念模型
  • 4.1.2 目标板与主机之间的连接
  • 4.1.3 文件传输
  • 4.1.4 网络文件系统
  • 4.2 安装交叉编译工具
  • 4.2.1 获取交叉开发工具链
  • 4.2.2 主机安装工具链
  • 4.3 主机开发环境配置
  • 4.3.1 主机环境配置
  • 4.3.2 串口控制台工具
  • 4.3.3 dhcp月艮务
  • 4.3.4 tftp服务
  • 4.3.5 nfs服务
  • 4.4 启动目标板
  • 4.4.1 系统引导过程
  • 4.4.2 内核解压启动
  • 4.4.3 挂接根文件系统
  • 4.5 应用程序的远程交叉调试
  • 4.5.1 交叉调试的模型
  • 4.5.2 交叉调试程序实例
  • ※第5章 交叉开发工具链

  • 5.1 工具链软件
  • 5.1.1 相关软件工程
  • 5.1.2 软件版本的匹配
  • 5.1.3 工具链制作流程
  • 5.2 制作交叉编译器
  • 5.2.1 准备编译环境
  • 5.2.2 编译binutils
  • 5.2.3 编译gcc的辅助编译器
  • 5.2.4 编译生成glibc库
  • 5.2.5 编译生成完整的gcc编译器
  • 5.3 制作交叉调试器
  • 5.3.1 编译交叉调试器
  • 5.3.2 编译gdbserver
  • ※第6章 bootloader

  • 6.1 bootloader
  • 6.1.1 bootloader介绍
  • 6.1.2 bootloader的启动
  • 6.1.3 bootloader的种类
  • 6.2 u-boot编程
  • 6.2.1 u-boot工程简介
  • 6.2.2 u-boot源码结构
  • 6.2.3 u-boot的编译
  • 6.2.4 u-boot的移植
  • 6.2.5 添加u-boot命令
  • 6.3 u-boot的调试
  • 6.3.1 硬件调试器
  • 6.3.2 软件跟踪..
  • 6.3.3 u-boot启动过程
  • 6.3.4 u-boot与内核的关系
  • 6.4 使用u-boot
  • 6.4.1 烧写u-boot到flash
  • 6.4.2 u-boot的常用命令
  • 6.4.3 u-boot的环境变量
  • ※第7章 配置编译内核

  • 7.1 linux内核特点
  • 7.1.1 linux内核版本介绍
  • 7.1.2 linux内核特点
  • 7.1.3 linux 2.6内核新特性
  • 7.2 配置编译内核源码
  • 7.2.1 内核源码结构
  • 7.2.2 内核配置系统
  • 7.2.3 kbuild makefile
  • 7.2.4 内核编译
  • 7.2.5 内核编译结果
  • 7.3 内核配置选项
  • 7.3.1 使用配置菜单
  • 7.3.2 基本配置选项
  • 7.3.3 驱动程序配置选项
  • ※第8章 内核移植浅析

  • 8.1 移植内核源码
  • 8.1.1 移植前的准备工作
  • 8.1.2 开发板内核移植
  • 8.1.3 移植后的工作
  • 8.2 linux内核启动过程分析
  • 8.2.1 内核启动流程源代码分析
  • 8.2.2 内核自引导程序
  • 8.2.3 内核vmlinux入口
  • 8.2.4 linux系统初始化
  • 8.2.5 挂接根文件系统
  • 8.2.6 初始化设备驱动
  • 8.2.7 启动用户空间init进程
  • ※第9章 内核调试技术

  • 9.1 内核调试方法
  • 9.1.1 内核调试概述
  • 9.1.2 学会分析内核源程序
  • 9.1.3 调试方法介绍
  • 9.2 内核打印函数
  • 9.2.1 内核映像解压前的串口输出函数
  • 9.2.2 内核错误报告子程序
  • 9.2.3 内核打印函数
  • 9.3 获取内核信息
  • 9.3.1 系统请求键
  • 9.3.2 通过/proc接口
  • 9.3.3 通过/sys接口
  • 9.3.4 通过ioctl方法
  • 9.4 处理出错信息
  • 9.4.1 oops信息
  • 9.4.2 panic
  • 9.5 内核源码调试
  • 9.5.1 kgdb调试内核源代码
  • 9.5.2 bdi2000调试内核源代码
  • ※第10章 制作linax根文件系统

  • 10.1 根文件系统目录结构
  • 10.1.1 fhs目录结构
  • 10.1.2 文件存放规则
  • 10.2 添加系统文件
  • 10.2.1 添加共享链接库
  • 10.2.2 添加内核模块
  • 10.2.3 添加设备文件
  • 10.3 init系统初始化过程
  • 10.3.1 inittab文件
  • 10.3.2 system v init启动过程
  • 10.3.3 busybox init启动过程分析
  • 10.4 定制文件系统
  • 10.4.1 定制应用程序
  • 10.4.2 配置应用程序自动启动
  • ※第11章 充分利用开源软件

  • 11.1 开放源代码工程介绍
  • 11.1.1 linux系统和开源软件
  • 11.1.2 开源软件的特点
  • 11.2 busybox使用
  • 11.2.1 busybox工程介绍
  • 11.2.2 配置编译busybox
  • 11.3 x11图形系统
  • 11.3.1 x windows介绍
  • 11.3.2 tiny-x介绍
  • 11.3.3 gtk图形库
  • 11.4 qt图形库
  • 11.4.1 qt介绍
  • 11.4.2 qt/embedded介绍
  • 11.4.3 qt/embedded架构
  • 11.4.4 qt/embedded软件包与安装
  • 11.5 minigui图形系统
  • 11.5.1 minigui图形系统概述
  • 11.5.2 minigui移植
  • 11.6 microwindows图形系统
  • 11.7 linux下的网络应用
  • 11.7.1 嵌入式设备的网络化
  • 11.7.2 tcp/ip协议概述
  • 11.7.3 linux下的socket编程
  • 11.8 嵌入式linux的串行通信
  • 11.8.1 linux下的串口操作
  • 11.8.2 linux串口编程实例
  • ※第12章 系统集成测试

  • 12.1 系统集成测试
  • 12.1.1 系统集成测试概述
  • 12.1.2 系统集成测试要求
  • 12.2 系统跟踪工具
  • 12.2.1 为什么需要跟踪工具
  • 12.2.2 strace
  • 12.2.3 ltrace
  • 12.2.4 ltt
  • 12.3 系统性能测量工具
  • 12.3.1 代码效率测量
  • 12.3.2 ltp
  • 12.3.3 lmbench
  • 12.4 测量内存泄漏
  • 12.4.1 mtrace
  • 12.4.2 dmalloc
  • 12.4.3 memwatch
  • 12.4.4 yamd
  • ※第13章 部署linux系统

  • 13.1 部署linux系统概述
  • 13.1.1 部署linux系统的基本流程
  • 13.1.2 部署linux系统的关键问题
  • 13.2 文件系统类型
  • 13.2.1 ext2/ext3
  • 13.2.2 jfs
  • 13.2.3 cramfs
  • 13.2.4 jffs/jffs2
  • 13.2.5 yaffs
  • 13.3 存储设备
  • 13.3.1 mtd类型设备
  • 13.3.2 磁盘类型设备
  • 13.4 部署linux系统
  • 13.4.1 安装mtd工具
  • 13.4.2 使用磁盘文件系统
  • 13.4.3 使用ramdisk设备
  • 13.4.4 使用mtd设备和jffs2文件系统
  • 13.4.5 系统启动和升级
  • ※第14章 系统设计开发实例

  • 14.1 需求分析
  • 14.2 系统硬件设计
  • 14.3 系统软件设计
  • 14.4 系统集成与部署...