嵌入式Linux开发详解:基于ATRM和Linux2.6 pdf下载pdf下载

嵌入式Linux开发详解:基于ATRM和Linux2.6百度网盘pdf下载

作者:
简介:本篇提供书籍《嵌入式Linux开发详解:基于ATRM和Linux2.6》百度网盘pdf下载
出版社:北京航空航天大学出版社京东自营官方旗舰店
出版时间:2010-05
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

内容简介

  本书介绍了嵌入式Linux开发需要掌握的基础知识,采用分层的方法对关键技术进行了详细的讲解,且辅以大量实例。共分为7章。第1、2章介绍嵌入式系统和Linux的基础知识。第3~7章从实践的角度分层次介绍嵌入式Linux开发的流程和关键技术。其中,第3章介绍硬件平台;第4章介绍Boot Loader的基础理论,对Uboot的移植、代码分析、关键技术情景分析等进行了深入探讨;第5章介绍了Linux内核移植需要具备的知识,重点分析了内核映像格式以及Boot Loader与内核的通信机制;第6章在介绍嵌入式文件系统的基础上,设计并实现了一个嵌入式混合文件系统;第7章介绍了嵌入式开发环境的搭建,并简单介绍了一个数据网关的实例。
  本书内容可操作性强,适合嵌入式Linux开发初学者参考,也可以作为高等院校有关嵌入式系统开发与应用的实验参考书。

内页插图

目录

第1章 嵌入式系统设计概述1
1.1 嵌入式系统的定义1
1.1.1 嵌入式系统的发展历史2
1.1.2 嵌入式系统的组成3
1.1.3 嵌入式系统的特点4
1.2 嵌入式系统设计概述5
1.3 嵌入式系统的学习方法6
本章总结6

第2章 磨刀不误砍柴工7
2.1 Linux概述7
2.2 Linux的安装8
2.2.1 创建一个新的虚拟机9
2.2.2 在虚拟机上安装Red Hat Linux 911
2.3 Red Hat Linux 9的初步设置18
2.3.1 VMware tools的安装20
2.3.2 网络设置22
2.4 使用shell提高效率24
2.4.1 shell初始化文件配置24
2.4.2 常用的脚本26
2.5 学习开发工具的使用30
2.5.1 Vim高级技巧30
2.5.2 编译流程32
2.5.3 工程管理器make37
2.6 嵌入式Linux常用的命令42
2.6.1 Linux基本命令42
2.6.2 armlinux系列47
2.6.3 diff和patch的使用52
本章总结57

第3章 走马观花58
3.1 本书基于的硬件平台58
3.1.1 ARM概述59
3.1.2 ARM命名规则60
3.1.3 AT91RM9200简介61
3.1.4 K9I开发板概述63
3.2 让系统先跑起来65
3.2.1 准备工作65
3.2.2 下载Boot Loader71
3.2.3 内核和文件系统72
3.2.4 搭建交叉编译环境75
3.2.5 应用程序测试76
3.3 深入理解硬件平台78
3.3.1 最小系统组成78
3.3.2 时钟系统78
3.3.3 NVM82
3.3.4 JTAG接口87
本章总结91

第4章 Boot Loader92
4.1 准备工作92
4.1.1 整合资源92
4.1.2 代码阅读工具93
4.2 Boot Loader概述94
4.2.1 Boot Loader概念94
4.2.2 Boot Loader在嵌入式系统中的必要性95
4.2.3 Boot Loader的启动流程96
4.2.4 Boot Loader如何固化97
4.3 AT91RM9200的启动机制98
4.3.1 片内启动98
4.3.2 片外启动101
4.3.3 3种启动场景102
4.4 Boot Loader的移植103
4.4.1 Loader和Boot104
4.4.2 Uboot的移植108
4.5 Uboot的3种启动方式无关性设计114
4.5.1 背景介绍115
4.5.2 重映射的理论模型115
4.5.3 Uboot的不合理性分析116
4.5.4 解决方案116
4.6 Boot Loader深入分析119
4.6.1 将ELF文件转换为BIN119
4.6.2 Uboot源代码分析123
4.6.3 Uboot的命令机制129
4.6.4 Uboot的source实现133
本章总结139

第5章 Linux内核移植140
5.1 嵌入式操作系统的选择140
5.2 Linux 2.6 介绍142
5.3 Makefile体系144
5.4 内核的移植150
5.4.1 基本移植151
5.4.2 出现的问题155
5.5 内核映像格式159
5.5.1 生成过程160
5.5.2 zImage自解压引导过程163
5.6 Boot Loader与内核的通信机制168
5.6.1 基本模型168
5.6.2 tagged list组织方式169
5.6.3 Boot Loader实现173
5.6.4 Linux内核实现179
本章总结186

第6章 文件系统187
6.1 概述187
6.2 库191
6.2.1 库的概述191
6.2.2 库的命名191
6.2.3 库的制作方法192
6.3 一个最简单的根文件系统193
6.4 基本功能完备的根文件系统201
6.4.1 修改现有的文件系统映像201
6.4.2 从零开始制作根文件系统204
6.4.3 网络功能213
6.5 嵌入式混合文件系统——EFS226
6.5.1 问题提出226
6.5.2 系统设计方案226
6.5.3 组件实现229
6.5.4 系统集成设计231
6.5.5 辅映像制作236
本章总结237

第7章 应用程序238
7.1 应用开发环境的建立238
7.1.1 嵌入式Linux的GDB调试环境建立238
7.1.2 嵌入式Linux的NFS开发环境建立239
7.1.3 嵌入式Linux的TFTP开发环境建立241
7.1.4 嵌入式Linux的DHCP开发环境建立242
7.2 串行/网络数据网关244
7.2.1 基本原理244
7.2.2 数据帧的设计245
7.2.3 网络异常情况的处理245
本章总结246
参考文献247

精彩书摘

  为什么要采用交叉编译呢?原因有两个。一是目标平台所需要的BootLoader以及OS核心还没有建立时,需要做交叉编译。二是目标机设备不具备一定的处理器能力和存储空间,即单独在目标板上无法完成程序开发,所以只好求助宿主机。这样可以在宿主机上对即将在目标机上运行的应用程序进行编译,生成可以在目标机上运行的代码格式,然后移植到目标板上,也就是目前嵌入式程序开发的Host/Targct模式。
  (3)嵌入式系统的程序需要固化
  通用的系统在测试完成后就可以直接投入使用,其目标环境一般是PC机,因此在总体结构上与开发环境差别不大。而嵌入式系统的开发环境是PC机,但是应用软件在目标环境下必须存储在非易失性存储器中,保证用户关机后下次能够再次使用。因此,在系统应用软件开发完成之后,应生成固化版本。
  此外,嵌入式系统还需要提供强大的硬件开发工具和软件包的支持,需要设计者从速度、功能和成本综合考虑。此外,嵌入式系统对稳定性、可靠性、功耗、抗千扰性等方面的性能要求都比通用系统的要求更为严格,所以相对而言,嵌入式系统的软件开发难度更大一些。

前言/序言

  曾经梦想成为一名作家,就像喜欢的余秋雨、路遥、霍达一样,思想跃动于笔端。不过似乎总是缺少那么一份灵性,文学之路与我渐行渐远。幸运的是,缘于技术,拜China Unix所赐,有了这本书,也因此圆了一个儿时的梦想。
  记得是从2006年夏天开始接触嵌入式系统.学习ARM、Linux,虽然忙碌但很充实。在学习的间隙,本着“好记性不如烂笔头”的原则,想要把所学都记录下来。但是传统的纸笔记录太慢,有时候难以把问题的场景清晰而又完整地记录下来,就寻找合适的网络记录手段,于是就有了笔者的博客。
  开始纯粹是自己的总结笔记,没想到网友的评价还不错,博客的浏览量提高了,也因此交到了很多朋友。
  在本书的编写过程中,得到了很多人的支持和帮助。