嵌入式Linux应用开发完全手册 韦东山 编 书籍 PDF下载 公众号 其他格式

嵌入式Linux应用开发完全手册 韦东山 编 书籍

计算机与互联网 操作系统

  • ISBN:9787115182623
  • 版次:1
  • 出版社:人民邮电出版社
  • 出版时间:2008-08-01
  • 中图法分类号:TP316.89-62
  • 作者:

手机扫码免费下载

纠错留言

#电子书截图

嵌入式Linux应用开发完全手册 韦东山 编 书籍截图

#电子书简介

作 者:韦东山 编定 价:79出 版 社:人民邮电出版社出版日期:2008年08月01日页 数:596装 帧:平装ISBN:9787115182623 内容全面;实例丰富;可操作性强;源于初学者、服务初学者。 第1篇嵌入式Linux开发环境构建篇
第1章嵌入式Linux开发概述2
1.1嵌入式系统介绍2
1.1.1嵌入式系统的定义和特点2
1.1.2嵌入式技术的发展历史3
1.2基于ARM处理器的嵌入式Linux系统5
1.2.1ARM处理器介绍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.1arm-linux-gcc选项29
3.1.2arm-linux-ld选项38
3.1.3arm-linux-objcopy选项41
3.1.4arm-linux-objdump选项43
3.1.5汇编代码、机器码和存储器的关系以及数据的表示44
3.2Makefile介绍45
3.2.1Makefile规则45
3.2.2Makefile文件里的赋值方法46
3.2.3Makefile常用函数46
3.3常用ARM汇编指令及ATPCS规则52
3.3.1本书使用的所有汇编指令52
3.3.2ARM-THUMB子程序调用规则ATPCS55
第4章Windows、Linux环境下相关工具、命令的使用58
4.1Windows环境下的工具介绍58
4.1.1代码阅读、编辑工具SourceInsight58
4.1.2文件传输工具Cuteftp63
4.1.3远程登录工具SecureCRT63
4.1.4TFTP服务器软件Tftpd3264
4.2Linux环境下的工具、命令介绍65
4.2.1代码阅读、编辑工具KScope65
4.2.2远程登录工具C-kermit69
4.2.3编辑命令vi69
4.2.4查找命令grep、find命令71
4.2.5在线手册查看命令man72
4.2.6其他命令:tar、diff、patch73
第2篇ARM9嵌入式系统基础实例篇
第5章GPIO接口76
5.1GPIO硬件介绍76
5.1.1通过寄存器来操作GPIO引脚76
5.1.2怎样使用软件来访问硬件77
5.2GPIO操作实例:LED和按键80
5.2.1硬件设计80
5.2.2程序设计及代码详解80
5.2.3实例测试86
第6章存储器控制87
6.1使用存储控制器访问外设的原理87
6.1.1S3C2410/S3C2440的地址空间87
6.1.2存储控制器与外设的关系89
6.1.3存储控制器的寄存器使用方法91
6.2存储控制器操作实例:使用SDRAM94
6.2.1代码详解及程序的复制、跳转过程94
6.2.2实例测试97
第7章内存管理单元MMU98
7.1内存管理单元MMU介绍98
7.1.1S3C2410/S3C2440MMU特性98
7.1.2S3C2410/S3C2440MMU地址变换过程99
7.1.3内存的访问权限检查107
7.1.4TLB的作用109
7.1.5Cache的作用110
7.1.6S3C2410/S3C2440MMU、TLB、Cache的控制指令113
7.2MMU使用实例:地址映射113
7.2.1程序设计113
7.2.2代码详解114
7.2.3实例测试124
第8章NANDFlash控制器125
8.1NANDFlash介绍和NANDFlash控制器使用125
8.1.1Flash介绍125
8.1.2NANDFlash的物理结构127
8.1.3NANDFlash访问方法128
8.1.4S3C2410/S3C2440NANDFlash控制器介绍134
8.2NANDFlash控制器操作实例:读Flash135
8.2.1读NANDFlash的步骤135
8.2.2代码详解137
第9章中断体系结构143
9.1S3C2410/S3C2440中断体系结构143
9.1.1ARM体系CPU的7种工作模式143
9.1.2S3C2410/S3C2440中断控制器146
9.1.3中断控制器寄存器149
9.2中断控制器操作实例:外部中断151
9.2.1按键中断代码详解151
9.2.2实例测试158
第10章系统时钟和定时器159
10.1时钟体系及各类时钟部件159
10.1.1S3C2410/S3C2440时钟体系159
10.1.2PWM定时器161
10.1.3WATCHDOG定时器164
10.2MPLL和定时器操作实例166
10.2.1程序设计166
10.2.2代码详解166
10.2.3实例测试170
第11章通用异步收发器UART171
11.1UART原理及UART部件使用方法171
11.1.1UART原理说明171
11.1.2S3C2410/S3C2440UART的特性172
11.1.3S3C2410/S3C2440UART的使用173
11.2UART操作实例177
11.2.1代码详解177
11.2.2实例测试180
第12章I2C接口181
12.1I2C总线协议及硬件介绍181
12.1.1I2C总线协议181
12.1.2S3C2410/S3C2440I2C总线控制器184
12.2I2C总线操作实例187
12.2.1I2C接口RTC芯片M41t11的操作方法187
12.2.2程序设计188
12.2.3设置/读取M41t11的源码详解188
12.2.4I2C实例的连接脚本195
12.2.5实例测试196
第13章LCD控制器197
13.1LCD和LCD控制器197
13.1.1LCD显示器197
13.1.2S3C2410/S3C2440LCD控制器介绍199
13.2TFTLCD显示实例210
13.2.1程序设计210
13.2.2代码详解210
13.2.3实例测试221
第14章ADC和触摸屏接口222
14.1ADC和触摸屏硬件介绍及使用222
14.1.1S3C2410/S3C2440ADC和触摸屏接口概述222
14.1.2S3C3410/S3C2440ADC接口的使用方法224
14.1.3触摸屏原理及接口226
14.2ADC和触摸屏操作实例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-Boot240
15.1Bootloader简介240
15.1.1Bootloader的概念240
15.1.2Bootloader的结构和启动过程241
15.1.3常用Bootloader介绍246
15.2U-Boot分析与移植246
15.2.1U-Boot工程简介246
15.2.2U-Boot源码结构247
15.2.3U-Boot的配置、编译、连接过程249
15.2.4U-Boot的启动过程源码分析257
15.2.5U-Boot的移植264
15.2.6U-Boot的常用命令288
15.2.7使用U-Boot来执行程序292
第16章移植Linux内核293
16.1Linux版本及特点293
16.2Linux移植准备294
16.2.1获取内核源码294
16.2.2内核源码结构及Makefile分析295
16.2.3内核的Kconfig分析304
16.2.4Linux内核配置选项309
16.3Linux内核移植313
16.3.1Linux内核启动过程概述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.1Linux文件系统概述335
17.1.1Linux文件系统的特点335
17.1.2Linux根文件系统目录结构336
17.1.3Linux文件属性介绍340
17.2移植Busybox341
17.2.1Busybox概述341
17.2.2init进程介绍及用户程序启动过程342
17.2.3编译/安装Busybox346
17.3使用glibc库350
17.3.1glibc库的组成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内核打印函数printk362
18.1.1printk的使用362
18.1.2串口控制台364
18.2内核源码级别的调试方法366
18.2.1内核调试工具KGDB的作用与原理366
18.2.2给内核添加KGDB功能支持S3C2410/S3C2440367
18.2.3结合可视化图形前端DDD和gdb来调试内核372
18.3Oops信息及栈回溯375
18.3.1Oops信息来源及格式375
18.3.2配置内核使Oops信息的栈回溯信息更直观376
18.3.3使用Oops信息调试内核的实例376
18.3.4使用Oops的栈信息手工进行栈回溯380
第4篇嵌入式Linux设备驱动开发篇
第19章字符设备驱动程序384
19.1Linux驱动程序开发概述384
19.1.1应用程序、库、内核、驱动程序的关系384
19.1.2Linux驱动程序的分类和开发步骤385
19.1.3驱动程序的加载和卸载387
19.2字符设备驱动程序开发387
19.2.1字符设备驱动程序中重要的数据结构和函数387
19.2.2LED驱动程序源码分析389
第20章Linux异常处理体系结构396
20.1Linux异常处理体系结构概述396
20.1.1Linux异常处理的层次结构396
20.1.2常见的异常400
20.2Linux中断处理体系结构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.1CS8900A网卡驱动程序移植431
22.1.1CS8900A网卡特性431
22.1.2CS8900A网卡驱动程序修改432
22.2DM9000网卡驱动程序移植441
22.2.1DM9000网卡特性441
22.2.2DM9000网卡驱动程序修改442
第23章IDE接口和SD卡驱动程序移植450
23.1IDE接口驱动程序移植450
23.1.1IDE接口相关概念介绍450
23.1.2IDE接口驱动程序移植452
23.1.3IDE接口驱动程序测试461
23.2SD卡驱动程序移植464
23.2.1SD卡相关概念介绍464
23.2.2SD卡驱动程序移植465
23.2.3SD卡驱动程序测试472
23.2.4磁盘分区表473
第24章LCD和USB驱动程序移植475
24.1LCD驱动程序移植475
24.1.1LCD和USB键盘驱动程序框架475
24.1.2S3C2410/S3C2440LCD控制器驱动程序移植479
24.2USB驱动程序移植489
24.2.1USB驱动程序概述489
24.2.2配置内核支持USB键盘、USB鼠标和USB硬盘491
24.2.3USB设备的使用492
第5篇嵌入式Linux系统应用开发篇
第25章嵌入式GUI开发496
25.1嵌入式GUI介绍496
25.1.1Linux桌面GUI系统的发展496
25.1.2嵌入式Linux中的几种GUI499
25.2Qtopia移植501
25.2.1主机开发环境的搭建501
25.2.2交叉编译、安装Qtopia2.2.0502
25.2.3开发自己的QtGUI程序514
25.2.4在主机上使用模拟软件开发、调试嵌入式QtGUI程序518
第26章基于X的GUI开发524
26.1XWindow概述524
26.1.1X协议介绍524
26.1.2窗口管理器(Windowmanager)526
26.1.3桌面环境(Desktopenvironment)526
26.2交叉编译工具包Scratchbox526
26.2.1Scratchbox介绍527
26.2.2安装Scratchbox及编译工具528
26.2.3在Scratchbox里安装交叉编译工具链529
26.2.4安装其他开发工具535
26.3移植X536
26.3.1编译软件的基本知识536
26.3.2编译X的依赖软件539
26.3.3编译Xorg542
26.4移植Matchbox547
26.4.1下载源代码548
26.4.2编译Matchbox548
26.4.3运行、试验Matchbox550
26.5移植GTK+553
26.5.1GTK+介绍553
26.5.2GTK+移植553
26.6移植基于GTK+/X的GUI程序555
26.6.1xterm移植556
26.6.2gtkboard移植557
26.6.3裁剪文件系统560
第27章Linux应用程序调试技术564
27.1使用strace工具跟踪系统调用和信号564
27.1.1strace介绍及移植564
27.1.2使用strace来调试程序565
27.2内存调试工具568
27.2.1使用memwatch进行内存调试568
27.2.2其他内存工具介绍:mtrace、dmalloc、yamd571
27.3段错误的调试方法573
27.3.1使用库函数backtrace和backtrace_symbols定位段错误573
27.3.2段错误调试实例574
参考文献578
本书全面介绍了嵌入式Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖Linux操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识(交叉编译工具的选项设置、Makefile语法、ARM汇编指令等),硬件部件的使用及编程(囊括了常见硬件,比如UART、I2C、LCD等),U-Boot、Linux内核的分析、配置和移植,根文件系统的构造(包括移植busybox、glibc、制作映象文件等),内核调试技术(比如添加kgdb补丁、栈回溯等),驱动程序编写及移植(LED、按键、扩展串口、网卡、硬盘、SD卡、LCD和USB等),GUI系统的移植(包含两个GUI系统:基于Qtopia和基于X),应用程序调试技术。
本书从最简单的点亮一个LED开始,由浅入深地讲解,使读者最终可以配置、移植、裁剪内核,编写驱动程序,移植GUI系统,掌握整个嵌入式Linux等
  • 评论列表(0

留言评论