当前位置:主页 > 书籍配套资源 > Linux配套资源
《嵌入式Linux应用开发完全手册》源码文件

《嵌入式Linux应用开发完全手册》源码文件

  • 更新:2021-12-24
  • 大小:692.66 MB
  • 类别:Linux
  • 作者:韦东山
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

内容介绍

本书全面介绍了嵌入式Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖Linux操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识(交叉编译工具的选项设置、Makefile语法、ARM汇编指令等),硬件部件的使用及编程(囊括了常见硬件,?热?UART、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

资源下载

资源下载地址1:https://box.lenovo.com/l/x1mgSK

相关资源

网友留言