|
Java电子书:嵌入式Linux应用开发完全手册 格式 pdf 电子书 PDF 电子书 Java吧 java8.com
: C6 G( d7 h# i) ^4 @/ @) j
0 u: k- D# L9 X! b: J7 y
: k8 J+ O% y; h- w编号:mudaima-P0321【Java吧 java8.com】, E( \( `) T6 @' J' g+ C
: G6 i2 s! W3 e, ^
4 M. F$ F$ e/ P1 Y8 X3 }2 S- b3 h9 T
Java电子书目录:第 1篇 嵌入式Linux开发环境构建篇
: i4 `7 |, b9 C X. @4 m% c: J5 ^& o# i; \" {
第 1章 嵌入式Linux开发概述 2. j3 ^1 t s3 M: D5 N8 \# e. H
1.1 嵌入式系统介绍 22 j* Z( j: j/ a! K% C6 U) W
1.1.1 嵌入式系统的定义和特点 22 h' h# @* a0 ?9 j9 D* N
1.1.2 嵌入式技术的发展历史 3
: j, a, \ B2 i+ b2 C5 e1.2 基于ARM处理器的嵌入式Linux系统 5( ~. ^* `( M+ w9 k4 F( P
1.2.1 ARM处理器介绍 5
$ ^) j' r+ @. t) W: `1.2.2 在嵌入式系统中选择嵌入式Linux的理由 82 y* P9 i! B4 b1 Y, s) G7 ~
. r. W5 E: {% `第 2章 嵌入式Linux开发环境构建 10& n$ C% Z8 V! F4 Q
2.1 硬件环境构建 107 `: O- O% T! |) b
2.1.1 主机与目标板结合的交叉开发模式 10
. A u( @) G% d/ _0 F6 G6 Z: l2.1.2 硬件要求 11
# Y- k( W: O; V- x6 e2.2 软件环境构建 12
6 x; ? r( C* ~5 M Z- T7 B) P2.2.1 主机Linux操作系统的安装 12
/ U: e% J$ e/ e$ i2.2.2 主机Linux操作系统上网络服务的配置与启动 18& X+ P6 L/ l, z( o" V8 d
2.2.3 在主机Linux操作系统中安装基本的开发环境 23' u* N; |& a) o( J7 j9 h- F
2.2.4 光盘的内容结构及安装 23
! t& }7 P ~+ g- i& X2 ^. k9 d, w2.2.5 安装交叉编译工具链 25
8 {1 ?# v6 c, z" R6 ?5 e C. M2.2.6 书中写作风格的约定 28
6 n/ e, c+ m0 `6 i5 y6 B/ V+ U; g h
第3章 嵌入式编程基础知识 29, N0 v$ I7 Z3 y0 V! I
3.1 交叉编译工具选项说明 29
) w$ J! E# v2 @7 ]% u0 o6 t3.1.1 arm-linux-gcc选项 29
# M6 T3 |6 _# W V* D) l$ w' T, x3.1.2 arm-linux-ld选项 38
& S4 |: n" C2 U L( q; J, K1 I- f7 B3.1.3 arm-linux-objcopy选项 41
4 Q6 D$ \7 X' g3.1.4 arm-linux-objdump选项 43- @, @' H1 G- i* r, \
3.1.5 汇编代码、机器码和存储器的关系以及数据的表示 44
9 r; D/ a( U) N5 A* t3 @( j& M- o3.2 Makefile介绍 45: T$ m( \& o6 E1 L O3 Q( n
3.2.1 Makefile规则 456 L M6 F) h F* S, S
3.2.2 Makefile文件里的赋值方法 46) B6 C" v5 N }! } E
3.2.3 Makefile常用函数 46* b7 z# E# S0 R, ?: o
3.3 常用ARM汇编指令及ATPCS规则 52
% Q% N) V: q$ M7 w' m Q3.3.1 本书使用的所有汇编指令 52
! A7 y% ~ p6 f+ ]1 I4 z$ R' I+ V3.3.2 ARM-THUMB子程序调用规则ATPCS 55
9 u: Q" W* v, r' S5 I/ d0 O" b4 d4 l6 P
第4章 Windows、Linux环境下相关工具、命令的使用 584 |5 r+ X% w# G5 f; Y8 o: ]
4.1 Windows环境下的工具介绍 58
8 ?! N* w) P1 q' K7 u3 C4.1.1 代码阅读、编辑工具Source Insight 58' x" b3 y. r3 V8 j& }8 n
4.1.2 文件传输工具Cuteftp 63
7 P$ q8 c- m% L# {4.1.3 远程登录工具SecureCRT 63
' T# t0 w) x, I, N4.1.4 TFTP服务器软件Tftpd32 64( }. w, E7 W c# k
4.2 Linux环境下的工具、命令介绍 654 f I1 {# q1 ?- p% n/ K7 C6 i
4.2.1 代码阅读、编辑工具KScope 651 ^1 P( |1 |- j; |8 w
4.2.2 远程登录工具C-kermit 69
2 k O9 m3 Q! c9 p4.2.3 编辑命令vi 69
8 s9 B/ w6 o+ q; e# B: y4.2.4 查找命令grep、find命令 71
7 b3 }1 D% v8 w/ \% O4.2.5 在线手册查看命令man 72
; J! `. y, ]8 L' Q: O; A4 `1 w4.2.6 其他命令:tar、diff、patch 73
4 m7 P& }" w4 _9 m9 H/ E* d9 {6 g+ j9 {
第 2篇 ARM9嵌入式系统基础实例篇: ]7 c" q) ~2 F9 b
! u: F j8 c' j% P( K第5章 GPIO接口 76
0 A3 ]" n3 @5 j* Q" r) T+ u) C8 }4 {5.1 GPIO硬件介绍 76+ o6 Q2 x4 Q8 Z9 C1 @ u
5.1.1 通过寄存器来操作GPIO引脚 76
$ f7 c; U2 [; o G( O3 n5.1.2 怎样使用软件来访问硬件 77
3 c! I) F$ Z' |) U) [) L" j5.2 GPIO操作实例:LED和按键 80* n1 _8 @0 W# |# Y9 p, L1 H# s
5.2.1 硬件设计 80* f' m) K# k6 y" Z# G' [$ ^
5.2.2 程序设计及代码详解 80
8 c, d' s7 b- Z. N! Z4 }: J0 j. K5.2.3 实例测试 86/ R" h7 e+ Q5 z. z/ c s
, H* r% A3 { ]第6章 存储器控制 87* I5 s! X) t3 ~: ]
6.1 使用存储控制器访问外设的原理 87
' p/ p( r) D: S D8 ]' L6.1.1 S3C2410 S3C2440的地址空间 87" s! g6 S$ X" n8 c+ b
6.1.2 存储控制器与外设的关系 899 Z, ^# B6 ]9 m0 ]2 N
6.1.3 存储控制器的寄存器使用方法 912 m" J% H; i. ^& |4 \0 [
6.2 存储控制器操作实例:使用SDRAM 94
* x4 c5 ~0 B, Y. j- }* O# {* w6.2.1 代码详解及程序的复制、跳转过程 94
% h5 ?3 {$ X& |* j6.2.2 实例测试 97
( K4 S. n. `. i7 ~9 O3 N) k; j7 M) R+ {% ^9 ]
第7章 内存管理单元MMU 98
+ S. u7 q; z( v7 ^8 |) F7.1 内存管理单元MMU介绍 987 Q1 |3 E$ i( Y& q6 u
7.1.1 S3C2410 S3C2440 MMU特性 98
9 _- s2 M3 E& V" L7.1.2 S3C2410 S3C2440 MMU地址变换过程 99
; F% V. i. ?2 Q `6 Z0 P7.1.3 内存的访问权限检查 107! h8 Y- j; ?% f% p4 i% ?
7.1.4 TLB的作用 109
. U/ t" [9 e4 O! l' F7.1.5 Cache的作用 110+ Q$ m7 [1 m/ Z
7.1.6 S3C2410 S3C2440 MMU、TLB、Cache的控制指令 113
! M3 z8 w: z z9 R7.2 MMU使用实例:地址映射 113' j, e" c* L% n/ ^5 n; J
7.2.1 程序设计 113. y) d5 @5 O( g+ n" j# F: z8 Y5 Y
7.2.2 代码详解 114; `5 J( B1 z' U: ]
7.2.3 实例测试 124* f* x2 X( F$ _. W( C3 o; ]+ i" g
8 k0 L2 _4 T* E* G第8章 NAND Flash控制器 125
- }, x( a* h" G+ e8.1 NAND Flash介绍和NAND Flash控制器使用 125
9 S" u5 h' L1 a$ H9 q5 Q C8.1.1 Flash介绍 1258 R- f3 T( B0 K7 h
8.1.2 NAND Flash的物理结构 127
! U) ~ e7 V4 Q% J0 E6 ~8.1.3 NAND Flash访问方法 128
1 g/ l* I$ h" Y* g5 T& L/ u8.1.4 S3C2410 S3C2440 NAND Flash控制器介绍 134
$ E9 G% H& q+ K0 H% d! T) t) o8.2 NAND Flash控制器操作实例:读Flash 135
4 }( s& q. l4 ~# U9 S8.2.1 读NAND Flash的步骤 135
; u' h- X2 I" i. @; m& G, G8.2.2 代码详解 137
+ E7 c7 s/ B8 r( m9 D" P- o. B. q/ H" o9 M" p5 s! r! D
第9章 中断体系结构 143
+ z" L% y9 O' E5 [. ?# y5 z9.1 S3C2410 S3C2440中断体系结构 143" r' @( ~5 z2 @* m3 h
9.1.1 ARM体系CPU的7种工作模式 1437 u- b8 G" W7 g4 S" F, d
9.1.2 S3C2410 S3C2440中断控制器 146
! C+ s1 I% P; B& E9.1.3 中断控制器寄存器 149" I: p; U: I+ R
9.2 中断控制器操作实例:外部中断 151) \/ {! J) X, `6 s
9.2.1 按键中断代码详解 151 ~2 k" @; T* y( \6 G1 y* S) Q
9.2.2 实例测试 158
4 E1 G" Z9 J! `2 P7 W4 W. |6 K n, ^7 p
第 10章 系统时钟和定时器 1593 G/ j& r, e6 E6 Q
10.1 时钟体系及各类时钟部件 159/ i7 j, e1 Q8 {: I
10.1.1 S3C2410 S3C2440时钟体系 159$ x3 H! [* p1 o. A# B9 F* F+ T
10.1.2 PWM定时器 1615 D b/ F# ?3 j5 d. M) \4 ^
10.1.3 WATCHDOG定时器 164
# f5 i" H! H. Z, A# V/ L3 @2 A6 D10.2 MPLL和定时器操作实例 166
+ L- Z% J+ t: X# ?- {10.2.1 程序设计 166
1 e3 O* j* ~5 v3 o- k10.2.2 代码详解 1665 ?. C% c4 [% m; S6 P1 H
10.2.3 实例测试 170; i! d' a) C i2 J
) B' O: }1 O2 b, J. C
第 11章 通用异步收发器UART 171
3 _$ E. C/ o# {' F+ a8 }11.1 UART原理及UART部件使用方法 171
* b* l! u3 Y% {$ L4 W11.1.1 UART原理说明 171
( v; Q- }- K6 r/ A11.1.2 S3C2410 S3C2440 UART的特性 172. L9 y# y& O1 l5 @, I, e: A
11.1.3 S3C2410 S3C2440 UART的使用 173
' t% ?2 m9 I, S |11.2 UART操作实例 177
# N. P- q% Y# O3 n11.2.1 代码详解 177
6 P: [) U" h. Y$ e11.2.2 实例测试 180
7 ?/ V0 P4 T5 z+ l2 `8 R
! x0 K, p9 a0 c4 v8 Y. p; e第 12章 I*IC接口 181
5 j, g$ Q- H: `' T% ^9 }12.1 I*IC总线协议及硬件介绍 181' {. [3 c" L/ l5 }9 f
12.1.1 I*IC总线协议 1816 d( n7 P+ k& ~/ h& g0 e
12.1.2 S3C2410 S3C2440 I*IC总线控制器 184! Z0 o `& O( F O3 r
12.2 I*IC总线操作实例 187$ a3 O; Z/ J/ {; M* G. w) i
12.2.1 I*IC接口RTC芯片M41t11的操作方法 187
, v H( O) I& D9 P/ E, U12.2.2 程序设计 188: z! _4 G% u. U
12.2.3 设置 读取M41t11的源码详解 188
# K! Y1 D% S" j ~) v6 @12.2.4 I*IC实例的连接脚本 195
% V5 ?7 ?& V- c6 K12.2.5 实例测试 196' @; {# _! ]3 L4 b; q) c( z
; f0 p8 W* L8 O; }第 13章 LCD控制器 197, A, f1 G3 }& V$ W' \2 B: x
13.1 LCD和LCD控制器 197
. n% O3 o0 K; `- {0 E. W, Z1 ?13.1.1 LCD显示器 197, q& C3 P3 b: g, F/ r
13.1.2 S3C2410 S3C2440 LCD控制器介绍 199
- O) V' U5 o/ G, S6 A13.2 TFT LCD显示实例 2103 C9 W" S' D l
13.2.1 程序设计 210
3 M. D3 K5 I8 p; P/ B13.2.2 代码详解 210! P+ M/ t6 [ O0 o: v' ^$ L
13.2.3 实例测试 221! V! @8 K% G$ _2 C+ ?& e4 K
9 H- R! P5 {( b8 }7 v
第 14章 ADC和触摸屏接口 222! v; v# C; u; l1 {
14.1 ADC和触摸屏硬件介绍及使用 222- X- ^6 ^# w5 Y4 ]
14.1.1 S3C2410 S3C2440 ADC和触摸屏接口概述 222
9 f0 [# _/ P4 K1 M% a, ~14.1.2 S3C3410 S3C2440 ADC接口的使用方法 2248 @- @) X; b+ C$ i% R# \
14.1.3 触摸屏原理及接口 226/ w0 B5 j& }# T0 R& t" c( ~
14.2 ADC和触摸屏操作实例 230 I4 s/ B% W6 ~- ~: a
14.2.1 硬件设计 230
6 H# f) ^* T [1 A14.2.2 程序设计 230
1 O" I9 x2 Q7 e/ |14.2.3 测试ADC的代码详解 230
: Q9 ]3 H/ E( \! P1 F14.2.4 测试触摸屏的代码详解 232
4 H8 j, T) T4 j' r! r( B14.2.5 实例测试 237) q$ s) Y" {1 A
% }8 ~: W, Z& p8 G4 Z6 ~第3篇 嵌入式Linux系统移植篇
* w8 E _" Q4 Y! j6 Z" a* |+ y' s; ?) z% E; W+ Y
第 15章 移植U-Boot 240
5 C+ `! g* B& Y0 x7 Y3 p) U15.1 Bootloader简介 2400 }* i! I6 ?$ m$ p3 Y
15.1.1 Bootloader的概念 2401 f. t p3 X* Z- z+ u
15.1.2 Bootloader的结构和启动过程 241/ h1 j$ g9 _! ?5 f4 K# D; v* e
15.1.3 常用Bootloader介绍 246
P- W: }! ]: {" Q- ~15.2 U-Boot分析与移植 246" w) a; ^7 N) D4 o& M
15.2.1 U-Boot工程简介 246% W5 w% E! t: M
15.2.2 U-Boot源码结构 247
0 [0 G* C5 R: d$ n7 t1 U15.2.3 U-Boot的配置、编译、连接过程 249
; S+ r' V6 v+ W15.2.4 U-Boot的启动过程源码分析 257! g# v8 A* Q, F+ V: Y7 r
15.2.5 U-Boot的移植 264
& ]+ E6 z. Y2 @15.2.6 U-Boot的常用命令 2885 E* S3 m, p! _- T/ y: b% F6 B. Z
15.2.7 使用U-Boot来执行程序 292
) j0 H- w- q. p, Y
( L8 u: ]+ x& C6 {( f' v n第 16章 移植Linux内核 2935 V) s; g- h+ ~, e; z3 E+ J
16.1 Linux版本及特点 293! f, T$ r$ E6 ?1 Q9 S3 p% b
16.2 Linux移植准备 294
. N, p# b7 m9 d4 b16.2.1 获取内核源码 294
* ?) O9 V+ k0 h4 q8 U9 }+ J n. M16.2.2 内核源码结构及Makefile分析 2955 q6 J- H9 ^4 Y
16.2.3 内核的Kconfig分析 304
5 z: @! M& W" w; U16.2.4 Linux内核配置选项 309$ P( @/ S6 w4 V: h
16.3 Linux内核移植 313+ ]5 h7 C Y4 m: w$ T7 z
16.3.1 Linux内核启动过程概述 313
E3 n- `4 X* T6 w3 a3 j16.3.2 修改内核以支持S3C2410 S3C2440开发板 314
: e5 L3 i: a/ G) I0 O16.3.3 修改MTD分区 327
! ?9 P4 r [. i1 [5 V16.3.4 移植YAFFS文件系统 330
/ `4 u: `0 d, J6 M% G t8 A16.3.5 编译、烧写、启动内核 333# _/ x" M: c9 V, V6 L% f2 G/ z4 e: |( s
- l5 \6 I2 k8 g) M; R M
第 17章 构建Linux根文件系统 335
, @$ K! J3 h- B0 S' O; N6 J+ Q17.1 Linux文件系统概述 3351 K3 y1 a8 i) S- l: Z" y% _
17.1.1 Linux文件系统的特点 335; {$ g* _2 j8 }6 ^5 y
17.1.2 Linux根文件系统目录结构 336
1 u% i. w9 ?0 s. E17.1.3 Linux文件属性介绍 340
n$ D7 I/ q8 J) ~1 Y' J7 B) z7 f17.2 移植Busybox 3418 x, \2 V5 i& D2 S q6 K
17.2.1 Busybox概述 341
" K2 e, J" E. X. M& T17.2.2 init进程介绍及用户程序启动过程 342
' k$ `1 e. A+ _" G1 z# ~ c17.2.3 编译 安装Busybox 346
& S! @) N8 E; f) t6 g17.3 使用glibc库 350
. @/ C) q8 t! |* `* N17.3.1 glibc库的组成 350
& n! T/ P1 w2 Q/ k n17.3.2 安装glibc库 351* S6 X+ K& L N+ _, N8 Z v
17.4 构建根文件系统 352: B/ n- p2 p9 X$ U
17.4.1 构建etc目录 352. X4 m( ^! k1 m. L ?5 x0 v
17.4.2 构建dev目录 3544 J& ?% J+ R; U; K! ?( P
17.4.3 构建其他目录 3566 S2 _1 b. A; R" k% k
17.4.4 制作 使用yaffs文件系统映象文件 3562 o. F# _: o8 M# t5 n
17.4.5 制作 使用jffs2文件系统映象文件 360- t4 d: G0 E3 w& z8 z* h# S
7 h# V0 D% J/ c' Z9 }: T! w第 18章 Linux内核调试技术 362
) f) [$ _" v* i! k; _" y' D) @18.1 内核打印函数printk 362
. B. f9 u* I# Q; v, J' S18.1.1 printk的使用 362
+ v/ a) [ r" @18.1.2 串口控制台 364
# R$ n( k# k2 ?18.2 内核源码级别的调试方法 3662 y2 ^1 w0 _) T, f9 K& J
18.2.1 内核调试工具KGDB的作用与原理 3668 t8 C9 E6 H/ j7 w! f# C+ V
18.2.2 给内核添加KGDB功能支持S3C2410 S3C2440 367
?% y$ }; t* j- i1 v0 C7 z18.2.3 结合可视化图形前端DDD和gdb来调试内核 3728 H3 m, r; ?* R1 M4 D1 l; E. y" O5 |
18.3 Oops信息及栈回溯 375
q) r; _ P, J) M( {( P! r# D; v18.3.1 Oops信息来源及格式 375) r! b" l2 a$ V7 h" R
18.3.2 配置内核使Oops信息的栈回溯信息更直观 376# j4 p* w; ]% b x
18.3.3 使用Oops信息调试内核的实例 376) I) r: E* \8 O+ n& E' D
18.3.4 使用Oops的栈信息手工进行栈回溯 3802 M0 W J- {# E
. U: b: i* e( Y/ M
第4篇 嵌入式Linux设备驱动开发篇
& ]) K5 B e5 c _5 `
2 [( C/ ^; I, l" S第 19章 字符设备驱动程序 384
! G2 } ~# f, ~19.1 Linux驱动程序开发概述 384
& j( g% [) x$ C$ U7 ]( f19.1.1 应用程序、库、内核、驱动程序的关系 384
5 d. C5 s" `, D: r- V19.1.2 Linux驱动程序的分类和开发步骤 385& Q+ u& \ v# Y0 }0 w
19.1.3 驱动程序的加载和卸载 387
* e+ z* D6 }! R+ v# A+ ?; J19.2 字符设备驱动程序开发 387
9 Z) A8 O4 T0 J8 ?19.2.1 字符设备驱动程序中重要的数据结构和函数 3872 J: l4 t+ K9 n% l+ a* y& W
19.2.2 LED驱动程序源码分析 3898 I' Y' T2 V. z& u/ V/ {6 j
& g: B- e7 L, I: |( Q/ c
第 20章 Linux异常处理体系结构 396
8 {2 W5 {, U- z4 X1 u' Z' r/ U20.1 Linux异常处理体系结构概述 396
' s- s. o& v: j20.1.1 Linux异常处理的层次结构 396
E0 s+ I% Z/ V8 b* G3 E20.1.2 常见的异常 400
& X8 a# K8 `3 q6 C9 c. G y9 U20.2 Linux中断处理体系结构 401 C# I' A% ~# y& R/ n
20.2.1 中断处理体系结构的初始化 401 P" U& z( k, h
20.2.2 用户注册中断处理函数的过程 404/ {, V2 _# Z9 W& h4 i
20.2.3 中断的处理过程 406% U- Y7 U6 h H+ `
20.2.4 卸载中断处理函数 409' `0 t$ V5 A! @* k
20.3 使用中断的驱动程序示例 410
! S. N2 _ G0 O% _ c$ j20.3.1 按键驱动程序源码分析 4104 R9 I g1 M" R2 e
20.3.2 测试程序情景分析 415) M; p& B2 K$ h; o% {4 H) X7 z- A$ w
- z9 ^7 V8 G- c O! I) a第 21章 扩展串口驱动程序移植 419
% y) a) ]: K- L7 M% T; t ?21.1 串口驱动程序框架概述 419( l- i5 `! c, f" c: n$ s. l, {
21.1.1 串口驱动程序术语介绍 419# \4 `7 m% z" ^
21.1.2 串口驱动程序的4层结构 420
' H& H# A! O& A21.2 扩展串口驱动程序移植 423. s9 T$ |& W- L4 z
21.2.1 串口驱动程序低层代码分析 423( z) i% U4 ~% B3 F
21.2.2 修改代码以支持扩展串口 425
# x; u6 T/ @" z) E21.2.3 测试扩展串口 429; L; E3 \* t/ F U$ H: R5 t
' h w: f' E% H, C第 22章 网卡驱动程序移植 431
* }# T! F) S4 S22.1 CS8900A网卡驱动程序移植 431
2 q' I+ ~( m& t9 R22.1.1 CS8900A网卡特性 4311 O8 {( u1 R$ H
22.1.2 CS8900A网卡驱动程序修改 432
Q4 l3 t% o, }7 C/ J22.2 DM9000网卡驱动程序移植 4417 O% J" L) S+ E, {. B
22.2.1 DM9000网卡特性 441$ W* I- w J* m1 j0 H u- r& B
22.2.2 DM9000网卡驱动程序修改 442. @* j" ?6 W7 R
( t3 H, B4 h' z
第 23章 IDE接口和SD卡驱动程序移植 450
6 F5 J5 _. T/ _23.1 IDE接口驱动程序移植 450/ h! b' G3 I$ q: J7 Z& G
23.1.1 IDE接口相关概念介绍 450
- w# Y6 M0 |! t- C! K23.1.2 IDE接口驱动程序移植 452
2 `/ {' Q. I* [5 K8 K' u% P23.1.3 IDE接口驱动程序测试 461
, X" N D+ M' O6 i23.2 SD卡驱动程序移植 4647 b) G; Z% D3 L. I5 R; X
23.2.1 SD卡相关概念介绍 464
0 Z: R$ U8 f6 i. C& Z23.2.2 SD卡驱动程序移植 465
! {/ Q/ |. C4 a" D' l23.2.3 SD卡驱动程序测试 472
: b; d' ]+ X5 o! I3 w* B7 U23.2.4 磁盘分区表 4733 b/ h" @2 A5 z: P4 }0 b1 ~
; N9 V) R! Q1 [/ }, |6 t) c: g
第 24章 LCD和USB驱动程序移植 475/ m8 z" r0 |+ L% N
24.1 LCD驱动程序移植 475
. Z$ v; M, x* Q24.1.1 LCD和USB键盘驱动程序框架 475! m1 I$ M7 X s) y' B
24.1.2 S3C2410 S3C2440 LCD控制器驱动程序移植 479
; A$ x1 S! ?6 x6 c" ~24.2 USB驱动程序移植 489
) `$ G9 p9 g5 d24.2.1 USB驱动程序概述 489
, ^$ e4 ~8 v* ^7 @24.2.2 配置内核支持USB键盘、USB鼠标和USB硬盘 491
5 b$ j. K0 A; c/ c( q4 P* P3 _' m24.2.3 USB设备的使用 492
; l3 y7 s b$ z, C
; F& g$ r Q: j3 i5 L第5篇 嵌入式Linux系统应用开发篇
$ b- G- {4 G2 P% w
7 V; I1 c2 o2 Q3 b v: W第 25章 嵌入式GUI开发 4966 O6 Q; ^' p, c# P: A/ h
25.1 嵌入式GUI介绍 496
0 y, U% x2 z0 p$ A) ~4 n- U! F0 i25.1.1 Linux桌面GUI系统的发展 496
* Y: s+ j6 a, F% a25.1.2 嵌入式Linux中的几种GUI 499
" D1 G( V# \, z, K! X: ^. ^' q25.2 Qtopia移植 501; k* R5 i5 R$ a% l* m, V
25.2.1 主机开发环境的搭建 501
4 f& f* K. _7 S$ V/ h25.2.2 交叉编译、安装Qtopia 2.2.0 502
" f4 @3 X/ |: y: N; z! S- M25.2.3 开发自己的Qt GUI程序 514" D( Z* J( { N; S* c+ `: \5 @
25.2.4 在主机上使用模拟软件开发、调试嵌入式Qt GUI程序 518
$ a$ t9 z @. ?4 Y: i7 ~4 q6 R3 u% E+ U+ m
第 26章 基于X的GUI开发 524
7 E4 Y, Z/ T* z( f$ u26.1 X Window概述 524
4 i; N1 M0 Z6 e' [9 d V26.1.1 X协议介绍 524
6 [- {: i; t* ?+ s' `% d$ F26.1.2 窗口管理器(Window manager) 526
$ o) K$ c# U+ e7 J& u26.1.3 桌面环境(Desktop environment) 526
) N- ]" V. C3 W- r/ I C% H8 Y26.2 交叉编译工具包Scratchbox 526
* V: B& t* B4 a$ q# M) W26.2.1 Scratchbox介绍 527
1 R6 C2 u/ X$ h$ w+ P w$ {26.2.2 安装Scratchbox及编译工具 5287 h0 i5 x0 [( c- h
26.2.3 在Scratchbox里安装交叉编译工具链 5292 g3 S W I0 y& e/ e/ u9 L- S
26.2.4 安装其他开发工具 535
1 x0 v1 G$ C( _: R$ o" }! ?3 n+ W8 D26.3 移植X 536. v. J+ c& Y1 M4 R9 n# |: p; j
26.3.1 编译软件的基本知识 536
. y7 C' \, f2 [$ R26.3.2 编译X的依赖软件 539; J5 U% n7 n0 z* a6 w. s6 L
26.3.3 编译Xorg 542
5 f# K& G9 T1 P: O26.4 移植Matchbox 547. |/ T! _& F0 k, L5 V2 h0 w7 |4 g
26.4.1 下载源代码 548
4 [9 ~0 |' _' X, p. G26.4.2 编译Matchbox 548
7 w0 Q& B" G$ S M1 B8 c M26.4.3 运行、试验Matchbox 550
9 b! z% M" ~1 J$ o# ?$ Q26.5 移植GTK 5530 w: q7 z: D G0 k9 x
26.5.1 GTK 介绍 553$ t5 t% ]9 O8 c- R9 {8 J7 U1 C
26.5.2 GTK 移植 553
5 {6 C- k' N$ Y/ F26.6 移植基于GTK X的GUI程序 555
. C) _- g) |2 A* q% R26.6.1 xterm移植 556( e- e9 S/ I) k) P& N
26.6.2 gtkboard移植 557
. x( q/ l# d) y9 w% O. s26.6.3 裁剪文件系统 5603 [, f. A; [. r1 U1 A6 D
java8.com
' t) i8 e2 b; s; T* V& G9 q0 ^第 27章 Linux应用程序调试技术 564$ z% y7 ^) \# @+ z
27.1 使用strace工具跟踪系统调用和信号 564
3 g- e9 o# h8 a7 k5 |, E' Q, ?5 o! [27.1.1 strace介绍及移植 564, f" Q; |* m" x/ L; Q2 ]
27.1.2 使用strace来调试程序 5653 I5 E, i5 n/ M8 B
27.2 内存调试工具 568
+ _6 u7 Z. W, q27.2.1 使用memwatch进行内存调试 568
: H+ Y1 ]7 p2 E3 Q0 @27.2.2 其他内存工具介绍:mtrace、dmalloc、yamd 571
1 b: i5 x( y$ L) W( u* C" N. B8 q27.3 段错误的调试方法 573
" Z4 }: A& d* ^6 Z! z2 H g27.3.1 使用库函数backtrace和backtrace_symbols定位段错误 573
+ H( M; F0 C5 q8 D, x, j27.3.2 段错误调试实例 574$ M9 t+ ~ i& W
7 L: _: q. a: u# a. o4 I百度云盘下载地址(完全免费-绝无套路):0 N$ B5 { k8 p J* ^# x
/ d9 P' D, Z6 \) ]$ O& e! _ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|