网站颜色:

2021新书 嵌入式Linux应用开发完全手册 配置移植裁剪内核编写驱动程序移植GUI系统 掌握整个嵌入式Linux系统开发方法 计算机书籍

  • 产品名称:嵌入式Linux应用开发完全手...
  • 书名:嵌入式Linux应用开发完全手册
  • 作者:无
  • 定价:79.00元
  • 编者:韦东山
  • 书名:嵌入式Linux应用开发完全手册
  • 是否是套装:否
  • 出版社名称:人民邮电出版社
产品展示

基本信息

图书名称:
嵌入式Linux应用开发完全手册
作者:
韦东山
定价:
(咨询特价)
ISBN号:
23
出版社:
人民邮电出版社
开本:
16开
装帧:
胶装
编辑推荐

内容介绍
本书全面介绍了嵌入式Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖Linux操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识(交叉编译工具的选项设置、Makefile语法、ARM汇编指令等),硬件部件的使用及编程(囊括了常见硬件,@热鏤ART、I*IC、LCD等),U-Boot、Linux内核的分析、配置和移植,根文件系统的构造(包括移植busybox、glibc、制作映象文件等),内核调试技术(比如添加kgdb补丁、栈回溯等),驱动程序编写及移植(LED、按键、扩展串口、网卡、硬盘、SD卡、LCD和USB等),GUI系统的移植(包含两个GUI系统:基于Qtopia和基于X),应用程序调试技术。 本书从**简单的点亮一个LED开始,由浅入深地讲解,使读者**终可以配置、移植、裁剪内核,编写驱动程序,移植GUI系统,掌握整个嵌入式Linux系统的开发方法。 本书由浅入深,循序渐进,适合刚接触嵌入式Linux的初学者学习,也可作为大、中专院校嵌入式相关专业本科生、研究生的教材。
作者介绍
目录
目 录 第 1篇 嵌入式Linux开发环境构建篇 第 1章 嵌入式Linux开发概述 2 1.1 嵌入式系统介绍 2 1.1.1 嵌入式系统的定义和特点 2 1.1.2 嵌入式技术的发展历史 3 1.2 基于ARM处理器的嵌入式Linux系统 5 1.2.1 ARM处理器介绍 5 1.2.2 在嵌入式系统中选择嵌入式Linux的理由 8 第 2章 嵌入式Linux开发环境构建 10 2.1 硬件环境构建 10 2.1.1 主机与目标板结合的交叉开发模式 10 2.1.2 硬件要求 11 2.2 软件环境构建 12 2.2.1 主机Linux操作系统的安装 12 2.2.2 主机Linux操作系统上网络服务的配置与启动 18 2.2.3 在主机Linux操作系统中安装基本的开发环境 23 2.2.4 光盘的内容结构及安装 23 2.2.5 安装交叉编译工具链 25 2.2.6 书中写作风格的约定 28 第3章 嵌入式编程基础知识 29 3.1 交叉编译工具选项说明 29 3.1.1 arm-linux-gcc选项 29 3.1.2 arm-linux-ld选项 38 3.1.3 arm-linux-objcopy选项 41 3.1.4 arm-linux-objdump选项 43 3.1.5 汇编代码、机器码和存储器的关系以及数据的表示 44 3.2 Makefile介绍 45 3.2.1 Makefile规则 45 3.2.2 Makefile文件里的赋值方法 46 3.2.3 Makefile常用函数 46 3.3 常用ARM汇编指令及ATPCS规则 52 3.3.1 本书使用的所有汇编指令 52 3.3.2 ARM-THUMB子程序调用规则ATPCS 55 第4章 Windows、Linux环境下相关工具、命令的使用 58 4.1 Windows环境下的工具介绍 58 4.1.1 代码阅读、编辑工具Source Insight 58 4.1.2 文件传输工具Cuteftp 63 4.1.3 远程登录工具SecureCRT 63 4.1.4 TFTP服务器软件Tftpd32 64 4.2 Linux环境下的工具、命令介绍 65 4.2.1 代码阅读、编辑工具KScope 65 4.2.2 远程登录工具C-kermit 69 4.2.3 编辑命令vi 69 4.2.4 查找命令grep、find命令 71 4.2.5 在线手册查看命令man 72 4.2.6 其他命令:tar、diff、patch 73 第 2篇 ARM9嵌入式系统基础实例篇 第5章 GPIO接口 76 5.1 GPIO硬件介绍 76 5.1.1 通过寄存器来操作GPIO引脚 76 5.1.2 怎样使用软件来访问硬件 77 5.2 GPIO操作实例:LED和按键 80 5.2.1 硬件设计 80 5.2.2 程序设计及代码详解 80 5.2.3 实例测试 86 第6章 存储器控制 87 6.1 使用存储控制器访问外设的原理 87 6.1.1 S3C2410/S3C2440的地址空间 87 6.1.2 存储控制器与外设的关系 89 6.1.3 存储控制器的寄存器使用方法 91 6.2 存储控制器操作实例:使用SDRAM 94 6.2.1 代码详解及程序的复制、跳转过程 94 6.2.2 实例测试 97 第7章 内存管理单MMU 98 7.1 内存管理单MMU介绍 98 7.1.1 S3C2410/S3C2440 MMU特性 98 7.1.2 S3C2410/S3C2440 MMU地址变换过程 99 7.1.3 内存的访问权限检查 107 7.1.4 TLB的作用 109 7.1.5 Cache的作用 110 7.1.6 S3C2410/S3C2440 MMU、TLB、Cache的控制指令 113 7.2 MMU使用实例:地址映射 113 7.2.1 程序设计 113 7.2.2 代码详解 114 7.2.3 实例测试 124 第8章 NAND Flash控制器 125 8.1 NAND Flash介绍和NAND Flash控制器使用 125 8.1.1 Flash介绍 125 8.1.2 NAND Flash的物理结构 127 8.1.3 NAND Flash访问方法 128 8.1.4 S3C2410/S3C2440 NAND Flash控制器介绍 134 8.2 NAND Flash控制器操作实例:读Flash 135 8.2.1 读NAND Flash的步骤 135 8.2.2 代码详解 137 第9章 中断体系结构 143 9.1 S3C2410/S3C2440中断体系结构 143 9.1.1 ARM体系CPU的7种工作模式 143 9.1.2 S3C2410/S3C2440中断控制器 146 9.1.3 中断控制器寄存器 149 9.2 中断控制器操作实例:外部中断 151 9.2.1 按键中断代码详解 151 9.2.2 实例测试 158 第 10章 系统时钟和定时器 159 10.1 时钟体系及各类时钟部件 159 10.1.1 S3C2410/S3C2440时钟体系 159 10.1.2 PWM定时器 161 10.1.3 WATCHDOG定时器 164 10.2 MPLL和定时器操作实例 166 10.2.1 程序设计 166 10.2.2 代码详解 166 10.2.3 实例测试 170 第 11章 通用异步收发器UART 171 11.1 UART原理及UART部件使用方法 171 11.1.1 UART原理说明 171 11.1.2 S3C2410/S3C2440 UART的特性 172 11.1.3 S3C2410/S3C2440 UART的使用 173 11.2 UART操作实例 177 11.2.1 代码详解 177 11.2.2 实例测试 180 第 12章 I*IC接口 181 12.1 I*IC总线协议及硬件介绍 181 12.1.1 I*IC总线协议 181 12.1.2 S3C2410/S3C2440 I*IC总线控制器 184 12.2 I*IC总线操作实例 187 12.2.1 I*IC接口RTC芯片M41t11的操作方法 187 12.2.2 程序设计 188 12.2.3 设置/读取M41t11的源码详解 188 12.2.4 I*IC实例的连接脚本 195 12.2.5 实例测试 196 第 13章 LCD控制器 197 13.1 LCD和LCD控制器 197 13.1.1 LCD显示器 197 13.1.2 S3C2410/S3C2440 LCD控制器介绍 199 13.2 TFT LCD显示实例 210 13.2.1 程序设计 210 13.2.2 代码详解 210 13.2.3 实例测试 221 第 14章 ADC和触摸屏接口 222 14.1 ADC和触摸屏硬件介绍及使用 222 14.1.1 S3C2410/S3C2440 ADC和触摸屏接口概述 222 14.1.2 S3C3410/S3C2440 ADC接口的使用方法 224 14.1.3 触摸屏原理及接口 226 14.2 ADC和触摸屏操作实例 230 14.2.1 硬件设计 230 14.2.2 程序设计 230 14.2.3 测试ADC的代码详解 230 14.2.4 测试触摸屏的代码详解 232 14.2.5 实例测试 237 第3篇 嵌入式Linux系统移植篇 第 15章 移植U-Boot 240 15.1 Bootloader简介 240 15.1.1 Bootloader的概念 240 15.1.2 Bootloader的结构和启动过程 241 15.1.3 常用Bootloader介绍 246 15.2 U-Boot分析与移植 246 15.2.1 U-Boot工程简介 246 15.2.2 U-Boot源码结构 247 15.2.3 U-Boot的配置、编译、连接过程 249 15.2.4 U-Boot的启动过程源码分析 257 15.2.5 U-Boot的移植 264 15.2.6 U-Boot的常用命令 288 15.2.7 使用U-Boot来执行程序 292 第 16章 移植Linux内核 293 16.1 Linux版本及特点 293 16.2 Linux移植准备 294 16.2.1 获取内核源码 294 16.2.2 内核源码结构及Makefile分析 295 16.2.3 内核的Kconfig分析 304 16.2.4 Linux内核配置选项 309 16.3 Linux内核移植 313 16.3.1 Linux内核启动过程概述 313 16.3.2 修改内核以支持S3C2410/S3C2440开发板 314 16.3.3 修改MTD分区 327 16.3.4 移植YAFFS文件系统 330 16.3.5 编译、烧写、启动内核 333 第 17章 构建Linux根文件系统 335 17.1 Linux文件系统概述 335 17.1.1 Linux文件系统的特点 335 17.1.2 Linux根文件系统目录结构 336 17.1.3 Linux文件属性介绍 340 17.2 移植Busybox 341 17.2.1 Busybox概述 341 17.2.2 init进程介绍及用户程序启动过程 342 17.2.3 编译/安装Busybox 346 17.3 使用glibc库 350 17.3.1 glibc库的组成 350 17.3.2 安装glibc库 351 17.4 构建根文件系统 352 17.4.1 构建etc目录 352 17.4.2 构建dev目录 354 17.4.3 构建其他目录 356 17.4.4 制作/使用yaffs文件系统映象文件 356 17.4.5 制作/使用jffs2文件系统映象文件 360 第 18章 Linux内核调试技术 362 18.1 内核打印函数printk 362 18.1.1 printk的使用 362 18.1.2 串口控制台 364 18.2 内核源码级别的调试方法 366 18.2.1 内核调试工具KGDB的作用与原理 366 18.2.2 给内核添加KGDB功能支持S3C2410/S3C2440 367 18.2.3 结合可视化图形前端DDD和gdb来调试内核 372 18.3 Oops信息及栈回溯 375 18.3.1 Oops信息来源及格式 375 18.3.2 配置内核使Oops信息的栈回溯信息更直观 376 18.3.3 使用Oops信息调试内核的实例 376 18.3.4 使用Oops的栈信息手工进行栈回溯 380 第4篇 嵌入式Linux设备驱动开发篇 第 19章 字符设备驱动程序 384 19.1 Linux驱动程序开发概述 384 19.1.1 应用程序、库、内核、驱动程序的关系 384 19.1.2 Linux驱动程序的分类和开发步骤 385 19.1.3 驱动程序的加载和卸载 387 19.2 字符设备驱动程序开发 387 19.2.1 字符设备驱动程序中重要的数据结构和函数 387 19.2.2 LED驱动程序源码分析 389 第 20章 Linux异常处理体系结构 396 20.1 Linux异常处理体系结构概述 396 20.1.1 Linux异常处理的层次结构 396 20.1.2 常见的异常 400 20.2 Linux中断处理体系结构 401 20.2.1 中断处理体系结构的初始化 401 20.2.2 用户注册中断处理函数的过程 404 20.2.3 中断的处理过程 406 20.2.4 卸载中断处理函数 409 20.3 使用中断的驱动程序示例 410 20.3.1 按键驱动程序源码分析 410 20.3.2 测试程序情景分析 415 第 21章 扩展串口驱动程序移植 419 21.1 串口驱动程序框架概述 419 21.1.1 串口驱动程序术语介绍 419 21.1.2 串口驱动程序的4层结构 420 21.2 扩展串口驱动程序移植 423 21.2.1 串口驱动程序低层代码分析 423 21.2.2 修改代码以支持扩展串口 425 21.2.3 测试扩展串口 429 第 22章 网卡驱动程序移植 431 22.1 CS8900A网卡驱动程序移植 431 22.1.1 CS8900A网卡特性 431 22.1.2 CS8900A网卡驱动程序修改 432 22.2 DM9000网卡驱动程序移植 441 22.2.1 DM9000网卡特性 441 22.2.2 DM9000网卡驱动程序修改 442 第 23章 IDE接口和SD卡驱动程序移植 450 23.1 IDE接口驱动程序移植 450 23.1.1 IDE接口相关概念介绍 450 23.1.2 IDE接口驱动程序移植 452 23.1.3 IDE接口驱动程序测试 461 23.2 SD卡驱动程序移植 464 23.2.1 SD卡相关概念介绍 464 23.2.2 SD卡驱动程序移植 465 23.2.3 SD卡驱动程序测试 472 23.2.4 磁盘分区表 473 第 24章 LCD和USB驱动程序移植 475 24.1 LCD驱动程序移植 475 24.1.1 LCD和USB键盘驱动程序框架 475 24.1.2 S3C2410/S3C2440 LCD控制器驱动程序移植 479 24.2 USB驱动程序移植 489 24.2.1 USB驱动程序概述 489 24.2.2 配置内核支持USB键盘、USB鼠标和USB硬盘 491 24.2.3 USB设备的使用 492 第5篇 嵌入式Linux系统应用开发篇 第 25章 嵌入式GUI开发 496 25.1 嵌入式GUI介绍 496 25.1.1 Linux桌面GUI系统的发展 496 25.1.2 嵌入式Linux中的几种GUI 499 25.2 Qtopia移植 501 25.2.1 主机开发环境的搭建 501 25.2.2 交叉编译、安装Qtopia 2.2.0 502 25.2.3 开发自己的Qt GUI程序 514 25.2.4 在主机上使用模拟软件开发、调试嵌入式Qt GUI程序 518 第 26章 基于X的GUI开发 524 26.1 X Window概述 524 26.1.1 X协议介绍 524 26.1.2 窗口管理器(Window manager) 526 26.1.3 桌面环境(Desktop environment) 526 26.2 交叉编译工具包Scratchbox 526 26.2.1 Scratchbox介绍 527 26.2.2 安装Scratchbox及编译工具 528 26.2.3 在Scratchbox里安装交叉编译工具链 529 26.2.4 安装其他开发工具 535 26.3 移植X 536 26.3.1 编译软件的基本知识 536 26.3.2 编译X的依赖软件 539 26.3.3 编译Xorg 542 26.4 移植Matchbox 547 26.4.1 下载源代码 548 26.4.2 编译Matchbox 548 26.4.3 运行、试验Matchbox 550 26.5 移植GTK+ 553 26.5.1 GTK+介绍 553 26.5.2 GTK+移植 553 26.6 移植基于GTK+/X的GUI程序 555 26.6.1 xterm移植 556 26.6.2 gtkboard移植 557 26.6.3 裁剪文件系统 560 第 27章 Linux应用程序调试技术 564 27.1 使用strace工具跟踪系统调用和信号 564 27.1.1 strace介绍及移植 564 27.1.2 使用strace来调试程序 565 27.2 内存调试工具 568 27.2.1 使用memwatch进行内存调试 568 27.2.2 其他内存工具介绍:mtrace、dmalloc、yamd 571 27.3 段错误的调试方法 573 27.3.1 使用库函数backtrace和backtrace_symbols定位段错误 573 27.3.2 段错误调试实例 574 参考文献 578
悦悦图书专营店热门设计联盟服务商