|
Java电子书:嵌入式Linux应用开发完全手册 格式 pdf 电子书 PDF 电子书 Java吧 java8.com" z! t4 M' n8 q$ m' e/ S- w
% h- J" w% _7 ~5 t' {
/ O4 z$ L% `# I5 e编号:mudaima-P0321【Java吧 java8.com】
+ c6 Q- F( K. m9 u+ z6 J* n- x. I& G0 E6 t3 z- ^/ N
. c6 u/ j2 Y6 e) B" r, C& T9 |+ Z" h8 Q8 r2 G- J4 } I
Java电子书目录:第 1篇 嵌入式Linux开发环境构建篇9 A- S4 p( }& q2 |, A& d# m
3 V" d# t. E1 C7 u; @
第 1章 嵌入式Linux开发概述 2' }# F( ^& e) h6 B, W
1.1 嵌入式系统介绍 2
7 ~/ ^! t. v: N+ g4 y! S1.1.1 嵌入式系统的定义和特点 2
: M. H: K8 F8 g% c- b _! o6 d! j1.1.2 嵌入式技术的发展历史 3! o+ k( {4 `- _5 c; Y5 t& X
1.2 基于ARM处理器的嵌入式Linux系统 5( _: D4 p$ J, n% I/ o' r
1.2.1 ARM处理器介绍 5* a" }7 W" [( ~# M
1.2.2 在嵌入式系统中选择嵌入式Linux的理由 88 v: {, m% {( A% K6 s: l( @+ j
& j1 ]: x4 G! b; b- C第 2章 嵌入式Linux开发环境构建 10' S/ F+ S- A$ W9 w' _' F
2.1 硬件环境构建 10
8 _: M; M+ w6 L2.1.1 主机与目标板结合的交叉开发模式 10, W2 j! u6 }" S+ W3 j% X0 Z9 Z5 v
2.1.2 硬件要求 118 E0 k: C- g# Q8 w7 a! D' ?
2.2 软件环境构建 12$ m0 Y0 \9 x' }2 W* `
2.2.1 主机Linux操作系统的安装 12
% w4 E$ x+ G2 R2.2.2 主机Linux操作系统上网络服务的配置与启动 18+ T% N* b" J0 u. G, F
2.2.3 在主机Linux操作系统中安装基本的开发环境 23
3 {$ B. C6 L$ m7 ]6 ^( Q7 X1 S2.2.4 光盘的内容结构及安装 23: D) l/ z1 R4 h
2.2.5 安装交叉编译工具链 25( X; X7 }4 `8 ]( x
2.2.6 书中写作风格的约定 28
. }, w; V% ]) [3 @
2 i9 w3 J: _) |1 [* d7 k+ i& I9 z第3章 嵌入式编程基础知识 29
- K' M; j7 m7 e6 a3 Q' {6 I3.1 交叉编译工具选项说明 29
5 V' u8 v' a4 q3.1.1 arm-linux-gcc选项 29
. f4 s9 o+ \8 X" H! t& K3.1.2 arm-linux-ld选项 38% k9 l* a U0 l0 l/ M
3.1.3 arm-linux-objcopy选项 41! H" ?8 h" O# K
3.1.4 arm-linux-objdump选项 43
# W/ Q: z2 @2 G7 c. b3.1.5 汇编代码、机器码和存储器的关系以及数据的表示 44
% r, D! L, e$ ~& a9 W' t3.2 Makefile介绍 45
! H; Y+ r9 L, m d8 g5 `/ Y, n3.2.1 Makefile规则 45% _0 Y1 B l, ], V: r3 ^+ t$ I
3.2.2 Makefile文件里的赋值方法 46
' ] Q: X) U+ B6 X1 G5 _3.2.3 Makefile常用函数 465 h% m. g4 q4 ~) ]4 K0 g; s
3.3 常用ARM汇编指令及ATPCS规则 52
$ s, f2 a) J S3.3.1 本书使用的所有汇编指令 526 ~9 B& W6 o$ R) ]( ~3 W% {" E
3.3.2 ARM-THUMB子程序调用规则ATPCS 55
8 f8 O9 X. t6 a8 a* Z9 B* c% f$ f. z$ j6 ^$ j
第4章 Windows、Linux环境下相关工具、命令的使用 585 X5 W- t% u: T
4.1 Windows环境下的工具介绍 58& i; P8 `! |2 v2 Z
4.1.1 代码阅读、编辑工具Source Insight 58
V8 a. n+ a$ T7 I+ j, C, d- j4.1.2 文件传输工具Cuteftp 630 S% I6 O2 q3 A' D
4.1.3 远程登录工具SecureCRT 63- m. F/ O) w& I, Q
4.1.4 TFTP服务器软件Tftpd32 647 T% } f) B1 b: }- i
4.2 Linux环境下的工具、命令介绍 65
! m0 [' e) B0 t7 Z4.2.1 代码阅读、编辑工具KScope 65
' z" Y' i. v8 a/ h4 {( z; J* I' q4.2.2 远程登录工具C-kermit 69
" q4 D9 [- Q* `7 u4.2.3 编辑命令vi 69- E' L4 ]5 d1 J" B
4.2.4 查找命令grep、find命令 717 x& }' Q, x; `( P" j& ?
4.2.5 在线手册查看命令man 72
" o# m9 @2 u' z0 s0 P. n4 o4.2.6 其他命令:tar、diff、patch 73% r/ t, _( M+ _1 _2 X A- @
2 r5 _4 u; X: A' [* g4 r第 2篇 ARM9嵌入式系统基础实例篇
$ H( O' S1 b6 p* C1 b, g% h0 X# L8 k+ y4 _! J1 G( h# J
第5章 GPIO接口 76# [" c+ D. b I: W. D8 T2 n
5.1 GPIO硬件介绍 76
+ ]& t1 [& Y$ n) i5.1.1 通过寄存器来操作GPIO引脚 76
% q" a9 l) O6 `+ a: c* v4 T2 b5.1.2 怎样使用软件来访问硬件 77
1 o% q0 l& }4 B, L8 b( V5.2 GPIO操作实例:LED和按键 80" }: y: i6 v" U6 [; G" R9 ?
5.2.1 硬件设计 80
) F& K* m; x' H( j) E5.2.2 程序设计及代码详解 801 B1 I8 t' r; F8 ?; r1 j
5.2.3 实例测试 86
5 V- j1 ~1 m% J2 t; c* k8 J7 l& `' ?/ F* I
第6章 存储器控制 87, C0 i4 l7 @/ {# v: J( Q
6.1 使用存储控制器访问外设的原理 87" g/ W' x* L: P4 I, t+ W1 e8 U- G
6.1.1 S3C2410 S3C2440的地址空间 87
' a; H3 Z% i1 U# y6 o6 R6.1.2 存储控制器与外设的关系 89
7 B+ y( W7 X3 p& i# S6.1.3 存储控制器的寄存器使用方法 91( |" u1 n+ d$ t2 q. \" u
6.2 存储控制器操作实例:使用SDRAM 942 r9 e) ?6 k$ l" s0 ^
6.2.1 代码详解及程序的复制、跳转过程 94
; b( z/ [5 L8 M8 y, Q6.2.2 实例测试 97: h( l4 F' P* H* U! h1 ~
' |4 y6 }' ?' _1 b- p! I3 d4 r/ S
第7章 内存管理单元MMU 98
8 z2 ]5 {) c# j4 \4 F9 i; }1 x" i7.1 内存管理单元MMU介绍 98
% I2 ]: k) `) c% D$ Q- e4 o) E' a7.1.1 S3C2410 S3C2440 MMU特性 98. ?. ?$ C1 `, s% H& s; m' h# |
7.1.2 S3C2410 S3C2440 MMU地址变换过程 99
K9 p: E) L% ?9 S' ?4 u7.1.3 内存的访问权限检查 107* a( F8 y' ] O' O) X* Q0 {
7.1.4 TLB的作用 1092 c1 g3 u9 f+ l; e, F; G) f
7.1.5 Cache的作用 110
$ A* q% m6 D8 _7.1.6 S3C2410 S3C2440 MMU、TLB、Cache的控制指令 113( `2 G; E" @0 R! Z B4 X% \
7.2 MMU使用实例:地址映射 113: W' @% j( P: R9 T( H( Y* l. a5 S
7.2.1 程序设计 113. G+ n( E. Z. V' D7 G+ b
7.2.2 代码详解 114% s* y7 e( z) k0 l8 v1 l
7.2.3 实例测试 124
* A) n( ]3 x, C. h( k& y% t" u; y
第8章 NAND Flash控制器 125- f7 L2 E1 E! ^" m& H" k2 m' L0 z% m% z" x
8.1 NAND Flash介绍和NAND Flash控制器使用 125: {' E4 E3 ^% V- P6 P7 `+ X p4 N
8.1.1 Flash介绍 125- p$ w. i( ]; X; S! V
8.1.2 NAND Flash的物理结构 127 Q- u# B1 k. G4 e$ j" f
8.1.3 NAND Flash访问方法 128
. u; |& F( b% _; P8.1.4 S3C2410 S3C2440 NAND Flash控制器介绍 134
0 J0 v7 s3 f/ y0 B3 x0 t, k, l% i8.2 NAND Flash控制器操作实例:读Flash 135
+ v, y( w) X% ^5 J' l7 M7 G8.2.1 读NAND Flash的步骤 1358 E. _ h4 [8 T% ]4 {
8.2.2 代码详解 137" M' W: l1 N3 f' l5 j3 ], U
- G2 r) w, r7 k2 V+ h& y2 S1 v第9章 中断体系结构 143
. |; T$ ?" I6 j5 e! _9.1 S3C2410 S3C2440中断体系结构 1434 Y) s+ E q+ O9 A( A7 v+ E
9.1.1 ARM体系CPU的7种工作模式 143/ X/ l8 u8 S! Z/ ~
9.1.2 S3C2410 S3C2440中断控制器 146
% c* O) }4 Y. B3 R+ [( ^% ^2 k8 ~9.1.3 中断控制器寄存器 149: K# C& `+ T" B/ Z6 u- c
9.2 中断控制器操作实例:外部中断 151
: X, m) o5 ?. t) E& s( P, H9.2.1 按键中断代码详解 151
- E% y. O3 w! F4 Y0 S3 h/ ~9.2.2 实例测试 158
# C. ^3 [) e& ?; D1 A3 P4 j7 s2 l7 ]4 T4 u- R' k' b
第 10章 系统时钟和定时器 159+ U7 P4 ? v# R! H8 p
10.1 时钟体系及各类时钟部件 159
; w/ g' c5 B2 N4 ^6 L+ L10.1.1 S3C2410 S3C2440时钟体系 159
( n& P* I3 O& y10.1.2 PWM定时器 161
! X* X: s# M! t" |10.1.3 WATCHDOG定时器 1643 s, p' u4 G6 R4 }. S+ l7 J8 ^7 I
10.2 MPLL和定时器操作实例 166# x' u$ w3 \2 r
10.2.1 程序设计 166
+ f" o1 T; Z: {! ?& u8 ^10.2.2 代码详解 166% Y E/ ` a' [+ w. g
10.2.3 实例测试 170
' J/ _# P3 C' X7 v6 o K% e1 [# I, k9 w# f1 |
第 11章 通用异步收发器UART 1715 O8 h1 m( A0 x: ]
11.1 UART原理及UART部件使用方法 171
$ h" }1 V1 L! N P" K% ]9 D11.1.1 UART原理说明 171
N2 X5 N5 Q2 x/ @; {5 ?11.1.2 S3C2410 S3C2440 UART的特性 172
) h% z, m: L( j) v1 m9 X/ B) z7 L11.1.3 S3C2410 S3C2440 UART的使用 173
" n1 E A& C+ P* R/ ?1 F. V8 O/ ^2 T11.2 UART操作实例 1773 @1 w; e& e1 T* r7 F
11.2.1 代码详解 177
4 k8 n7 v! T# d {" X5 ~11.2.2 实例测试 180
' c/ g& P; ^) D a- a1 F8 o4 D) ~8 J, p( y, j4 ] h1 N
第 12章 I*IC接口 181
' ?3 w: K% O, d; S12.1 I*IC总线协议及硬件介绍 181
7 A: \$ [4 k" c5 s9 I0 Y+ r5 S) ~12.1.1 I*IC总线协议 181
) r9 W" W5 E p3 m12.1.2 S3C2410 S3C2440 I*IC总线控制器 184
2 z) z7 y3 E. @: [; }* ]7 p9 @1 k12.2 I*IC总线操作实例 1873 P. H) l4 a. ]0 Q8 G/ d
12.2.1 I*IC接口RTC芯片M41t11的操作方法 187: W! v) X0 y+ ^) A
12.2.2 程序设计 1886 a! D) i/ n( w/ l/ x
12.2.3 设置 读取M41t11的源码详解 1884 L! ~, G8 T# {( c" N
12.2.4 I*IC实例的连接脚本 1953 b, i5 X i, s% B+ R
12.2.5 实例测试 1960 T4 G- [* ~ _* K
4 S, R5 l7 D S+ W- r8 n" g
第 13章 LCD控制器 197' K/ @( H2 m4 ^' |/ t
13.1 LCD和LCD控制器 197
- ~ l* G: E8 h! S13.1.1 LCD显示器 197+ z" f* {, k: _' }0 U/ g3 ?1 m# m
13.1.2 S3C2410 S3C2440 LCD控制器介绍 199
. G- P+ I8 s4 S0 x' v' F9 b13.2 TFT LCD显示实例 210
2 |! y! O+ w/ S5 {13.2.1 程序设计 210! P* }7 G1 Z1 X7 A
13.2.2 代码详解 2105 Y# i7 A) m$ \
13.2.3 实例测试 221( F9 `" u3 @1 g
0 K; w# d4 F3 O
第 14章 ADC和触摸屏接口 222
3 \6 \% R! C) D8 c( |; J9 _14.1 ADC和触摸屏硬件介绍及使用 222
% C/ a8 }& L5 O14.1.1 S3C2410 S3C2440 ADC和触摸屏接口概述 222, w/ W) G+ ] `6 Y
14.1.2 S3C3410 S3C2440 ADC接口的使用方法 224" H) ^' e9 K, L: U+ N( I
14.1.3 触摸屏原理及接口 226
( a" Q# L e* t14.2 ADC和触摸屏操作实例 230
4 f `7 s4 ^) t# u14.2.1 硬件设计 230
7 B9 N8 ^: {8 Z! M1 _, r14.2.2 程序设计 2300 B0 j. P! J5 u; I& w6 _% d9 t
14.2.3 测试ADC的代码详解 230' ?( R# E8 U* | {3 X2 L: k! Z3 x
14.2.4 测试触摸屏的代码详解 232- A3 K9 o4 ^) H. b/ `" ~
14.2.5 实例测试 237
; N$ ]% W2 l+ b
; b( J3 O4 C. G+ S1 ~# Z$ W9 }5 S第3篇 嵌入式Linux系统移植篇* O1 ^( ^* t& S0 M0 w/ K
: ]. S W# S; U L6 I& \
第 15章 移植U-Boot 240
5 K7 F6 }" t6 d* C- o8 H( D3 F: X15.1 Bootloader简介 240
( }: R6 d& ~ p2 M15.1.1 Bootloader的概念 2408 E8 R: _# n5 z1 e% R& X& X
15.1.2 Bootloader的结构和启动过程 241/ A. u9 L7 X6 Q2 w$ e
15.1.3 常用Bootloader介绍 246: N3 v% [6 o3 g) J9 e
15.2 U-Boot分析与移植 246' r4 E3 w3 }/ d1 r% d, E8 T
15.2.1 U-Boot工程简介 246
7 \% n8 K% k3 u15.2.2 U-Boot源码结构 247* [ `2 P: I, Q. ~2 |
15.2.3 U-Boot的配置、编译、连接过程 249
9 U1 A' |0 U4 A: F. r15.2.4 U-Boot的启动过程源码分析 257
% _7 Q2 {+ o7 u% U4 W6 E15.2.5 U-Boot的移植 264
4 f- r, a! S u6 u" y4 M15.2.6 U-Boot的常用命令 288
0 Y. b* _0 D1 X. J. z0 _" z; c15.2.7 使用U-Boot来执行程序 2922 ?% ]; d0 h9 e5 y- A5 b3 `
" y2 C' B2 F& S7 F" K2 |$ ]
第 16章 移植Linux内核 2939 p) m1 }; k% x/ K, m/ l
16.1 Linux版本及特点 293* [- P8 ]( ]7 j$ Q6 K/ R6 N
16.2 Linux移植准备 2949 P3 n. Q! J! j9 j* c& c1 |* B8 D
16.2.1 获取内核源码 294
( l: S& s' ~$ M: J16.2.2 内核源码结构及Makefile分析 295
3 ], Z5 m2 d: j" I G16.2.3 内核的Kconfig分析 304
1 B3 G+ K1 k2 _ e' t& f `16.2.4 Linux内核配置选项 309
1 \( C, C" Q$ M5 w16.3 Linux内核移植 313
; y5 t( p/ Y5 x& x. @16.3.1 Linux内核启动过程概述 313
% f+ H+ p8 M3 g# @1 B: \16.3.2 修改内核以支持S3C2410 S3C2440开发板 314* U2 D; D( _5 m( b2 V- C5 b
16.3.3 修改MTD分区 3278 W' `% Z9 m6 M7 L/ P
16.3.4 移植YAFFS文件系统 3306 Y4 k! B H' A: ?* S& T% t
16.3.5 编译、烧写、启动内核 3333 s0 N$ p7 N* \; \) P
9 Q, f. y* {6 c' L" J9 k. [; s. \+ h
第 17章 构建Linux根文件系统 335
7 \. L$ {1 X( y17.1 Linux文件系统概述 335! }5 b2 k1 _& P% `$ f I; }6 t7 E
17.1.1 Linux文件系统的特点 335. Q- F V! ^+ O2 X0 J% A+ P
17.1.2 Linux根文件系统目录结构 336
- Q: T& b6 g! B) c$ I17.1.3 Linux文件属性介绍 3409 e( @+ s% R* Y0 z' w( o
17.2 移植Busybox 341
8 }0 h% s: r3 S; n% {1 Z17.2.1 Busybox概述 341
) q& {" Z" R! b X/ h% ]17.2.2 init进程介绍及用户程序启动过程 342
& H/ V0 [' N, K4 [$ r17.2.3 编译 安装Busybox 346& _1 u6 I+ H4 B. i4 B4 o4 o) l
17.3 使用glibc库 3507 _2 w8 S" W" y$ U; O' Z- I7 E
17.3.1 glibc库的组成 3509 U- G6 p0 G6 q5 Y3 B5 ?: z
17.3.2 安装glibc库 351
7 ?! t% n* W$ e1 f/ Z$ `$ t. h17.4 构建根文件系统 352% M7 e2 X0 o7 G! y% d/ F/ ~
17.4.1 构建etc目录 352
, f/ q. Z: P) }9 t8 s7 {3 a17.4.2 构建dev目录 3540 N+ A/ V* v. K$ ?) _& b* C: s
17.4.3 构建其他目录 356
_0 j, @- e; V17.4.4 制作 使用yaffs文件系统映象文件 3563 g4 e# q6 _* i4 o( j: w* i9 X
17.4.5 制作 使用jffs2文件系统映象文件 360
( R. [* F; g) P5 p4 X# \7 h; e) a" x3 u# b: F7 d6 V. g2 @+ M
第 18章 Linux内核调试技术 3621 ~( X# I% ^0 b! z) T3 ?
18.1 内核打印函数printk 362
7 u7 |& j3 T/ l$ f18.1.1 printk的使用 362
4 H" m9 T/ g8 Q7 N2 |0 k1 J2 b18.1.2 串口控制台 3647 Y5 d# D" K. s: F g
18.2 内核源码级别的调试方法 366; K( B, X; L- y
18.2.1 内核调试工具KGDB的作用与原理 366( w( h4 U, J' X8 O/ R7 ?/ ]4 t" L6 U
18.2.2 给内核添加KGDB功能支持S3C2410 S3C2440 367
% F/ Q( _, l, u8 o18.2.3 结合可视化图形前端DDD和gdb来调试内核 3724 Y, V" @' z k! l, I, j+ g
18.3 Oops信息及栈回溯 375
9 b8 j; M0 }1 v/ S! x* K18.3.1 Oops信息来源及格式 375+ h3 Y9 l$ h) m' G+ V$ u$ y8 \
18.3.2 配置内核使Oops信息的栈回溯信息更直观 376: R# L$ H' C- o/ `# ~5 |
18.3.3 使用Oops信息调试内核的实例 376$ d0 V& o9 Z, ^9 X: `. t
18.3.4 使用Oops的栈信息手工进行栈回溯 380
/ c% G* @& U/ ~4 K( I- E" c3 U
8 x6 e; l: c( ^3 X5 O第4篇 嵌入式Linux设备驱动开发篇
3 l3 e" m, W1 U
& E" l% U: }3 P! z0 Z. z第 19章 字符设备驱动程序 384: Y2 u0 p/ A6 Y8 i- U) G9 p+ z
19.1 Linux驱动程序开发概述 384, T( h5 N9 S* U- |$ w/ b, {* C
19.1.1 应用程序、库、内核、驱动程序的关系 384% W, J6 T/ |$ `+ ~( B% f+ k
19.1.2 Linux驱动程序的分类和开发步骤 385$ o: v! p; Q4 H X
19.1.3 驱动程序的加载和卸载 387
" I* X: m# B/ R8 @; l2 ?, b& k19.2 字符设备驱动程序开发 3872 a& s* l4 E( J+ w
19.2.1 字符设备驱动程序中重要的数据结构和函数 387
/ p. B$ q @! R19.2.2 LED驱动程序源码分析 389' I5 D- c# e6 O8 R5 m7 v
* Q# Z4 u: e" K1 O/ C7 T
第 20章 Linux异常处理体系结构 396& v8 P% f0 H: D& o( i0 S
20.1 Linux异常处理体系结构概述 396
/ K! f/ f( d) O& I20.1.1 Linux异常处理的层次结构 396# h1 _! M, o: m; m) C3 e) i
20.1.2 常见的异常 400
) v* A& j! E. e: C, {) T& B/ O( k2 k20.2 Linux中断处理体系结构 401 |# e* i/ C8 e3 C; B
20.2.1 中断处理体系结构的初始化 401
8 |! c) s7 a z" R6 J( L; L20.2.2 用户注册中断处理函数的过程 404/ k/ n U2 y5 \- o0 s. T, _7 n
20.2.3 中断的处理过程 406
% m Q' P* F/ k$ S! A6 D) P20.2.4 卸载中断处理函数 409
/ [ i# F& E/ i8 D% v+ U4 [5 _6 c20.3 使用中断的驱动程序示例 4108 k3 m+ `" ~7 v1 h
20.3.1 按键驱动程序源码分析 410
1 b% \& |: X( e( M0 x- B1 n% L- K20.3.2 测试程序情景分析 4151 v1 X! e' m/ g$ |4 Q: k# e" [! d/ K
! b4 H4 K5 t9 `
第 21章 扩展串口驱动程序移植 4199 b* C+ {" K" u! V
21.1 串口驱动程序框架概述 419
# C; V8 Q8 _3 D. M; |/ e! E& |21.1.1 串口驱动程序术语介绍 419
0 ]: M: D! [; m: k! R21.1.2 串口驱动程序的4层结构 420
( t5 A$ F# i- S8 O0 T8 O8 O s/ }4 q+ J21.2 扩展串口驱动程序移植 4232 q- }& x* v5 c* i7 [# O
21.2.1 串口驱动程序低层代码分析 423
5 R0 @& ^6 r- o0 H/ V21.2.2 修改代码以支持扩展串口 425, B7 l" p. ^0 H, {1 K% t6 h
21.2.3 测试扩展串口 4290 z3 T2 @% C9 ^" K: c, I
& M1 f& G" p9 X+ Z& s; p
第 22章 网卡驱动程序移植 431
8 `) M G! D# F5 A1 d8 y! a22.1 CS8900A网卡驱动程序移植 431
9 ^. X5 i; h [22.1.1 CS8900A网卡特性 431
/ k4 `, D8 _9 _0 @22.1.2 CS8900A网卡驱动程序修改 432 R3 D; D7 [8 k- j# k4 R b8 M1 @
22.2 DM9000网卡驱动程序移植 441
" t* |8 y$ S& i, n22.2.1 DM9000网卡特性 4419 J0 l I) C5 r: O
22.2.2 DM9000网卡驱动程序修改 4428 \# X1 @9 z4 e1 f( T
) M4 I9 N# Y ], f* r第 23章 IDE接口和SD卡驱动程序移植 450
" C8 s h. h2 a1 n- G23.1 IDE接口驱动程序移植 450
) s/ u z! G6 z) J23.1.1 IDE接口相关概念介绍 450; b& _4 j" V2 W3 t1 J% e* q
23.1.2 IDE接口驱动程序移植 452' ]# Z" K% z6 S) l0 }# L+ _
23.1.3 IDE接口驱动程序测试 4611 ~4 l( N' V J! D7 o
23.2 SD卡驱动程序移植 464
9 o C$ T- `& u& ~' b5 }23.2.1 SD卡相关概念介绍 464
# E, T/ b H4 \( V4 c' k23.2.2 SD卡驱动程序移植 465
5 O* P, B0 |( w! _) |. ~2 X23.2.3 SD卡驱动程序测试 4725 u9 w; k/ H3 k: M
23.2.4 磁盘分区表 473
' ]. G* Q" _7 l& S4 y H8 p2 s: D, l4 X" I$ `
第 24章 LCD和USB驱动程序移植 475
" B; [1 {2 I7 Z$ _24.1 LCD驱动程序移植 475
0 ^ Z; S9 C5 M% f* y& W. e24.1.1 LCD和USB键盘驱动程序框架 4758 _. D" Y% L* j; q& D1 K
24.1.2 S3C2410 S3C2440 LCD控制器驱动程序移植 479
! r+ C( S2 ?& e4 e' g" G24.2 USB驱动程序移植 489
# c' t) p8 }% G, _24.2.1 USB驱动程序概述 489
( P2 ?1 s8 g! K4 k" s8 Q24.2.2 配置内核支持USB键盘、USB鼠标和USB硬盘 4912 i2 z& Q- i8 D
24.2.3 USB设备的使用 492, a3 D! K6 l& G* [* |
$ J% v: E* q/ c" u' n) K第5篇 嵌入式Linux系统应用开发篇9 D5 Q+ E% ]4 d/ z5 f ^$ {
2 q9 c8 {: ^) d( f
第 25章 嵌入式GUI开发 496
5 Y- {& a$ v& T$ B' }1 J1 ? i1 Z1 J25.1 嵌入式GUI介绍 4962 g5 {' v) L! d7 I. b
25.1.1 Linux桌面GUI系统的发展 496
' q/ U5 H1 j* j. H1 c' b- F25.1.2 嵌入式Linux中的几种GUI 499
9 _3 ?. w0 {. Z7 T+ Z25.2 Qtopia移植 501
4 [. E2 G! N0 j* H7 r+ x0 Y0 t25.2.1 主机开发环境的搭建 501) G2 ~9 }" S5 L, K2 x
25.2.2 交叉编译、安装Qtopia 2.2.0 502- y) A: y& ]3 ~ a% V
25.2.3 开发自己的Qt GUI程序 514
2 G8 R) W0 v: P3 E5 n* Q25.2.4 在主机上使用模拟软件开发、调试嵌入式Qt GUI程序 5181 Z3 L% d! a4 \/ \. i9 `
8 h5 }/ A5 o7 D% P
第 26章 基于X的GUI开发 5245 r, Z7 K ~7 D+ F$ A
26.1 X Window概述 524/ j& @. P# ^! a C/ ^' g/ S2 {
26.1.1 X协议介绍 5242 {# {; _& y1 q8 O9 _# L. q
26.1.2 窗口管理器(Window manager) 526
; e0 i( I8 J: i26.1.3 桌面环境(Desktop environment) 526
3 x: b Q$ R8 o/ Y( k26.2 交叉编译工具包Scratchbox 526
2 l6 V8 ~& n0 p% h# S26.2.1 Scratchbox介绍 5271 p N7 H6 e8 y; s
26.2.2 安装Scratchbox及编译工具 528. o. K- {- @3 i8 W$ n: f4 ?7 U" s
26.2.3 在Scratchbox里安装交叉编译工具链 529
8 S7 { ?; r: _! Z1 p% \26.2.4 安装其他开发工具 535
( V4 C& l7 v) Z \& V( ^26.3 移植X 536
1 }' c3 p# }! A/ X26.3.1 编译软件的基本知识 536; j. u5 H. G$ ]- O! K
26.3.2 编译X的依赖软件 539
8 J- {9 w# z7 `" E26.3.3 编译Xorg 542+ O: `& t4 A, k/ V. E5 V) h0 a
26.4 移植Matchbox 547
! m9 O; O9 m7 Q1 H& }' U26.4.1 下载源代码 5481 t. a) R5 V. z5 [
26.4.2 编译Matchbox 548
3 T9 s, Z1 \+ C6 d! I, \* t2 F- |26.4.3 运行、试验Matchbox 550
* [1 F# q4 x- |; z26.5 移植GTK 553- ]/ T0 `( m- |2 e
26.5.1 GTK 介绍 553
1 U7 B. Z5 |% a6 S; g7 B5 S, n( g26.5.2 GTK 移植 553
4 d A! j% p- {6 e% L$ C26.6 移植基于GTK X的GUI程序 555
/ f$ O l: V1 n" ^, x' t26.6.1 xterm移植 556
5 n9 F1 e8 i# l4 y9 p" }& g5 O/ K26.6.2 gtkboard移植 557
- G# l$ ~: b. k26.6.3 裁剪文件系统 560' {) @ R" M+ _, _
java8.com
3 e- _) {) E; g# K# s3 R第 27章 Linux应用程序调试技术 564$ A a% |9 W3 v& d# {5 M% R
27.1 使用strace工具跟踪系统调用和信号 564
/ L+ I# n; ^7 o3 L% E6 O27.1.1 strace介绍及移植 5649 d# V* l% D) L- C) M3 H& e
27.1.2 使用strace来调试程序 565
' Q0 K: H+ H. `- D, u; C27.2 内存调试工具 568
) N2 B1 F6 _0 U; X5 D9 x27.2.1 使用memwatch进行内存调试 568
4 ~% b* J! o6 a ]" p27.2.2 其他内存工具介绍:mtrace、dmalloc、yamd 571
! G- r& ]4 B3 U, M, N* r27.3 段错误的调试方法 573# y, I$ d8 y. k' u' }9 ~
27.3.1 使用库函数backtrace和backtrace_symbols定位段错误 573
0 O$ A# {: ]( E) h' y0 A27.3.2 段错误调试实例 574
) M- y5 C$ u0 G- g! V0 W4 H$ |
% C' W" x+ d! R) Q& p( C百度云盘下载地址(完全免费-绝无套路):
! H- J* R% G3 c+ ?
8 x" X+ j3 e! f/ e& `+ q |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|