ARM嵌入式Linux系统开发详解(第2版)

ARM嵌入式Linux系统开发详解(第2版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2014-02
版次: 2
ISBN: 9787302340522
定价: 69.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 466页
字数: 765千字
正文语种: 简体中文
298人买过
  •    “Linux典藏大系”自2010年陆续出版以来,因其内容丰富、讲解细腻、通俗易懂和实用性强等特色而深受广大读者的喜爱,长期位居同类图书销售排行榜的前列,累计销量近10万册。丛书中部分图书荣获51CTO读书频道“受读者喜爱的原创IT技术图书奖”,还有多种图书的中文繁体字版权输出到了中国台湾地区出版发行。丛书中的多个品种被国内几十所培训机构和大中专院校选为教材。丛书的出版还得到了国内Linux领域知名的技术社区ChinaUnix的大力支持。读者在ChinaUnix社区的论坛上与社区中的Linux爱好者进行了广泛的交流,取得了良好的学习效果。2014年2月“Linux典藏大系“全新升级版(第2版)正式出版,第2版图书迎合了Linux技术的新发展,全部采用当前流行和稳定的Linux发行版或者相关工具,是Linux爱好者学习Linux的好帮手。   《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》是获得了大量读者好评的“Linux典藏大系”中的《ARM嵌入式Linux系统开发详解》的第2版。《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》由浅入深,全面、系统地介绍了基于ARM体系结构的嵌入式Linux系统开发所涉及的方方面面技术,并提供了大量实例供读者实战演练。另外,《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》提供了9小时多媒体教学视频及书中涉及的实例源程序,便于读者高效、直观地学习。  《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》共分4篇。第1篇介绍了嵌入式系统入门、嵌入式软硬件系统、ARM处理器、嵌入式Linux、软件开发环境建立和一个Linux应用程序;第2篇介绍了Linux应用程序编程基础、开发多进程/线程程序、网络通信应用、串行口通信编程、嵌入式GUI程序开发和软件项目管理;第3篇介绍ARM体系结构及开发实例、深入Bootloader、解析Linux内核、嵌入式Linux启动流程、Linux文件系统、建立交叉编译工具链、命令系统BusyBox、Linux内核移植,以及内核和应用程序调试技术;第4篇结合5个案例介绍了Linux设备驱动、网络设备驱动、Flash设备驱动和USB驱动的开发过程,以此提高读者的实战水平。  《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》适合广大从事嵌入式Linux系统开发的人员、对嵌入式Linux系统开发有兴趣的爱好者及大中专院校相关专业的学生阅读。   弓雷,从事嵌入式系统软件开发9年。擅长计算机通信技术,对操作系统内核及底层技术有深入研究。技术涉猎广泛,熟悉Intel IXA架构网络处理器、ARM体系结构、MIPS体系结构和TCP/IP网络协议栈等。曾经移植过Linux 2.6内核到嵌入式设备,参与研发了某部队火控武器通信系统、无人驾驶汽车项目通信系统及10GE/POS骨干网流量管理系统等。目前担任嵌入式软件研发工程师和微码软件研发工程师,从事某公司骨干网P2P流量管理设备的研发。 第1篇Linux嵌入式开发基础篇
    第1章嵌入式系统入门
    1.1什么是嵌入式系统
    1.2嵌入式系统应用领域
    1.2.1家用电器和电子类产品
    1.2.2交通工具
    1.2.3公共电子设施
    1.3嵌入式系统发展
    1.3.1嵌入式微控制器
    1.3.2嵌入式微处理器
    1.3.3未来嵌入式系统发展的方向
    1.4典型的嵌入式系统组成
    1.5小结
    第2章嵌入式软硬件系统
    2.1电路基本知识
    2.1.1什么是模拟电路
    2.1.2什么是数字电路
    2.1.3数制转换
    2.2计算机组成原理
    2.2.1计算机体系的发展
    2.2.2中央处理器
    2.2.3存储系统
    2.2.4总线系统
    2.2.5输入输出系统
    2.3软件基础知识
    2.3.1什么是软件
    2.3.2软件开发流程
    2.3.3常见的软件开发模型
    2.3.4计算机编程语言
    2.3.5数据结构
    2.4操作系统知识
    2.4.1什么是操作系统
    2.4.2操作系统的发展历史
    2.4.3操作系统由什么组成
    2.4.4几种操作系统的设计思路
    2.4.5操作系统分类
    2.5小结
    第3章ARM处理器
    3.1微处理器和微控制器
    3.2ARM处理器介绍
    3.2.1ARM微处理器的应用领域
    3.2.2ARM的功能特点
    3.3ARM指令集
    3.3.1算术运算指令
    3.3.2逻辑运算指令
    3.3.3分支指令
    3.3.4数据传送指令
    3.4ARM的结构
    3.4.1ARM体系结构的命名方法
    3.4.2处理器系列划分
    3.4.3处理器工作模式
    3.4.4存储系统
    3.4.5寻址方式
    3.5ARM的功能选型
    3.5.1ARM的选型原则
    3.5.2几种常见的ARM核处理器选型参考
    3.6小结
    第4章嵌入式Linux
    4.1常见的嵌入式操作系统
    4.1.1VxWorks
    4.1.2WindowsCE
    4.1.3PalmOS
    4.1.4Symbian
    4.2嵌入式Linux操作系统
    4.2.1什么是Linux
    4.2.2Linux与UNIX的不同——GPL版权协议介绍
    4.2.3Linux发行版
    4.2.4常见的嵌入式Linux系统
    4.3小结
    第5章建立软件开发环境
    5.1独立的Linux系统
    5.1.1安装UbuntuLinux
    5.1.2怎样安装、卸载软件
    5.1.3怎样配置系统服务
    5.1.4安装主要的开发工具
    5.1.5安装其他的开发工具和文档
    5.2运行在Windows上的Linux系统
    5.2.1什么是Cygwin
    5.2.2如何安装Cygwin
    5.2.3安装开发环境
    5.3Linux常用工具
    5.3.1Linuxshell和常用命令
    5.3.2文本编辑工具vi
    5.3.3搜索工具find和grep
    5.3.4FTP工具
    5.3.5串口工具minicom
    5.4Windows常用工具
    5.4.1代码编辑管理工具SourceInsight
    5.4.2串口工具XShell
    5.5ARM集成开发环境ADS
    5.5.1ADS集成开发环境介绍
    5.5.2配置ADS调试环境
    5.5.3建立自己的工程
    5.6小结
    第6章第一个Linux应用程序
    6.1向世界问好——Hello,World!
    6.1.1用vi编辑源代码文件
    6.1.2用gcc编译程序
    6.1.3执行程序
    6.2程序背后做了什么
    6.2.1程序执行的过程
    6.2.2窥视程序执行中的秘密
    6.2.3动态库的作用
    6.3程序如何来的——编译的全部过程
    6.3.1编译源代码
    6.3.2连接目标文件到指定的库
    6.4更简单的办法——用Makefile管理工程
    6.4.1什么是Makefile
    6.4.2它是如何工作的
    6.4.3如何使用Makefile
    6.4.4好的源代码管理习惯
    6.5小结

    第2篇Linux嵌入式开发应用篇
    第7章Linux应用程序编程基础
    7.1内存管理和使用
    7.1.1堆和栈的区别
    7.1.2内存管理函数malloc()和free()
    7.1.3实用的内存分配函数calloc()和realloc()
    7.1.4内存管理编程实例
    7.2ANSIC文件管理
    7.2.1文件指针和流
    7.2.2存储方式
    7.2.3标准输入、标准输出和标准错误
    7.2.4缓冲
    7.2.5打开、关闭文件
    7.2.6读写文件
    7.2.7文件流定位
    7.2.8ANSIC文件编程实例
    7.3POSIX文件I/O编程
    7.3.1底层的文件I/O操作
    7.3.2文件描述符
    7.3.3创建/打开/关闭文件
    7.3.4读写文件内容
    7.3.5文件内容定位
    7.3.6修改已打开文件的属性
    7.3.7POSIX文件编程实例
    7.4小结
    第8章开发多进程/线程程序
    8.1多进程开发
    8.1.1什么是进程
    8.1.2进程环境和属性
    8.1.3创建进程
    8.1.4等待进程结束
    8.1.5退出进程
    8.1.6常用进程间通信的方法
    8.1.7进程编程实例
    8.2多线程开发
    8.2.1线程的概念
    8.2.2进程和线程对比
    8.2.3创建线程
    8.2.4取消线程
    8.2.5等待线程
    8.2.6使用pthread库线程操作实例
    8.3小结
    第9章网络通信应用
    9.1网络通信基础
    9.1.1TCP/IP协议族
    9.1.2IP协议
    9.1.3TCP协议
    9.1.4UDP协议
    9.1.5学习分析协议的方法
    9.2Socket通信基本概念
    9.2.1创建socket对象
    9.2.2面向连接的Socket通信实现
    9.2.3面向连接的echo服务编程实例
    9.2.4无连接的Socket通信实现
    9.2.5无连接的时间服务编程实例
    9.3Socket高级应用
    9.3.1Socket超时处理
    9.3.2使用Select机制处理多连接
    9.3.3使用poll机制处理多连接
    9.3.4多线程环境Socket编程
    9.4小结
    第10章串口通信编程
    10.1串口介绍
    10.1.1什么是串口
    10.1.2串口工作原理
    10.1.3串口流量控制
    10.2开发串口应用程序
    10.2.1操作串口需要用到的头文件
    10.2.2串口操作方法
    10.2.3串口属性设置
    10.2.4与Windows串口终端通信
    10.3串口应用实例——手机短信发送
    10.3.1PC与手机连接发送短信的物理结构
    10.3.2AT指令介绍
    10.3.3GSMAT指令集
    10.3.4PDU编码方式
    10.3.5建立与手机的连接
    10.3.6使用AT指令发送短信
    10.4小结
    第11章嵌入式GUI程序开发
    11.1LinuxGUI介绍
    11.1.1LinuxGUI的发展
    11.1.2常见的嵌入式GUI
    11.2开发图形界面程序
    11.2.1安装Qt开发环境
    11.2.2建立简单的Qt程序
    11.2.3Qt库编程结构
    11.3深入Qt编程
    11.3.1使用Widget
    11.3.2对话框程序设计
    11.3.3信号与槽系统
    11.4移植Qtopia到ARM开发板
    11.4.1需要的资源
    11.4.2准备工作
    11.4.3编译主机Qt工具
    11.4.4交叉编译qtopia
    11.5小结
    第12章软件项目管理
    12.1源代码管理
    12.1.1什么是软件的版本
    12.1.2版本控制的概念
    12.2版本控制系统Subversion
    12.2.1在Linux系统下使用Subversion服务端
    12.2.2在Windows系统下使用TortoiseSVN客户端
    12.3开发文档管理——常见的开发文档
    12.3.1可行性研究报告
    12.3.2项目开发计划
    12.3.3软件需求说明书
    12.3.4概要设计
    12.3.5详细设计
    12.3.6用户手册
    12.3.7其他文档
    12.4使用trac管理软件开发文档
    12.4.1安装trac
    12.4.2配置trac基本设置
    12.4.3配置trac全局脚本
    12.4.4设置trac的Web界面
    12.5Bug跟踪系统
    12.5.1Bug管理的概念和作用
    12.5.2使用Bugzilla跟踪Bug
    12.6小结

    第3篇Linux系统篇
    第13章ARM体系结构及开发实例
    13.1ARM体系结构介绍
    13.1.1ARM体系结构
    13.1.2ARM指令集介绍
    13.2编程模型
    13.2.1数据类型
    13.2.2处理器模式
    13.2.3寄存器
    13.2.4通用寄存器
    13.2.5程序状态寄存器
    13.2.6异常处理
    13.2.7内存和内存I/O映射
    13.3内存管理单元
    13.3.1内存管理介绍
    13.3.2内存访问顺序
    13.3.3地址翻译过程
    13.3.4访问权限
    13.4常见接口和控制器
    13.4.1GPIO接口
    13.4.2中断控制器
    13.4.3RTC控制器
    13.4.4看门狗定时器
    13.4.5试验:使用GPIO点亮LED
    13.5小结
    第14章深入Bootloader
    14.1初识Bootloader
    14.1.1PC(个人电脑)上的Bootloader
    14.1.2什么是嵌入式系统的Bootloader
    14.1.3嵌入式系统常见的Bootloader
    14.2U-Boot分析
    14.2.1获取U-Boot
    14.2.2U-Boot工程结构分析
    14.2.3U-Boot总体工作流程
    14.3U-Boot启动流程分析
    14.3.1_start标号
    14.3.2reset标号
    14.3.3cpu_init_crit标号
    14.3.4lowlevel_init标号
    14.3.5relocate标号
    14.3.6start_armboot()函数
    14.3.7main_loop()函数
    14.4移植U-Boot到开发板
    14.4.1U-Boot移植的一般步骤
    14.4.2移植U-Boot到目标开发板
    14.4.3移植U-Boot的常见问题
    14.5小结
    第15章解析Linux内核
    15.1基本知识
    15.1.1什么是Linux内核
    15.1.2Linux内核版本
    15.1.3如何获取Linux内核代码
    15.1.4编译内核
    15.2Linux内核的子系统
    15.2.1系统调用接口
    15.2.2进程管理子系统
    15.2.3内存管理子系统
    15.2.4虚拟文件系统
    15.2.5网络堆栈
    15.2.6设备驱动
    15.2.7依赖体系结构的代码
    15.3Linux内核代码的工程结构
    15.3.1源代码目录布局
    15.3.2几个重要的Linux内核文件
    15.4内核编译系统
    15.4.1内核编译系统基本架构
    15.4.2内核顶层Makefile分析
    15.4.3内核编译文件分析
    15.4.4目标文件清除机制
    15.4.5编译辅助程序
    15.4.6KBuild变量
    15.5小结
    第16章嵌入式Linux启动流程
    16.1Linux内核初始化流程
    16.2PC的初始化流程
    16.2.1PCBIOS功能和作用
    16.2.2硬盘的数据结构
    16.2.3完整的初始化流程
    16.3嵌入式系统的初始化
    16.4Linux内核初始化
    16.4.1解压缩内核映像
    16.4.2进入内核代码
    16.5启动init内核进程
    16.6根文件系统初始化
    16.6.1根文件系统介绍
    16.6.2挂载虚拟文件系统
    16.7内核交出权限
    16.8init进程
    16.9初始化RAMDisk
    16.9.1RAMDisk介绍
    16.9.2如何使用RAMDisk
    16.9.3实例:使用RAMDisk作为根文件系统
    16.10小结
    第17章Linux文件系统
    17.1Linux文件管理
    17.1.1文件和目录的概念
    17.1.2文件的结构
    17.1.3文件的类型
    17.1.4文件系统的目录结构
    17.1.5文件和目录的存取权限
    17.1.6文件系统管理
    17.2Linux文件系统原理
    17.2.1非日志文件系统
    17.2.2日志文件系统
    17.3常见的Linux文件系统
    17.3.1ext2文件系统
    17.3.2ext3文件系统
    17.3.3ReiserFS文件系统
    17.3.4JFFS文件系统
    17.3.5cramfs文件系统
    17.4其他文件系统
    17.4.1网络文件系统
    17.4.2/proc影子文件系统
    17.5小结
    第18章建立交叉编译工具链
    18.1什么是交叉编译
    18.2需要哪些东西
    18.3手工创建工具链
    18.3.1准备工作——获取源代码
    18.3.2开始了——建立工作环境
    18.3.3建立Linux内核头文件
    18.3.4编译安装binutils
    18.3.5编译安装gcc的C编译器
    18.3.6编译安装glibc库
    18.3.7编译安装gcc的C、C++编译器
    18.3.8最后的工作
    18.4使用脚本创建工具链
    18.5更简便的方法——获取已编译好的交叉编译环境
    18.6小结
    第19章强大的命令系统BusyBox
    19.1BusyBox简介
    19.1.1简单易懂的BusyBox
    19.1.2BusyBox工作原理
    19.1.3安装BusyBox
    19.2交叉编译BusyBox
    19.3使用BusyBox
    19.3.1BusyBox初始化
    19.3.2目标板BusyBox安装
    19.4小结
    第20章Linux内核移植
    20.1Linux内核移植要点
    20.2平台相关代码结构
    20.3建立目标平台工程框架
    20.3.1加入编译菜单项
    20.3.2设置宏与代码文件的对应关系
    20.3.3测试工程框架
    20.4建立目标平台代码框架
    20.4.1ARM处理器相关结构
    20.4.2建立machine_desc结构
    20.4.3加入处理函数
    20.4.4加入定时器结构
    20.4.5测试代码结构
    20.5构建目标板代码
    20.5.1处理器初始化
    20.5.2端口映射
    20.5.3中断处理
    20.5.4定时器处理
    20.5.5编译最终代码
    20.6小结
    第21章内核和应用程序调试技术
    21.1使用gdb调试应用程序概述
    21.2基本的调试技术
    21.2.1列出源代码
    21.2.2断点管理
    21.2.3执行程序
    21.2.4显示程序变量
    21.2.5信号管理
    21.2.6调试实例
    21.3多进程调试
    21.4调试意外终止的程序
    21.5内核调试技术
    21.5.1printk打印调试信息
    21.5.2使用/proc虚拟文件系统
    21.5.3使用KDB调试工具
    21.5.4KDB调试指令
    21.6小结

    第4篇Linux嵌入式驱动开发篇
    第22章Linux设备驱动
    22.1设备驱动介绍
    22.2Linux内核模块
    22.2.1内核模块简介
    22.2.2内核模块的结构
    22.2.3内核模块的加载和卸载
    22.2.4编写一个基本的内核模块
    22.2.5编译内核模块
    22.2.6为内核模块添加参数
    22.3Linux设备驱动
    22.3.1PCI局部总线介绍
    22.3.2Linux设备驱动基本概念
    22.3.3字符设备
    22.3.4块设备
    22.3.5网络设备
    22.4字符设备驱动开发实例
    22.4.1开发一个基本的字符设备驱动
    24.4.2测试字符设备驱动
    22.5小结
    第23章网络设备驱动程序
    23.1网络基础知识
    23.1.1ISO/OSI网络参考模型
    23.1.2TCP/IP协议
    23.2以太网基础
    23.2.1工作原理
    23.2.2常见以太网标准
    23.2.3拓扑结构
    23.2.4工作模式
    23.3网卡工作原理
    23.4内核网络分层结构
    23.4.1内核网络结构
    23.4.2与网络有关的数据结构
    23.4.3内核网络部分的全局变量
    23.5内核网络设备驱动框架
    23.5.1net_device结构
    23.5.2数据包接收流程
    23.5.3数据包发送流程
    23.6实例:DM9000网卡驱动分析
    23.6.1DM9000芯片介绍
    23.6.2网卡驱动程序框架
    23.6.3DM9000网卡驱动主要数据结构
    23.6.4加载驱动程序
    23.6.5停止和启动网卡
    23.6.6发送数据包
    23.6.7接收数据包
    23.6.8中断和定时器处理
    23.7小结
    第24章Flash设备驱动
    24.1LinuxFlash驱动结构
    24.1.1什么是MTD
    24.1.2MTD系统结构
    24.2Flash设备基础
    24.2.1存储原理
    24.2.2性能比较
    24.3内核MTD层
    24.3.1mtd_info结构
    24.3.2mtd_part结构
    24.3.3mtd_partition结构
    24.3.4map_info结构
    24.3.5nand_chip结构
    24.4Flash设备框架
    24.4.1NORFlash设备驱动框架
    24.4.2NANDFlash设备驱动框架
    24.5Flash设备驱动实例——NORFlash设备驱动剖析
    24.5.1数据结构
    24.5.2驱动初始化
    24.5.3驱动卸载
    24.6Flash设备驱动实例——NANDFlash设备驱动分析
    24.6.1S3C2440NAND控制器介绍
    24.6.2数据结构
    24.6.3驱动初始化
    24.6.4驱动卸载
    24.6.5初始化NAND控制器
    24.6.6设置芯片操作
    24.6.7电源管理
    24.7小结
    第25章USB驱动开发
    25.1USB体系介绍
    25.1.1USB设计目标
    25.1.2USB体系概述
    25.1.3USB体系工作流程
    25.2USB驱动程序框架
    25.2.1Linux内核USB驱动框架
    25.2.2主机驱动结构
    25.2.3设备驱动结构
    25.2.4USB驱动程序框架
    25.3USB驱动实例剖析
    25.3.1USB串口驱动
    25.3.2USB键盘驱动
    25.4小结
  • 内容简介:
       “Linux典藏大系”自2010年陆续出版以来,因其内容丰富、讲解细腻、通俗易懂和实用性强等特色而深受广大读者的喜爱,长期位居同类图书销售排行榜的前列,累计销量近10万册。丛书中部分图书荣获51CTO读书频道“受读者喜爱的原创IT技术图书奖”,还有多种图书的中文繁体字版权输出到了中国台湾地区出版发行。丛书中的多个品种被国内几十所培训机构和大中专院校选为教材。丛书的出版还得到了国内Linux领域知名的技术社区ChinaUnix的大力支持。读者在ChinaUnix社区的论坛上与社区中的Linux爱好者进行了广泛的交流,取得了良好的学习效果。2014年2月“Linux典藏大系“全新升级版(第2版)正式出版,第2版图书迎合了Linux技术的新发展,全部采用当前流行和稳定的Linux发行版或者相关工具,是Linux爱好者学习Linux的好帮手。   《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》是获得了大量读者好评的“Linux典藏大系”中的《ARM嵌入式Linux系统开发详解》的第2版。《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》由浅入深,全面、系统地介绍了基于ARM体系结构的嵌入式Linux系统开发所涉及的方方面面技术,并提供了大量实例供读者实战演练。另外,《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》提供了9小时多媒体教学视频及书中涉及的实例源程序,便于读者高效、直观地学习。  《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》共分4篇。第1篇介绍了嵌入式系统入门、嵌入式软硬件系统、ARM处理器、嵌入式Linux、软件开发环境建立和一个Linux应用程序;第2篇介绍了Linux应用程序编程基础、开发多进程/线程程序、网络通信应用、串行口通信编程、嵌入式GUI程序开发和软件项目管理;第3篇介绍ARM体系结构及开发实例、深入Bootloader、解析Linux内核、嵌入式Linux启动流程、Linux文件系统、建立交叉编译工具链、命令系统BusyBox、Linux内核移植,以及内核和应用程序调试技术;第4篇结合5个案例介绍了Linux设备驱动、网络设备驱动、Flash设备驱动和USB驱动的开发过程,以此提高读者的实战水平。  《Linux典藏大系:ARM嵌入式Linux系统开发详解(第2版)》适合广大从事嵌入式Linux系统开发的人员、对嵌入式Linux系统开发有兴趣的爱好者及大中专院校相关专业的学生阅读。
  • 作者简介:
      弓雷,从事嵌入式系统软件开发9年。擅长计算机通信技术,对操作系统内核及底层技术有深入研究。技术涉猎广泛,熟悉Intel IXA架构网络处理器、ARM体系结构、MIPS体系结构和TCP/IP网络协议栈等。曾经移植过Linux 2.6内核到嵌入式设备,参与研发了某部队火控武器通信系统、无人驾驶汽车项目通信系统及10GE/POS骨干网流量管理系统等。目前担任嵌入式软件研发工程师和微码软件研发工程师,从事某公司骨干网P2P流量管理设备的研发。
  • 目录:
    第1篇Linux嵌入式开发基础篇
    第1章嵌入式系统入门
    1.1什么是嵌入式系统
    1.2嵌入式系统应用领域
    1.2.1家用电器和电子类产品
    1.2.2交通工具
    1.2.3公共电子设施
    1.3嵌入式系统发展
    1.3.1嵌入式微控制器
    1.3.2嵌入式微处理器
    1.3.3未来嵌入式系统发展的方向
    1.4典型的嵌入式系统组成
    1.5小结
    第2章嵌入式软硬件系统
    2.1电路基本知识
    2.1.1什么是模拟电路
    2.1.2什么是数字电路
    2.1.3数制转换
    2.2计算机组成原理
    2.2.1计算机体系的发展
    2.2.2中央处理器
    2.2.3存储系统
    2.2.4总线系统
    2.2.5输入输出系统
    2.3软件基础知识
    2.3.1什么是软件
    2.3.2软件开发流程
    2.3.3常见的软件开发模型
    2.3.4计算机编程语言
    2.3.5数据结构
    2.4操作系统知识
    2.4.1什么是操作系统
    2.4.2操作系统的发展历史
    2.4.3操作系统由什么组成
    2.4.4几种操作系统的设计思路
    2.4.5操作系统分类
    2.5小结
    第3章ARM处理器
    3.1微处理器和微控制器
    3.2ARM处理器介绍
    3.2.1ARM微处理器的应用领域
    3.2.2ARM的功能特点
    3.3ARM指令集
    3.3.1算术运算指令
    3.3.2逻辑运算指令
    3.3.3分支指令
    3.3.4数据传送指令
    3.4ARM的结构
    3.4.1ARM体系结构的命名方法
    3.4.2处理器系列划分
    3.4.3处理器工作模式
    3.4.4存储系统
    3.4.5寻址方式
    3.5ARM的功能选型
    3.5.1ARM的选型原则
    3.5.2几种常见的ARM核处理器选型参考
    3.6小结
    第4章嵌入式Linux
    4.1常见的嵌入式操作系统
    4.1.1VxWorks
    4.1.2WindowsCE
    4.1.3PalmOS
    4.1.4Symbian
    4.2嵌入式Linux操作系统
    4.2.1什么是Linux
    4.2.2Linux与UNIX的不同——GPL版权协议介绍
    4.2.3Linux发行版
    4.2.4常见的嵌入式Linux系统
    4.3小结
    第5章建立软件开发环境
    5.1独立的Linux系统
    5.1.1安装UbuntuLinux
    5.1.2怎样安装、卸载软件
    5.1.3怎样配置系统服务
    5.1.4安装主要的开发工具
    5.1.5安装其他的开发工具和文档
    5.2运行在Windows上的Linux系统
    5.2.1什么是Cygwin
    5.2.2如何安装Cygwin
    5.2.3安装开发环境
    5.3Linux常用工具
    5.3.1Linuxshell和常用命令
    5.3.2文本编辑工具vi
    5.3.3搜索工具find和grep
    5.3.4FTP工具
    5.3.5串口工具minicom
    5.4Windows常用工具
    5.4.1代码编辑管理工具SourceInsight
    5.4.2串口工具XShell
    5.5ARM集成开发环境ADS
    5.5.1ADS集成开发环境介绍
    5.5.2配置ADS调试环境
    5.5.3建立自己的工程
    5.6小结
    第6章第一个Linux应用程序
    6.1向世界问好——Hello,World!
    6.1.1用vi编辑源代码文件
    6.1.2用gcc编译程序
    6.1.3执行程序
    6.2程序背后做了什么
    6.2.1程序执行的过程
    6.2.2窥视程序执行中的秘密
    6.2.3动态库的作用
    6.3程序如何来的——编译的全部过程
    6.3.1编译源代码
    6.3.2连接目标文件到指定的库
    6.4更简单的办法——用Makefile管理工程
    6.4.1什么是Makefile
    6.4.2它是如何工作的
    6.4.3如何使用Makefile
    6.4.4好的源代码管理习惯
    6.5小结

    第2篇Linux嵌入式开发应用篇
    第7章Linux应用程序编程基础
    7.1内存管理和使用
    7.1.1堆和栈的区别
    7.1.2内存管理函数malloc()和free()
    7.1.3实用的内存分配函数calloc()和realloc()
    7.1.4内存管理编程实例
    7.2ANSIC文件管理
    7.2.1文件指针和流
    7.2.2存储方式
    7.2.3标准输入、标准输出和标准错误
    7.2.4缓冲
    7.2.5打开、关闭文件
    7.2.6读写文件
    7.2.7文件流定位
    7.2.8ANSIC文件编程实例
    7.3POSIX文件I/O编程
    7.3.1底层的文件I/O操作
    7.3.2文件描述符
    7.3.3创建/打开/关闭文件
    7.3.4读写文件内容
    7.3.5文件内容定位
    7.3.6修改已打开文件的属性
    7.3.7POSIX文件编程实例
    7.4小结
    第8章开发多进程/线程程序
    8.1多进程开发
    8.1.1什么是进程
    8.1.2进程环境和属性
    8.1.3创建进程
    8.1.4等待进程结束
    8.1.5退出进程
    8.1.6常用进程间通信的方法
    8.1.7进程编程实例
    8.2多线程开发
    8.2.1线程的概念
    8.2.2进程和线程对比
    8.2.3创建线程
    8.2.4取消线程
    8.2.5等待线程
    8.2.6使用pthread库线程操作实例
    8.3小结
    第9章网络通信应用
    9.1网络通信基础
    9.1.1TCP/IP协议族
    9.1.2IP协议
    9.1.3TCP协议
    9.1.4UDP协议
    9.1.5学习分析协议的方法
    9.2Socket通信基本概念
    9.2.1创建socket对象
    9.2.2面向连接的Socket通信实现
    9.2.3面向连接的echo服务编程实例
    9.2.4无连接的Socket通信实现
    9.2.5无连接的时间服务编程实例
    9.3Socket高级应用
    9.3.1Socket超时处理
    9.3.2使用Select机制处理多连接
    9.3.3使用poll机制处理多连接
    9.3.4多线程环境Socket编程
    9.4小结
    第10章串口通信编程
    10.1串口介绍
    10.1.1什么是串口
    10.1.2串口工作原理
    10.1.3串口流量控制
    10.2开发串口应用程序
    10.2.1操作串口需要用到的头文件
    10.2.2串口操作方法
    10.2.3串口属性设置
    10.2.4与Windows串口终端通信
    10.3串口应用实例——手机短信发送
    10.3.1PC与手机连接发送短信的物理结构
    10.3.2AT指令介绍
    10.3.3GSMAT指令集
    10.3.4PDU编码方式
    10.3.5建立与手机的连接
    10.3.6使用AT指令发送短信
    10.4小结
    第11章嵌入式GUI程序开发
    11.1LinuxGUI介绍
    11.1.1LinuxGUI的发展
    11.1.2常见的嵌入式GUI
    11.2开发图形界面程序
    11.2.1安装Qt开发环境
    11.2.2建立简单的Qt程序
    11.2.3Qt库编程结构
    11.3深入Qt编程
    11.3.1使用Widget
    11.3.2对话框程序设计
    11.3.3信号与槽系统
    11.4移植Qtopia到ARM开发板
    11.4.1需要的资源
    11.4.2准备工作
    11.4.3编译主机Qt工具
    11.4.4交叉编译qtopia
    11.5小结
    第12章软件项目管理
    12.1源代码管理
    12.1.1什么是软件的版本
    12.1.2版本控制的概念
    12.2版本控制系统Subversion
    12.2.1在Linux系统下使用Subversion服务端
    12.2.2在Windows系统下使用TortoiseSVN客户端
    12.3开发文档管理——常见的开发文档
    12.3.1可行性研究报告
    12.3.2项目开发计划
    12.3.3软件需求说明书
    12.3.4概要设计
    12.3.5详细设计
    12.3.6用户手册
    12.3.7其他文档
    12.4使用trac管理软件开发文档
    12.4.1安装trac
    12.4.2配置trac基本设置
    12.4.3配置trac全局脚本
    12.4.4设置trac的Web界面
    12.5Bug跟踪系统
    12.5.1Bug管理的概念和作用
    12.5.2使用Bugzilla跟踪Bug
    12.6小结

    第3篇Linux系统篇
    第13章ARM体系结构及开发实例
    13.1ARM体系结构介绍
    13.1.1ARM体系结构
    13.1.2ARM指令集介绍
    13.2编程模型
    13.2.1数据类型
    13.2.2处理器模式
    13.2.3寄存器
    13.2.4通用寄存器
    13.2.5程序状态寄存器
    13.2.6异常处理
    13.2.7内存和内存I/O映射
    13.3内存管理单元
    13.3.1内存管理介绍
    13.3.2内存访问顺序
    13.3.3地址翻译过程
    13.3.4访问权限
    13.4常见接口和控制器
    13.4.1GPIO接口
    13.4.2中断控制器
    13.4.3RTC控制器
    13.4.4看门狗定时器
    13.4.5试验:使用GPIO点亮LED
    13.5小结
    第14章深入Bootloader
    14.1初识Bootloader
    14.1.1PC(个人电脑)上的Bootloader
    14.1.2什么是嵌入式系统的Bootloader
    14.1.3嵌入式系统常见的Bootloader
    14.2U-Boot分析
    14.2.1获取U-Boot
    14.2.2U-Boot工程结构分析
    14.2.3U-Boot总体工作流程
    14.3U-Boot启动流程分析
    14.3.1_start标号
    14.3.2reset标号
    14.3.3cpu_init_crit标号
    14.3.4lowlevel_init标号
    14.3.5relocate标号
    14.3.6start_armboot()函数
    14.3.7main_loop()函数
    14.4移植U-Boot到开发板
    14.4.1U-Boot移植的一般步骤
    14.4.2移植U-Boot到目标开发板
    14.4.3移植U-Boot的常见问题
    14.5小结
    第15章解析Linux内核
    15.1基本知识
    15.1.1什么是Linux内核
    15.1.2Linux内核版本
    15.1.3如何获取Linux内核代码
    15.1.4编译内核
    15.2Linux内核的子系统
    15.2.1系统调用接口
    15.2.2进程管理子系统
    15.2.3内存管理子系统
    15.2.4虚拟文件系统
    15.2.5网络堆栈
    15.2.6设备驱动
    15.2.7依赖体系结构的代码
    15.3Linux内核代码的工程结构
    15.3.1源代码目录布局
    15.3.2几个重要的Linux内核文件
    15.4内核编译系统
    15.4.1内核编译系统基本架构
    15.4.2内核顶层Makefile分析
    15.4.3内核编译文件分析
    15.4.4目标文件清除机制
    15.4.5编译辅助程序
    15.4.6KBuild变量
    15.5小结
    第16章嵌入式Linux启动流程
    16.1Linux内核初始化流程
    16.2PC的初始化流程
    16.2.1PCBIOS功能和作用
    16.2.2硬盘的数据结构
    16.2.3完整的初始化流程
    16.3嵌入式系统的初始化
    16.4Linux内核初始化
    16.4.1解压缩内核映像
    16.4.2进入内核代码
    16.5启动init内核进程
    16.6根文件系统初始化
    16.6.1根文件系统介绍
    16.6.2挂载虚拟文件系统
    16.7内核交出权限
    16.8init进程
    16.9初始化RAMDisk
    16.9.1RAMDisk介绍
    16.9.2如何使用RAMDisk
    16.9.3实例:使用RAMDisk作为根文件系统
    16.10小结
    第17章Linux文件系统
    17.1Linux文件管理
    17.1.1文件和目录的概念
    17.1.2文件的结构
    17.1.3文件的类型
    17.1.4文件系统的目录结构
    17.1.5文件和目录的存取权限
    17.1.6文件系统管理
    17.2Linux文件系统原理
    17.2.1非日志文件系统
    17.2.2日志文件系统
    17.3常见的Linux文件系统
    17.3.1ext2文件系统
    17.3.2ext3文件系统
    17.3.3ReiserFS文件系统
    17.3.4JFFS文件系统
    17.3.5cramfs文件系统
    17.4其他文件系统
    17.4.1网络文件系统
    17.4.2/proc影子文件系统
    17.5小结
    第18章建立交叉编译工具链
    18.1什么是交叉编译
    18.2需要哪些东西
    18.3手工创建工具链
    18.3.1准备工作——获取源代码
    18.3.2开始了——建立工作环境
    18.3.3建立Linux内核头文件
    18.3.4编译安装binutils
    18.3.5编译安装gcc的C编译器
    18.3.6编译安装glibc库
    18.3.7编译安装gcc的C、C++编译器
    18.3.8最后的工作
    18.4使用脚本创建工具链
    18.5更简便的方法——获取已编译好的交叉编译环境
    18.6小结
    第19章强大的命令系统BusyBox
    19.1BusyBox简介
    19.1.1简单易懂的BusyBox
    19.1.2BusyBox工作原理
    19.1.3安装BusyBox
    19.2交叉编译BusyBox
    19.3使用BusyBox
    19.3.1BusyBox初始化
    19.3.2目标板BusyBox安装
    19.4小结
    第20章Linux内核移植
    20.1Linux内核移植要点
    20.2平台相关代码结构
    20.3建立目标平台工程框架
    20.3.1加入编译菜单项
    20.3.2设置宏与代码文件的对应关系
    20.3.3测试工程框架
    20.4建立目标平台代码框架
    20.4.1ARM处理器相关结构
    20.4.2建立machine_desc结构
    20.4.3加入处理函数
    20.4.4加入定时器结构
    20.4.5测试代码结构
    20.5构建目标板代码
    20.5.1处理器初始化
    20.5.2端口映射
    20.5.3中断处理
    20.5.4定时器处理
    20.5.5编译最终代码
    20.6小结
    第21章内核和应用程序调试技术
    21.1使用gdb调试应用程序概述
    21.2基本的调试技术
    21.2.1列出源代码
    21.2.2断点管理
    21.2.3执行程序
    21.2.4显示程序变量
    21.2.5信号管理
    21.2.6调试实例
    21.3多进程调试
    21.4调试意外终止的程序
    21.5内核调试技术
    21.5.1printk打印调试信息
    21.5.2使用/proc虚拟文件系统
    21.5.3使用KDB调试工具
    21.5.4KDB调试指令
    21.6小结

    第4篇Linux嵌入式驱动开发篇
    第22章Linux设备驱动
    22.1设备驱动介绍
    22.2Linux内核模块
    22.2.1内核模块简介
    22.2.2内核模块的结构
    22.2.3内核模块的加载和卸载
    22.2.4编写一个基本的内核模块
    22.2.5编译内核模块
    22.2.6为内核模块添加参数
    22.3Linux设备驱动
    22.3.1PCI局部总线介绍
    22.3.2Linux设备驱动基本概念
    22.3.3字符设备
    22.3.4块设备
    22.3.5网络设备
    22.4字符设备驱动开发实例
    22.4.1开发一个基本的字符设备驱动
    24.4.2测试字符设备驱动
    22.5小结
    第23章网络设备驱动程序
    23.1网络基础知识
    23.1.1ISO/OSI网络参考模型
    23.1.2TCP/IP协议
    23.2以太网基础
    23.2.1工作原理
    23.2.2常见以太网标准
    23.2.3拓扑结构
    23.2.4工作模式
    23.3网卡工作原理
    23.4内核网络分层结构
    23.4.1内核网络结构
    23.4.2与网络有关的数据结构
    23.4.3内核网络部分的全局变量
    23.5内核网络设备驱动框架
    23.5.1net_device结构
    23.5.2数据包接收流程
    23.5.3数据包发送流程
    23.6实例:DM9000网卡驱动分析
    23.6.1DM9000芯片介绍
    23.6.2网卡驱动程序框架
    23.6.3DM9000网卡驱动主要数据结构
    23.6.4加载驱动程序
    23.6.5停止和启动网卡
    23.6.6发送数据包
    23.6.7接收数据包
    23.6.8中断和定时器处理
    23.7小结
    第24章Flash设备驱动
    24.1LinuxFlash驱动结构
    24.1.1什么是MTD
    24.1.2MTD系统结构
    24.2Flash设备基础
    24.2.1存储原理
    24.2.2性能比较
    24.3内核MTD层
    24.3.1mtd_info结构
    24.3.2mtd_part结构
    24.3.3mtd_partition结构
    24.3.4map_info结构
    24.3.5nand_chip结构
    24.4Flash设备框架
    24.4.1NORFlash设备驱动框架
    24.4.2NANDFlash设备驱动框架
    24.5Flash设备驱动实例——NORFlash设备驱动剖析
    24.5.1数据结构
    24.5.2驱动初始化
    24.5.3驱动卸载
    24.6Flash设备驱动实例——NANDFlash设备驱动分析
    24.6.1S3C2440NAND控制器介绍
    24.6.2数据结构
    24.6.3驱动初始化
    24.6.4驱动卸载
    24.6.5初始化NAND控制器
    24.6.6设置芯片操作
    24.6.7电源管理
    24.7小结
    第25章USB驱动开发
    25.1USB体系介绍
    25.1.1USB设计目标
    25.1.2USB体系概述
    25.1.3USB体系工作流程
    25.2USB驱动程序框架
    25.2.1Linux内核USB驱动框架
    25.2.2主机驱动结构
    25.2.3设备驱动结构
    25.2.4USB驱动程序框架
    25.3USB驱动实例剖析
    25.3.1USB串口驱动
    25.3.2USB键盘驱动
    25.4小结
查看详情
系列丛书 / 更多
ARM嵌入式Linux系统开发详解(第2版)
Linux典藏大系 Linux从入门到精通+Linux系统管理与网络管理+Linux服务器架设指
刘忆智、林天峰、谭志彬、余柏山 著
ARM嵌入式Linux系统开发详解(第2版)
Linux系统管理与网络管理
余柏山 著
ARM嵌入式Linux系统开发详解(第2版)
Linux网络编程:第2版
宋敬彬 著
ARM嵌入式Linux系统开发详解(第2版)
Linux Shell命令行及脚本编程实例详解
刘艳涛 著
ARM嵌入式Linux系统开发详解(第2版)
Linux服务器架设指南
林天峰、谭志彬 著
ARM嵌入式Linux系统开发详解(第2版)
Shell从入门到精通
张春晓 著
ARM嵌入式Linux系统开发详解(第2版)
Linux环境C程序设计
徐诚 编
ARM嵌入式Linux系统开发详解(第2版)
Linux驱动开发入门与实战(第2版)
郑强 著
ARM嵌入式Linux系统开发详解(第2版)
Linux典藏大系:Linux服务范例速查大全
刘丽霞、邱晓华 著
ARM嵌入式Linux系统开发详解(第2版)
Linux从入门到精通
刘忆智 著
ARM嵌入式Linux系统开发详解(第2版)
Linux指令范例速查手册
黄照鹤 著
ARM嵌入式Linux系统开发详解(第2版)
Linux命令编辑器与Shell编程
王刚 著
相关图书 / 更多
ARM嵌入式Linux系统开发详解(第2版)
AR界面设计(全彩)
林影落
ARM嵌入式Linux系统开发详解(第2版)
AR Foundation增强现实开发实战(ARCore版)
汪祥春
ARM嵌入式Linux系统开发详解(第2版)
AR Foundation增强现实开发实战(ARKit版)
汪祥春
ARM嵌入式Linux系统开发详解(第2版)
ARM微控制器与嵌入式系统
景妮琴
ARM嵌入式Linux系统开发详解(第2版)
AR改变世界
[美]戴维·罗斯 著;李莎 译;湛庐文化 出品
ARM嵌入式Linux系统开发详解(第2版)
AR对话青春期——给男孩女孩的健康手册
池慧
ARM嵌入式Linux系统开发详解(第2版)
AR内衣产品运营--内衣系列艺术设计
柯宇丹 著;于芳;杨雪梅
ARM嵌入式Linux系统开发详解(第2版)
ARM Cortex-M3嵌入式开发与实践——基于STM32F103(第2版·微课视频版)
张勇
ARM嵌入式Linux系统开发详解(第2版)
AR/VR应用设计与开发
王楠 著
ARM嵌入式Linux系统开发详解(第2版)
ARM Cortex-M4 嵌入式系统外设接口开发——基于STM32F4系列微控制器(微课视频版)
奚海蛟
ARM嵌入式Linux系统开发详解(第2版)
AR奇趣玩百科:体育运动锻炼
张栢赫 著;阳光博客 出品;肖叶
ARM嵌入式Linux系统开发详解(第2版)
ARM与DSP硬件特色和编程指南
王潞钢 何超 姜涛 著
您可能感兴趣 / 更多