Linux系统移植

副标题:无

作   者:刘刚,赵剑川等编著

分类号:

ISBN:9787302344261

微信扫一扫,移动浏览光盘

简介

本书是获得了大量读者好评的“Linux典藏大系”中的《Linux系统移植》的第2版。本书由浅入深,全面、系统地介绍了Linux系统移植的各方面知识。书中的每个章节都有相应的实例编译或移植过程,每个移植实例都具有代表性,在实际应用和开发中有很高的参考价值。另外,本书赠送17.5小时多媒体教学视频及书中涉及的实例源程序,便于读者高效、直观地学习。   本书分为4篇。第1篇简单介绍了Linux内核和嵌入式Linux系统开发环境搭建;第2篇介绍了一个最基本的嵌入式系统的组成部分、Bootloader移植、内核移植和文件系统移植;第3篇介绍了LCD、触摸屏、USB、网卡、音频、SD卡、NandFlash等流行的设备驱动移植过程;第4篇从嵌入式产品角度出第1篇  系统移植基础篇  第1章  Linux内核介绍   1.1  系统调用接口   1.1.1  Linux系统调用   1.1.2  用户编程接口   1.1.3  系统调用与服务例程的对应关系   1.1.4  系统调用过程   1.1.5  系统调用传递的参数   1.2  进程管理   1.2.1  进程   1.2.2  进程描述符   1.2.3  进程状态   1.2.4  进程调度   1.2.5  进程地址空间   1.3  内存管理   1.3.1  内存管理技术   1.3.2  内存区管理   1.3.3  内核中获取内存的几种方式   1.4  虚拟文件系统   1.4.1  虚拟文件系统作用   1.4.2  文件系统的注册   1.4.3  文件系统的安装和卸载   1.5  设备驱动程序   1.5.1  字符设备驱动程序   1.5.2  块设备驱动程序   1.5.3  网络设备驱动程序   1.5.4  内存与I/O操作   1.6  小结  第2章  嵌入式Linux开发环境搭建   2.1  虚拟机及Linux安装   2.1.1  虚拟机的安装   2.1.2  虚拟机和主机通信设置   2.1.3  虚拟机与主机共享文件   2.1.4  虚拟机与主机文件传输   2.2  交叉编译工具   2.2.1  交叉编译工具安装   2.2.2  交叉编译器测试   2.3  超级终端和Minicom   2.3.1  超级终端软件的安装   2.3.2  配置Minicom   2.3.3  配置SecureCRT   2.4  内核、文件系统加载工具   2.4.1  烧写Bootloader   2.4.2  内核和文件系统下载   2.4.3  应用程序和文件传输   2.5  在开发中使用网络文件系统(NFS)   2.5.1  虚拟机设置   2.5.2  虚拟机的IP地址设置   2.5.3  验证网络连接   2.5.4  设置共享目录   2.5.5  启动NFS服务   2.5.6  修改共享配置后   2.5.7  挂载NFS   2.5.8  双网卡挂载NFS   2.6  小结 第2篇  系统移植技术篇  第3章  Bootloader移植   3.1  Bootloader介绍   3.1.1  Bootloader与嵌入式Linux系统的关系   3.1.2  Bootloader基本概念   3.1.3  Bootloader启动过程   3.2  Bootloader之U-Boot   3.2.1  U-Boot优点   3.2.2  U-Boot的主要功能   3.2.3  U-Boot目录结构   3.2.4  U-Boot的编译   3.3  小结  第4章  Linux内核裁剪与移植   4.1  Linux内核结构   4.1.1  内核的主要组成部分   4.1.2  内核源码目录介绍   4.2  内核配置选项   4.2.1  一般选项   4.2.2  内核模块加载方式支持选项   4.2.3  系统调用、类型、特性、启动相关选项   4.2.4  网络协议支持相关选项   4.2.5  设备驱动支持相关选项   4.2.6  文件系统类型支持相关选项   4.2.7  安全相关选项   4.2.8  其他选项   4.3  内核裁剪及编译   4.3.1  安装内核源代码   4.3.2  检查编译环境设置   4.3.3  配置内核   4.3.4  编译内核   4.4  内核升级   4.4.1  准备升级内核文件   4.4.2  移植过程   4.5  小结  第5章  嵌入式文件系统制作   5.1  文件系统选择   5.1.1  Flash硬件方案比较   5.1.2  嵌入式文件系统的分层结构   5.2  基于Flash的文件系统   5.2.1  JFFS文件系统(Journalling Flash File System)   5.2.2  YAFFS文件系统(Yet Another Flash File System)   5.2.3  Cramfs文件系统(Compressed ROM File System)   5.2.4  Romfs文件系统(ROM File System)   5.3  基于RAM的文件系统   5.4  文件系统的制作   5.4.1  制作Ramdisk文件系统   5.4.2  制作YAFFS2文件系统   5.4.3  制作JFFS2文件系统   5.4.4  其他文件系统制作   5.5  小结 第3篇  系统移植与驱动篇  第6章  LCD驱动移植   6.1  认识LCD相关硬件原理   6.1.1  LCD概述   6.1.2  LCD控制器   6.1.3  LCD控制器方块图   6.1.4  LCD控制器操作   6.1.5  LCD控制寄存器   6.2  LCD参数设置   6.3  内核LCD驱动机制   6.3.1  FrameBuffer概述   6.3.2  FrameBuffer 设备驱动的结构   6.4  Linux 2.6.32的LCD驱动源码分析   6.4.1  LCD驱动开发的主要工作   6.4.2  s3c2410fb_init()函数分析   6.4.3  s3c2410fb_probe()函数分析   6.4.4  s3c2410fb_remove()函数分析   6.5  移植内核中的LCD驱动   6.5.1  LCD硬件电路图   6.5.2  修改LCD源码   6.5.3  配置内核   6.6  小结  第7章  触摸屏驱动移植   7.1  触摸屏概述   7.1.1  触摸屏工作原理   7.1.2  触摸屏的主要类型   7.2  S3C2440 ADC接口使用   7.2.1  S3C2440触摸屏接口概述   7.2.2  S3C2440触摸屏接口操作   7.3  2.6内核触摸屏驱动源码分析(s3c2410_ts.c源码分析)   7.4  Linux内核输入子系统介绍   7.4.1  Input子系统概述   7.4.2  输入设备结构体   7.4.3  输入链路的创建过程   7.4.4  使用Input子系统   7.4.5  编写输入设备驱动需要完成的工作   7.5  触摸屏驱动移植和内核编译   7.5.1  修改初始化源码   7.5.2  修改硬件驱动源码s3c2440_ts.c   7.5.3  修改Kconfig和Makefile   7.5.4  配置编译内核   7.5.5  触摸屏测试程序设计   7.6  小结  第8章  USB设备驱动移植   8.1  USB协议   8.1.1  USB协议的系统主要组成部分   8.1.2  总线物理拓扑结构   8.1.3  USB设备、配置、接口、端点   8.1.4  USB设备状态   8.1.5  USB枚举过程   8.1.6  USB请求块(URB)   8.2  USB主机驱动   8.2.1  USB主机驱动结构和功能   8.2.2  主机控制器驱动(usb_hcd)   8.2.3  OHCI主机控制器驱动   8.2.4  S3C24XX OHCI主机控制器驱动实例   8.3  USB设备驱动   8.3.1  USB骨架程序分析   8.3.2  USB驱动移植的时钟设置   8.4  USB鼠标键盘驱动   8.4.1  USB鼠标驱动代码分析   8.4.2  USB键盘驱动代码分析   8.4.3  内核中添加USB鼠标键盘驱动   8.5  U盘驱动   8.5.1  内核配置   8.5.2  移植和测试   8.6  小结  第9章  网卡驱动程序移植   9.1  以太网概述   9.1.1  以太网连接   9.1.2  以太网技术概述   9.1.3  以太网的帧结构   9.2  网络设备驱动程序体系结构   9.2.1  嵌入式Linux网络驱动程序介绍   9.2.2  Linux网络设备驱动的体系结构   9.2.3  网络设备驱动程序编写方法   9.2.4  网络设备驱动程序应用实例   9.3  net_device 数据结构   9.3.1  全局信息   9.3.2  硬件信息   9.3.3  接口信息   9.3.4  设备方法   9.3.5  公用成员   9.4  DM9000网卡概述   9.4.1  DM9000网卡总体介绍   9.4.2  DM9000网卡的特点   9.4.3  内部寄存器   9.4.4  功能描述   9.5  DM9000网卡驱动程序移植   9.5.1  DM9000网卡连接   9.5.2  驱动分析——硬件的数据结构   9.5.3  驱动分析——数据读写函数   9.5.4  驱动分析——重置网卡   9.5.5  驱动分析——初始化网卡   9.5.6  驱动分析——打开和关闭网卡   9.5.7  驱动分析——数据包的发送与接收   9.5.8  DM9000网卡驱动程序移植   9.6  小结  第10章  音频设备驱动程序移植   10.1  音频设备接口   10.1.1  PCM(脉冲编码调制)接口   10.1.2  IIS(Inter-IC Sound)接口   10.1.3  AC97(Audio Codec 1997)接口   10.1.4  Linux音频设备驱动框架   10.2  Linux音频设备驱动——OSS驱动框架   10.2.1  OSS驱动架构硬件   10.2.2  OSS驱动架构代码   10.2.3  OSS初始化函数oss_init()   10.2.4  OSS释放函数oss_cleanup()   10.2.5  打开设备文件函数sound_open()   10.2.6  录音函数sound_read()   10.2.7  播放函数sound_write()   10.2.8  控制函数sound_ioctl()   10.3  Linux音频设备驱动——ALSA驱动框架   10.3.1  card和组件   10.3.2  PCM设备   10.3.3  控制接口   10.3.4  AC97 API音频接口   10.4  音频设备应用程序编写   10.4.1  DSP接口编程   10.4.2  MIXER接口编程   10.4.3  ALSA应用程序编程   10.5  音频设备驱动移植   10.5.1  添加UDA1341结构体   10.5.2  修改录音通道   10.5.3  内核中添加UDA1341驱动支持   10.5.4  移植新内核并进行测试   10.6  音频播放程序madplay的移植   10.6.1  准备移植需要的源文件   10.6.2  交叉编译   10.6.3  移植和测试   10.6.4  编译中可能遇到的问题   10.7  小结  第11章  SD卡驱动移植   11.1  SD卡简介   11.1.1  SD卡系统概念   11.1.2  SD卡寄存器   11.1.3  SD功能描述   11.2  SD卡驱动程序分析   11.2.1  host驱动部分   11.2.2  core驱动部分   11.2.3  card驱动部分   11.3  SD卡移植步骤   11.3.1  添加延时和中断   11.3.2  配置内核   11.3.3  烧写新内核   11.4  小结  第12章  NandFlash驱动移植   12.1  NandFlash介绍   12.1.1  NandFlash命令介绍   12.1.2  NandFlash控制器   12.2  NandFlash驱动介绍   12.2.1  Nand芯片结构   12.2.2  NandFlash驱动分析   12.3  NandFlash驱动移植   12.3.1  内核的修改   12.3.2  内核的配置和编译   12.4  小结 第4篇  系统移植高级篇  第13章  MiniGUI与移植   13.1  MiniGUI在上位机中的安装   13.1.1  安装需要的安装文件   13.1.2  MiniGUI的运行模式   13.1.3  编译并安装MiniGUI   13.1.4  编译安装MiniGUI需要的图片支持库   13.1.5  编译MiniGUI应用程序例子   13.2  MiniGUI的交叉编译和移植   13.2.1  交叉编译MiniGUI   13.2.2  移植MiniGUI程序   13.3  小结  第14章  Qt开发与Qtopia移植   14.1  Qt安装与编程   14.1.1  下载安装Qt   14.1.2  Qt编程   14.1.3  使用qmake生成Makefile   14.2  Qtopia Core在X86平台上的安装和应用   14.2.1  Qtopia Core安装准备   14.2.2  编译Qtopia Core   14.2.3  Qtopia在X86平台上的应用开发   14.3  Qtopia Core在嵌入式Linux上的移植   14.3.1  Qtopia Core移植准备   14.3.2  交叉编译Qtopia Core   14.3.3  编译内核   14.3.4  应用程序开发   14.3.5  应用程序移植   14.4  小结  第15章  嵌入式数据库Berkeley DB移植   15.1  数据库的基本概念   15.1.1  利用文档和源代码   15.1.2  创建环境句柄   15.1.3  创建数据库句柄   15.1.4  打开数据库   15.1.5  DBT结构   15.1.6  存取数据   15.1.7  关闭数据库   15.2  Berkeley DB数据库安装   15.2.1  安装成C库   15.2.2  安装成C++库   15.2.3  交叉编译安装Berkeley DB   15.3  使用Berkeley DB数据库   15.3.1  代码分析   15.3.2  编译运行程序   15.4  移植Berkeley DB数据库   15.4.1  数据库设计   15.4.2  编写应用程序   15.4.3  调试和交叉编译应用程序   15.4.4  数据库的移植和测试   15.5  小结  第16章  嵌入式数据库SQLite移植   16.1  SQLite支持的SQL语句   16.1.1  数据定义语句   16.1.2  数据操作语句   16.2  SQLite数据库编译、安装和使用   16.2.1  安装SQLite   16.2.2  利用SQL语句操作SQLite数据库   16.2.3  利用C接口访问SQLite数据库   16.3  移植SQLite   16.3.1  交叉编译SQLite   16.3.2  交叉编译应用程序   16.4  移植SQLite数据库   16.4.1  文件移植   16.4.2  运行应用程序   16.4.3  测试sqlite3   16.5  小结  第17章  嵌入式Web服务器BOA移植   17.1  BOA介绍   17.1.1  BOA的功能   17.1.2  BOA流程分析   17.1.3  BOA配置信息   17.2  BOA编译和HTML页面测试   17.2.1  编译BOA源代码   17.2.2  设置BOA配置信息   17.2.3  测试BOA   17.3  CGI脚本测试   17.3.1  编写测试代码   17.3.2  编译测试程序   17.3.3  测试CGI脚本   17.4  BOA交叉编译与移植   17.4.1  交叉编译BOA   17.4.2  准备测试程序   17.4.3  配置BOA   17.4.4  测试   17.5  BOA与SQLite结合   17.5.1  通过CGI程序访问SQLite   17.5.2  编译和测试   17.6  小结  第18章  嵌入式Web服务器Thttpd移植   18.1  Thttpd介绍   18.1.1  Web服务器比较   18.1.2  Thttpd的特点   18.1.3  Thttpd核心代码分析   18.2  Thttpd编译和HTML页面测试   18.2.1  配置文件介绍   18.2.2  Thttpd编译   18.2.3  运行和测试Thttpd   18.3  CGI脚本测试   18.3.1  编写测试代码   18.3.2  编译测试程序   18.3.3  测试CGI脚本   18.4  Thttpd交叉编译与移植   18.4.1  交叉编译Thttpd   18.4.2  交叉编译CGI程序   18.4.3  移植Thttpd   18.4.4  测试   18.5  Thttpd与嵌入式数据库结合   18.5.1  通过CGI程序访问SQLite   18.5.2  编译和测试   18.6  小结  第19章  JVM及其移植   19.1  JVM介绍   19.1.1  JVM原理   19.1.2  JVM支持的数据类型   19.1.3  JVM指令系统   19.1.4  JVM寄存器   19.1.5  JVM栈结构   19.1.6  JVM碎片回收堆   19.1.7  JVM异常抛出和异常捕获   19.2  类装载   19.2.1  装载类的结构体   19.2.2  装载类的操作   19.3  垃圾回收   19.3.1  mark-and-sweep回收算法   19.3.2  分代回收算法   19.3.3  增量收集   19.4  解析器   19.4.1  函数Interpret()   19.4.2  函数FastInterpret()   19.4.3  函数SlowInterpret ()   19.5  Java编程浅析   19.5.1  Java程序命令   19.5.2  Java构造函数   19.5.3  Java主函数   19.5.4  Java程序编译与运行   19.6  KVM执行过程   19.6.1  KVM启动过程   19.6.2  KVM用到的计数器清零   19.6.3  KVM初始化内存管理   19.6.4  KVM中的哈希表初始化   19.6.5  KVM中的事件初始化   19.6.6  KVM中的资源释放   19.7  PC机安装JVM   19.7.1  JVM在Windows上的安装   19.7.2  JVM在Linux上的安装   19.8  KVM移植和测试   19.8.1  SDK安装和环境变量设置   19.8.2  修改Makefile和代码   19.8.3  KVM编译   19.8.4  测试   19.8.5  移植   19.9  小结  第20章  VoIP技术与Linphone编译   20.1  VoIP介绍   20.1.1  VoIP基本原理   20.1.2  VoIP的基本传输过程   20.1.3  VoIP的优势   20.1.4  VoIP的实现方式   20.1.5  VoIP的关键技术   20.2  oSIP协议概述   20.3  oSIP状态机   20.3.1  ICT(Invite Client (outgoing) Transaction)状态机   20.3.2  NICT(Non-Invite Client (outgoing) Transaction)状态机   20.3.3  IST(Invite Server (incoming) Transaction)状态机   20.3.4  NIST(Non-Invite Server (incoming) Transaction)状态机   20.4  oSIP解析器   20.4.1  初始化解析类型函数osip_body_init()   20.4.2  释放函数osip_body_free()   20.4.3  字符串到body类型转换函数osip_body_parse()   20.4.4  body类型到字符串类型转换函数osip_body_to_str()   20.4.5  克隆函数osip_body_clone()   20.4.6  oSIP解析器分类   20.5  oSIP事务层   20.6  SIP建立会话的过程   20.7  RTP协议   20.7.1  RTP基本概念   20.7.2  发送RTP   20.7.3  接收RTP   20.8  Linphone编译与测试   20.8.1  编译Linphone需要的软件包   20.8.2  X86平台上编译和安装   20.8.3  Linphone测试   20.8.4  进一步的测试和开发   20.9  Linphone交叉编译   20.9.1  Linphone的交叉编译   20.9.2  Linphon     

目录

第1篇  系统移植基础篇
 第1章  Linux内核介绍
  1.1  系统调用接口
  1.1.1  Linux系统调用
  1.1.2  用户编程接口
  1.1.3  系统调用与服务例程的对应关系
  1.1.4  系统调用过程
  1.1.5  系统调用传递的参数
  1.2  进程管理
  1.2.1  进程
  1.2.2  进程描述符
  1.2.3  进程状态
  1.2.4  进程调度
  1.2.5  进程地址空间
  1.3  内存管理
  1.3.1  内存管理技术
  1.3.2  内存区管理
  1.3.3  内核中获取内存的几种方式
  1.4  虚拟文件系统
  1.4.1  虚拟文件系统作用
  1.4.2  文件系统的注册
  1.4.3  文件系统的安装和卸载
  1.5  设备驱动程序
  1.5.1  字符设备驱动程序
  1.5.2  块设备驱动程序
  1.5.3  网络设备驱动程序
  1.5.4  内存与I/O操作
  1.6  小结
 第2章  嵌入式Linux开发环境搭建
  2.1  虚拟机及Linux安装
  2.1.1  虚拟机的安装
  2.1.2  虚拟机和主机通信设置
  2.1.3  虚拟机与主机共享文件
  2.1.4  虚拟机与主机文件传输
  2.2  交叉编译工具
  2.2.1  交叉编译工具安装
  2.2.2  交叉编译器测试
  2.3  超级终端和Minicom
  2.3.1  超级终端软件的安装
  2.3.2  配置Minicom
  2.3.3  配置SecureCRT
  2.4  内核、文件系统加载工具
  2.4.1  烧写Bootloader
  2.4.2  内核和文件系统下载
  2.4.3  应用程序和文件传输
  2.5  在开发中使用网络文件系统(NFS)
  2.5.1  虚拟机设置
  2.5.2  虚拟机的IP地址设置
  2.5.3  验证网络连接
  2.5.4  设置共享目录
  2.5.5  启动NFS服务
  2.5.6  修改共享配置后
  2.5.7  挂载NFS
  2.5.8  双网卡挂载NFS
  2.6  小结
第2篇  系统移植技术篇
 第3章  Bootloader移植
  3.1  Bootloader介绍
  3.1.1  Bootloader与嵌入式Linux系统的关系
  3.1.2  Bootloader基本概念
  3.1.3  Bootloader启动过程
  3.2  Bootloader之U-Boot
  3.2.1  U-Boot优点
  3.2.2  U-Boot的主要功能
  3.2.3  U-Boot目录结构
  3.2.4  U-Boot的编译
  3.3  小结
 第4章  Linux内核裁剪与移植
  4.1  Linux内核结构
  4.1.1  内核的主要组成部分
  4.1.2  内核源码目录介绍
  4.2  内核配置选项
  4.2.1  一般选项
  4.2.2  内核模块加载方式支持选项
  4.2.3  系统调用、类型、特性、启动相关选项
  4.2.4  网络协议支持相关选项
  4.2.5  设备驱动支持相关选项
  4.2.6  文件系统类型支持相关选项
  4.2.7  安全相关选项
  4.2.8  其他选项
  4.3  内核裁剪及编译
  4.3.1  安装内核源代码
  4.3.2  检查编译环境设置
  4.3.3  配置内核
  4.3.4  编译内核
  4.4  内核升级
  4.4.1  准备升级内核文件
  4.4.2  移植过程
  4.5  小结
 第5章  嵌入式文件系统制作
  5.1  文件系统选择
  5.1.1  Flash硬件方案比较
  5.1.2  嵌入式文件系统的分层结构
  5.2  基于Flash的文件系统
  5.2.1  JFFS文件系统(Journalling Flash File System)
  5.2.2  YAFFS文件系统(Yet Another Flash File System)
  5.2.3  Cramfs文件系统(Compressed ROM File System)
  5.2.4  Romfs文件系统(ROM File System)
  5.3  基于RAM的文件系统
  5.4  文件系统的制作
  5.4.1  制作Ramdisk文件系统
  5.4.2  制作YAFFS2文件系统
  5.4.3  制作JFFS2文件系统
  5.4.4  其他文件系统制作
  5.5  小结
第3篇  系统移植与驱动篇
 第6章  LCD驱动移植
  6.1  认识LCD相关硬件原理
  6.1.1  LCD概述
  6.1.2  LCD控制器
  6.1.3  LCD控制器方块图
  6.1.4  LCD控制器操作
  6.1.5  LCD控制寄存器
  6.2  LCD参数设置
  6.3  内核LCD驱动机制
  6.3.1  FrameBuffer概述
  6.3.2  FrameBuffer 设备驱动的结构
  6.4  Linux 2.6.32的LCD驱动源码分析
  6.4.1  LCD驱动开发的主要工作
  6.4.2  s3c2410fb_init()函数分析
  6.4.3  s3c2410fb_probe()函数分析
  6.4.4  s3c2410fb_remove()函数分析
  6.5  移植内核中的LCD驱动
  6.5.1  LCD硬件电路图
  6.5.2  修改LCD源码
  6.5.3  配置内核
  6.6  小结
 第7章  触摸屏驱动移植
  7.1  触摸屏概述
  7.1.1  触摸屏工作原理
  7.1.2  触摸屏的主要类型
  7.2  S3C2440 ADC接口使用
  7.2.1  S3C2440触摸屏接口概述
  7.2.2  S3C2440触摸屏接口操作
  7.3  2.6内核触摸屏驱动源码分析(s3c2410_ts.c源码分析)
  7.4  Linux内核输入子系统介绍
  7.4.1  Input子系统概述
  7.4.2  输入设备结构体
  7.4.3  输入链路的创建过程
  7.4.4  使用Input子系统
  7.4.5  编写输入设备驱动需要完成的工作
  7.5  触摸屏驱动移植和内核编译
  7.5.1  修改初始化源码
  7.5.2  修改硬件驱动源码s3c2440_ts.c
  7.5.3  修改Kconfig和Makefile
  7.5.4  配置编译内核
  7.5.5  触摸屏测试程序设计
  7.6  小结
 第8章  USB设备驱动移植
  8.1  USB协议
  8.1.1  USB协议的系统主要组成部分
  8.1.2  总线物理拓扑结构
  8.1.3  USB设备、配置、接口、端点
  8.1.4  USB设备状态
  8.1.5  USB枚举过程
  8.1.6  USB请求块(URB)
  8.2  USB主机驱动
  8.2.1  USB主机驱动结构和功能
  8.2.2  主机控制器驱动(usb_hcd)
  8.2.3  OHCI主机控制器驱动
  8.2.4  S3C24XX OHCI主机控制器驱动实例
  8.3  USB设备驱动
  8.3.1  USB骨架程序分析
  8.3.2  USB驱动移植的时钟设置
  8.4  USB鼠标键盘驱动
  8.4.1  USB鼠标驱动代码分析
  8.4.2  USB键盘驱动代码分析
  8.4.3  内核中添加USB鼠标键盘驱动
  8.5  U盘驱动
  8.5.1  内核配置
  8.5.2  移植和测试
  8.6  小结
 第9章  网卡驱动程序移植
  9.1  以太网概述
  9.1.1  以太网连接
  9.1.2  以太网技术概述
  9.1.3  以太网的帧结构
  9.2  网络设备驱动程序体系结构
  9.2.1  嵌入式Linux网络驱动程序介绍
  9.2.2  Linux网络设备驱动的体系结构
  9.2.3  网络设备驱动程序编写方法
  9.2.4  网络设备驱动程序应用实例
  9.3  net_device 数据结构
  9.3.1  全局信息
  9.3.2  硬件信息
  9.3.3  接口信息
  9.3.4  设备方法
  9.3.5  公用成员
  9.4  DM9000网卡概述
  9.4.1  DM9000网卡总体介绍
  9.4.2  DM9000网卡的特点
  9.4.3  内部寄存器
  9.4.4  功能描述
  9.5  DM9000网卡驱动程序移植
  9.5.1  DM9000网卡连接
  9.5.2  驱动分析——硬件的数据结构
  9.5.3  驱动分析——数据读写函数
  9.5.4  驱动分析——重置网卡
  9.5.5  驱动分析——初始化网卡
  9.5.6  驱动分析——打开和关闭网卡
  9.5.7  驱动分析——数据包的发送与接收
  9.5.8  DM9000网卡驱动程序移植
  9.6  小结
 第10章  音频设备驱动程序移植
  10.1  音频设备接口
  10.1.1  PCM(脉冲编码调制)接口
  10.1.2  IIS(Inter-IC Sound)接口
  10.1.3  AC97(Audio Codec 1997)接口
  10.1.4  Linux音频设备驱动框架
  10.2  Linux音频设备驱动——OSS驱动框架
  10.2.1  OSS驱动架构硬件
  10.2.2  OSS驱动架构代码
  10.2.3  OSS初始化函数oss_init()
  10.2.4  OSS释放函数oss_cleanup()
  10.2.5  打开设备文件函数sound_open()
  10.2.6  录音函数sound_read()
  10.2.7  播放函数sound_write()
  10.2.8  控制函数sound_ioctl()
  10.3  Linux音频设备驱动——ALSA驱动框架
  10.3.1  card和组件
  10.3.2  PCM设备
  10.3.3  控制接口
  10.3.4  AC97 API音频接口
  10.4  音频设备应用程序编写
  10.4.1  DSP接口编程
  10.4.2  MIXER接口编程
  10.4.3  ALSA应用程序编程
  10.5  音频设备驱动移植
  10.5.1  添加UDA1341结构体
  10.5.2  修改录音通道
  10.5.3  内核中添加UDA1341驱动支持
  10.5.4  移植新内核并进行测试
  10.6  音频播放程序madplay的移植
  10.6.1  准备移植需要的源文件
  10.6.2  交叉编译
  10.6.3  移植和测试
  10.6.4  编译中可能遇到的问题
  10.7  小结
 第11章  SD卡驱动移植
  11.1  SD卡简介
  11.1.1  SD卡系统概念
  11.1.2  SD卡寄存器
  11.1.3  SD功能描述
  11.2  SD卡驱动程序分析
  11.2.1  host驱动部分
  11.2.2  core驱动部分
  11.2.3  card驱动部分
  11.3  SD卡移植步骤
  11.3.1  添加延时和中断
  11.3.2  配置内核
  11.3.3  烧写新内核
  11.4  小结
 第12章  NandFlash驱动移植
  12.1  NandFlash介绍
  12.1.1  NandFlash命令介绍
  12.1.2  NandFlash控制器
  12.2  NandFlash驱动介绍
  12.2.1  Nand芯片结构
  12.2.2  NandFlash驱动分析
  12.3  NandFlash驱动移植
  12.3.1  内核的修改
  12.3.2  内核的配置和编译
  12.4  小结
第4篇  系统移植高级篇
 第13章  MiniGUI与移植
  13.1  MiniGUI在上位机中的安装
  13.1.1  安装需要的安装文件
  13.1.2  MiniGUI的运行模式
  13.1.3  编译并安装MiniGUI
  13.1.4  编译安装MiniGUI需要的图片支持库
  13.1.5  编译MiniGUI应用程序例子
  13.2  MiniGUI的交叉编译和移植
  13.2.1  交叉编译MiniGUI
  13.2.2  移植MiniGUI程序
  13.3  小结
 第14章  Qt开发与Qtopia移植
  14.1  Qt安装与编程
  14.1.1  下载安装Qt
  14.1.2  Qt编程
  14.1.3  使用qmake生成Makefile
  14.2  Qtopia Core在X86平台上的安装和应用
  14.2.1  Qtopia Core安装准备
  14.2.2  编译Qtopia Core
  14.2.3  Qtopia在X86平台上的应用开发
  14.3  Qtopia Core在嵌入式Linux上的移植
  14.3.1  Qtopia Core移植准备
  14.3.2  交叉编译Qtopia Core
  14.3.3  编译内核
  14.3.4  应用程序开发
  14.3.5  应用程序移植
  14.4  小结
 第15章  嵌入式数据库Berkeley DB移植
  15.1  数据库的基本概念
  15.1.1  利用文档和源代码
  15.1.2  创建环境句柄
  15.1.3  创建数据库句柄
  15.1.4  打开数据库
  15.1.5  DBT结构
  15.1.6  存取数据
  15.1.7  关闭数据库
  15.2  Berkeley DB数据库安装
  15.2.1  安装成C库
  15.2.2  安装成C++库
  15.2.3  交叉编译安装Berkeley DB
  15.3  使用Berkeley DB数据库
  15.3.1  代码分析
  15.3.2  编译运行程序
  15.4  移植Berkeley DB数据库
  15.4.1  数据库设计
  15.4.2  编写应用程序
  15.4.3  调试和交叉编译应用程序
  15.4.4  数据库的移植和测试
  15.5  小结
 第16章  嵌入式数据库SQLite移植
  16.1  SQLite支持的SQL语句
  16.1.1  数据定义语句
  16.1.2  数据操作语句
  16.2  SQLite数据库编译、安装和使用
  16.2.1  安装SQLite
  16.2.2  利用SQL语句操作SQLite数据库
  16.2.3  利用C接口访问SQLite数据库
  16.3  移植SQLite
  16.3.1  交叉编译SQLite
  16.3.2  交叉编译应用程序
  16.4  移植SQLite数据库
  16.4.1  文件移植
  16.4.2  运行应用程序
  16.4.3  测试sqlite3
  16.5  小结
 第17章  嵌入式Web服务器BOA移植
  17.1  BOA介绍
  17.1.1  BOA的功能
  17.1.2  BOA流程分析
  17.1.3  BOA配置信息
  17.2  BOA编译和HTML页面测试
  17.2.1  编译BOA源代码
  17.2.2  设置BOA配置信息
  17.2.3  测试BOA
  17.3  CGI脚本测试
  17.3.1  编写测试代码
  17.3.2  编译测试程序
  17.3.3  测试CGI脚本
  17.4  BOA交叉编译与移植
  17.4.1  交叉编译BOA
  17.4.2  准备测试程序
  17.4.3  配置BOA
  17.4.4  测试
  17.5  BOA与SQLite结合
  17.5.1  通过CGI程序访问SQLite
  17.5.2  编译和测试
  17.6  小结
 第18章  嵌入式Web服务器Thttpd移植
  18.1  Thttpd介绍
  18.1.1  Web服务器比较
  18.1.2  Thttpd的特点
  18.1.3  Thttpd核心代码分析
  18.2  Thttpd编译和HTML页面测试
  18.2.1  配置文件介绍
  18.2.2  Thttpd编译
  18.2.3  运行和测试Thttpd
  18.3  CGI脚本测试
  18.3.1  编写测试代码
  18.3.2  编译测试程序
  18.3.3  测试CGI脚本
  18.4  Thttpd交叉编译与移植
  18.4.1  交叉编译Thttpd
  18.4.2  交叉编译CGI程序
  18.4.3  移植Thttpd
  18.4.4  测试
  18.5  Thttpd与嵌入式数据库结合
  18.5.1  通过CGI程序访问SQLite
  18.5.2  编译和测试
  18.6  小结
 第19章  JVM及其移植
  19.1  JVM介绍
  19.1.1  JVM原理
  19.1.2  JVM支持的数据类型
  19.1.3  JVM指令系统
  19.1.4  JVM寄存器
  19.1.5  JVM栈结构
  19.1.6  JVM碎片回收堆
  19.1.7  JVM异常抛出和异常捕获
  19.2  类装载
  19.2.1  装载类的结构体
  19.2.2  装载类的操作
  19.3  垃圾回收
  19.3.1  mark-and-sweep回收算法
  19.3.2  分代回收算法
  19.3.3  增量收集
  19.4  解析器
  19.4.1  函数Interpret()
  19.4.2  函数FastInterpret()
  19.4.3  函数SlowInterpret ()
  19.5  Java编程浅析
  19.5.1  Java程序命令
  19.5.2  Java构造函数
  19.5.3  Java主函数
  19.5.4  Java程序编译与运行
  19.6  KVM执行过程
  19.6.1  KVM启动过程
  19.6.2  KVM用到的计数器清零
  19.6.3  KVM初始化内存管理
  19.6.4  KVM中的哈希表初始化
  19.6.5  KVM中的事件初始化
  19.6.6  KVM中的资源释放
  19.7  PC机安装JVM
  19.7.1  JVM在Windows上的安装
  19.7.2  JVM在Linux上的安装
  19.8  KVM移植和测试
  19.8.1  SDK安装和环境变量设置
  19.8.2  修改Makefile和代码
  19.8.3  KVM编译
  19.8.4  测试
  19.8.5  移植
  19.9  小结
 第20章  VoIP技术与Linphone编译
  20.1  VoIP介绍
  20.1.1  VoIP基本原理
  20.1.2  VoIP的基本传输过程
  20.1.3  VoIP的优势
  20.1.4  VoIP的实现方式
  20.1.5  VoIP的关键技术
  20.2  oSIP协议概述
  20.3  oSIP状态机
  20.3.1  ICT(Invite Client (outgoing) Transaction)状态机
  20.3.2  NICT(Non-Invite Client (outgoing) Transaction)状态机
  20.3.3  IST(Invite Server (incoming) Transaction)状态机
  20.3.4  NIST(Non-Invite Server (incoming) Transaction)状态机
  20.4  oSIP解析器
  20.4.1  初始化解析类型函数osip_body_init()
  20.4.2  释放函数osip_body_free()
  20.4.3  字符串到body类型转换函数osip_body_parse()
  20.4.4  body类型到字符串类型转换函数osip_body_to_str()
  20.4.5  克隆函数osip_body_clone()
  20.4.6  oSIP解析器分类
  20.5  oSIP事务层
  20.6  SIP建立会话的过程
  20.7  RTP协议
  20.7.1  RTP基本概念
  20.7.2  发送RTP
  20.7.3  接收RTP
  20.8  Linphone编译与测试
  20.8.1  编译Linphone需要的软件包
  20.8.2  X86平台上编译和安装
  20.8.3  Linphone测试
  20.8.4  进一步的测试和开发
  20.9  Linphone交叉编译
  20.9.1  Linphone的交叉编译
  20.9.2  Linphon
    

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Linux系统移植
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon