|
Java电子书:嵌入式Linux应用开发完全手册 格式 pdf 电子书 PDF 电子书 Java吧 java8.com. d" C8 o: m8 k
6 |- t* _/ i. i Q S" {. N
: B" d5 t- k/ u编号:mudaima-P0321【Java吧 java8.com】
* |( ~9 S$ u6 h) i: W, U: p6 V5 h5 ^* I$ h
0 w: N' ~( r# i0 a* ~5 k- F: k+ L
6 ~/ g0 \+ }9 D: K( kJava电子书目录:第 1篇 嵌入式Linux开发环境构建篇
, ?( m" l+ Q6 e* x
, `9 Y$ ^ p& }' M9 ^. q第 1章 嵌入式Linux开发概述 2
/ N6 q1 S% @' u7 ~+ y1.1 嵌入式系统介绍 29 Z: I( d$ R) U3 V( p# r
1.1.1 嵌入式系统的定义和特点 2- U8 R/ ~* K# p: [1 o% ^6 y" a+ L
1.1.2 嵌入式技术的发展历史 3
9 X. w# N; C. d, n) V1.2 基于ARM处理器的嵌入式Linux系统 58 Q, i& u `6 o- I4 \( g
1.2.1 ARM处理器介绍 5( ^* ^* I6 `7 c+ P/ {
1.2.2 在嵌入式系统中选择嵌入式Linux的理由 8
/ z& J; x/ B1 R8 W, e5 L: `7 `* W6 x# G/ t9 o) m
第 2章 嵌入式Linux开发环境构建 10, ^, M4 m1 W& y0 A& V& |; e9 c
2.1 硬件环境构建 10
4 Q/ C, E8 W0 l) P* l! q2.1.1 主机与目标板结合的交叉开发模式 10& y; L! @7 u" F6 L9 H( n2 j/ m
2.1.2 硬件要求 11
) g1 [5 C6 A V2.2 软件环境构建 12, @3 z& R: U1 e8 l; C
2.2.1 主机Linux操作系统的安装 12
7 ^2 r' B1 `3 o h: {- C2.2.2 主机Linux操作系统上网络服务的配置与启动 18
2 U6 ^) m9 N4 `0 I& ~* Y2.2.3 在主机Linux操作系统中安装基本的开发环境 23
/ P. _% _ l. X8 ~( W. W& l2.2.4 光盘的内容结构及安装 23/ M1 C; M+ ~9 I! U! ~/ N% P
2.2.5 安装交叉编译工具链 254 Z- t/ X7 P8 ]0 W4 G
2.2.6 书中写作风格的约定 28
/ N, Y9 T" C5 \' Z; B( Y2 x* H6 L. z; M
第3章 嵌入式编程基础知识 290 F( V% S/ p4 }' f" E& e4 H1 W
3.1 交叉编译工具选项说明 29' p$ ?5 R+ L O; i
3.1.1 arm-linux-gcc选项 29& E5 v g0 K9 C, j6 D
3.1.2 arm-linux-ld选项 38
3 r* q" F( E, k/ J$ p( X3.1.3 arm-linux-objcopy选项 41
; X5 g$ E8 o5 e3.1.4 arm-linux-objdump选项 434 ]( q0 C3 F" L% d' D
3.1.5 汇编代码、机器码和存储器的关系以及数据的表示 44
0 ^1 x& q' ]8 m9 B0 \6 a7 q3.2 Makefile介绍 45
; B) |1 N% N) e4 y h0 f3.2.1 Makefile规则 45' @% O$ |8 V+ `6 ?% Z6 n1 `: A0 c
3.2.2 Makefile文件里的赋值方法 46" a9 E1 {: u1 R
3.2.3 Makefile常用函数 46. X r; F2 _7 z$ o% U& }' x5 z
3.3 常用ARM汇编指令及ATPCS规则 520 c8 Q. [7 Z- _% _0 C* z3 I
3.3.1 本书使用的所有汇编指令 521 ~+ ]* ] b! n3 t6 J- b/ y
3.3.2 ARM-THUMB子程序调用规则ATPCS 55
; a/ K9 k4 V3 p. z2 M! f( S3 b0 ?, r/ }
第4章 Windows、Linux环境下相关工具、命令的使用 58
# O! W7 C- u3 h, K4.1 Windows环境下的工具介绍 58
3 k; j" z H2 r: ]4.1.1 代码阅读、编辑工具Source Insight 583 I! D/ ]. T, o- J# G& w$ C: j
4.1.2 文件传输工具Cuteftp 63
5 O9 g7 J: U0 V$ ?4.1.3 远程登录工具SecureCRT 63! z$ L: ]& c& P0 w# e( V
4.1.4 TFTP服务器软件Tftpd32 64 r8 L7 H% @8 V8 \# j( W8 T# C
4.2 Linux环境下的工具、命令介绍 65
5 k. w. g! h3 i( V' Y6 A _, d4.2.1 代码阅读、编辑工具KScope 65
2 O" v% p4 M$ B, x: E4.2.2 远程登录工具C-kermit 69
( Y3 G; _5 h, n' d7 D3 x+ ^; n4.2.3 编辑命令vi 69, W u. |0 W& Y# r- T# t" t
4.2.4 查找命令grep、find命令 71
$ B5 ~" {- n/ Q- z3 t4 ~4.2.5 在线手册查看命令man 72
) T2 \' s4 H$ M4.2.6 其他命令:tar、diff、patch 73
/ Q3 L) ^8 J3 ~& v/ E! N6 V4 j9 |3 R, Y' _- A
第 2篇 ARM9嵌入式系统基础实例篇
$ V9 l( Y1 N0 T$ Q! s2 u4 U0 T/ [
第5章 GPIO接口 76
8 t% |4 O) g& D" Z0 r5 D9 i! @5.1 GPIO硬件介绍 76
3 Q1 V& c- N. U5.1.1 通过寄存器来操作GPIO引脚 76! P7 {# T% J r+ C
5.1.2 怎样使用软件来访问硬件 77+ {, e/ w3 _# ^: W9 z' u9 z
5.2 GPIO操作实例:LED和按键 80$ V% i4 K& @6 Z) e
5.2.1 硬件设计 80
# F3 I& q. x& H, r5.2.2 程序设计及代码详解 80- r2 |5 S+ G* q5 {4 w; T
5.2.3 实例测试 86 E( A. r* \# l! S
0 m O# n& L6 I0 \3 ]; G第6章 存储器控制 87
. o) S# b$ R- f: t6.1 使用存储控制器访问外设的原理 87
5 {! q+ L+ B2 j! Y$ }. D) A: N7 P/ k6.1.1 S3C2410 S3C2440的地址空间 87
3 s; t. Z4 B P$ u5 J) z6.1.2 存储控制器与外设的关系 89
, T0 C7 n+ `- L7 ?6.1.3 存储控制器的寄存器使用方法 91
& k; T5 M% ]7 X: m* |3 S. o6.2 存储控制器操作实例:使用SDRAM 94: A& H* @# I/ o. R" }" F
6.2.1 代码详解及程序的复制、跳转过程 94 G( J" ~& T. |5 D0 C) I; M
6.2.2 实例测试 970 G( @4 E. B6 t6 a) b3 k
! W4 B' p" v" r8 M5 w* t) N第7章 内存管理单元MMU 98
+ \7 }8 Y! K( P) a, K1 j z7.1 内存管理单元MMU介绍 982 R% A0 z$ M$ [
7.1.1 S3C2410 S3C2440 MMU特性 98
6 Z$ q l7 o. S, T7.1.2 S3C2410 S3C2440 MMU地址变换过程 99
& y9 I3 s2 r& r+ H$ x8 b1 w1 ~( H7.1.3 内存的访问权限检查 107
( `, j3 Y, s/ R, P/ t& }, @7.1.4 TLB的作用 109
i* X6 ` M3 I; { x6 z7.1.5 Cache的作用 110
( z, ^1 J6 } F7 D0 O7.1.6 S3C2410 S3C2440 MMU、TLB、Cache的控制指令 113
/ L1 m9 i) N" w7.2 MMU使用实例:地址映射 113
' @7 q s' O ] h" H8 T7.2.1 程序设计 113' L& k r' F! \2 d* Q( t
7.2.2 代码详解 114: S+ b+ S- x5 S$ Q, z
7.2.3 实例测试 124
: z* H; K& M) e0 T4 I; W* h. ^6 M
第8章 NAND Flash控制器 125
* e' T7 W% n, r- P, X |8.1 NAND Flash介绍和NAND Flash控制器使用 125 n* o8 Q7 E1 |( q
8.1.1 Flash介绍 125
8 n) |! ?* C$ p8.1.2 NAND Flash的物理结构 127
6 K% x8 h9 G" R* Q$ {- s1 Y& F8.1.3 NAND Flash访问方法 128$ e2 G) |8 o5 G+ c7 H* ^ w. J
8.1.4 S3C2410 S3C2440 NAND Flash控制器介绍 134& C" [0 Q' M; K% E. r" F
8.2 NAND Flash控制器操作实例:读Flash 135; g" `! o* A7 h# B4 p4 |0 K
8.2.1 读NAND Flash的步骤 135: d: h4 v9 `/ w, y
8.2.2 代码详解 137: Y7 h3 f, \' h5 r1 i
2 z% G* n. q) }+ F6 h& Q4 p
第9章 中断体系结构 143
8 Y9 a, ~+ J' B" y) j5 X2 v9.1 S3C2410 S3C2440中断体系结构 143( n' ?4 B0 P& [6 l
9.1.1 ARM体系CPU的7种工作模式 143
2 b# t+ l9 Z" F% u( ^: D, S j: x9.1.2 S3C2410 S3C2440中断控制器 146; b6 A) n6 h8 _: z
9.1.3 中断控制器寄存器 149
$ f1 U4 A- [ R% J3 }0 Z9.2 中断控制器操作实例:外部中断 151) L) y0 P0 F( N2 C$ h7 H3 R2 R
9.2.1 按键中断代码详解 1515 Z7 s/ P/ m7 t) J, o' a
9.2.2 实例测试 158
$ h# \1 C( Z+ ?: x' b5 J |1 {6 _( L) a
第 10章 系统时钟和定时器 159
" U. x6 o0 Y5 I" Y& }& w+ L% p10.1 时钟体系及各类时钟部件 159
T* |+ y* l/ B5 u: l+ q" B* d* H10.1.1 S3C2410 S3C2440时钟体系 159+ {, ?& a9 ?. F3 u+ j
10.1.2 PWM定时器 161) M- F0 @- c4 y0 R# R: ^
10.1.3 WATCHDOG定时器 164
: R$ k/ P6 a, }10.2 MPLL和定时器操作实例 166" C7 q! T7 |# f- q" }, J/ S
10.2.1 程序设计 166& ^4 p. \& Z$ v, q/ a0 [
10.2.2 代码详解 166
( i& c" w$ ^. o6 g! G. I2 i$ @10.2.3 实例测试 170( I$ u* K* y. r% n
7 ~; F" T! e# G1 j' a1 n0 [第 11章 通用异步收发器UART 171 a0 B' a1 g' f/ t
11.1 UART原理及UART部件使用方法 171( e4 l q2 u2 R5 r" j
11.1.1 UART原理说明 1716 S4 \/ p, R7 d' r+ |' m/ X
11.1.2 S3C2410 S3C2440 UART的特性 172
* `0 f' i! n% s% i6 j3 K11.1.3 S3C2410 S3C2440 UART的使用 173) U/ U$ N8 k w0 p
11.2 UART操作实例 177
0 d. S. C# J2 P$ A4 y% k( ]6 q4 D7 H11.2.1 代码详解 177
! c% g7 J$ Z% t, a11.2.2 实例测试 180; S1 O% u# d. k" v: s
0 { t8 @5 x" ^8 b4 c. {5 J第 12章 I*IC接口 181
" h8 I) l+ K, z2 x6 c$ E8 s& O, x12.1 I*IC总线协议及硬件介绍 1812 ~3 X s" H$ I L: o9 _% A7 _
12.1.1 I*IC总线协议 181* W2 s; e( ^( }/ l3 t8 P
12.1.2 S3C2410 S3C2440 I*IC总线控制器 184
$ n, D8 O& m2 d, C$ e' T. M12.2 I*IC总线操作实例 187
# Y) @! l3 Y/ d8 o9 w! m12.2.1 I*IC接口RTC芯片M41t11的操作方法 187
0 e1 o) O! o( e6 b7 j' o12.2.2 程序设计 188
6 r, R7 I. \) E7 N12.2.3 设置 读取M41t11的源码详解 188
3 I; t5 L! h7 L( X6 P- H ~/ u12.2.4 I*IC实例的连接脚本 1956 Z" h3 }$ E8 G H2 u1 ]) U
12.2.5 实例测试 196
0 @$ E+ |; s0 X; M6 R9 w8 M- }
3 Y# c- T- f' ?% x5 u- `5 g3 M第 13章 LCD控制器 197
% P0 F1 \1 }) n. t: }5 E# v, a13.1 LCD和LCD控制器 197
# z4 t6 p/ R# S2 L7 e0 A13.1.1 LCD显示器 197
6 o8 |5 N3 \" X2 S1 U; R6 `1 L13.1.2 S3C2410 S3C2440 LCD控制器介绍 199& [6 q/ m1 w* y3 Q, U
13.2 TFT LCD显示实例 210
+ ~$ s; A; D7 x- Q: F# z( Y, ~( g+ u13.2.1 程序设计 2109 @7 S1 \- G2 [+ x4 D1 B
13.2.2 代码详解 210
1 h& g2 h3 S1 z$ w( ?13.2.3 实例测试 2211 k! ^5 N. f0 r
: v* x+ r$ b/ M' M- E9 k" y& X第 14章 ADC和触摸屏接口 222" R. \* T6 R* x x( w9 c
14.1 ADC和触摸屏硬件介绍及使用 222& |1 H `! r" L W! N
14.1.1 S3C2410 S3C2440 ADC和触摸屏接口概述 222
. l' C1 [" q% R! w, i e, y14.1.2 S3C3410 S3C2440 ADC接口的使用方法 2245 r" o @+ U/ t& l- h
14.1.3 触摸屏原理及接口 2264 t. v0 _4 E9 d1 o& R3 o( R
14.2 ADC和触摸屏操作实例 230
2 @. x% B8 I2 ~9 ~! \# O14.2.1 硬件设计 230# F3 ^ ]' E, a5 h3 G' ~
14.2.2 程序设计 230( d- R' ]& X3 t9 C: a2 `4 m% N* J
14.2.3 测试ADC的代码详解 230
, _! T2 W( g2 E# n1 b' V7 G; G' O14.2.4 测试触摸屏的代码详解 232% m' K' g# k1 w3 [
14.2.5 实例测试 237
! u/ L6 I* @, ?9 v) ~: o4 b
/ K, b4 @: O# P- D9 o! p/ C第3篇 嵌入式Linux系统移植篇" u9 U* G- R2 l2 q$ S! l1 D
1 B5 N8 W1 O( n" P' c4 {3 x$ u
第 15章 移植U-Boot 240
/ D0 N4 o* Q5 m# ^4 t2 o2 _5 d15.1 Bootloader简介 240/ o/ _! g; \. @ Q! F9 P' y6 |( ^
15.1.1 Bootloader的概念 240
; }6 H7 [, S9 v; O: n& i8 D( T- W! i. z15.1.2 Bootloader的结构和启动过程 241
}" G) h m( [% f( [15.1.3 常用Bootloader介绍 246
( W1 t- k' `- @5 \15.2 U-Boot分析与移植 246! G- T! U& |" w; U+ O
15.2.1 U-Boot工程简介 246
$ k2 F4 t$ p6 b7 V/ q; [. m$ W15.2.2 U-Boot源码结构 247
' _$ r) ~4 D% W( S* @" c( `& M9 O% W+ T15.2.3 U-Boot的配置、编译、连接过程 249
3 V" M: U7 y5 j15.2.4 U-Boot的启动过程源码分析 2576 S% @, `! b% P' o4 l; Q% Y
15.2.5 U-Boot的移植 264' o( z0 L$ s2 ^% `9 e/ l8 R2 u( i7 f& T
15.2.6 U-Boot的常用命令 288
% c }4 G" Y: B15.2.7 使用U-Boot来执行程序 292 ~: `3 n: X8 C& n* ]3 R- v8 ?
% _& e+ m' g' D4 l4 C) ~* A第 16章 移植Linux内核 293
; D. _3 |( W1 Y. l1 O) a16.1 Linux版本及特点 293: _) N: v" Z3 Z R. K! p! v. S
16.2 Linux移植准备 2949 i$ R) M1 \1 O) F, T: S
16.2.1 获取内核源码 294
9 L) s* D) b1 w1 o0 g( L16.2.2 内核源码结构及Makefile分析 295) I: u( g" _5 F0 J( W7 F
16.2.3 内核的Kconfig分析 3041 ?1 A3 D- T4 Q: A4 L
16.2.4 Linux内核配置选项 3094 _) a3 ` O, n! N0 a. T9 \! Y- }
16.3 Linux内核移植 313* a- Q, @: c0 {3 P7 q- X& v5 o- M! n" y
16.3.1 Linux内核启动过程概述 313$ Q4 E0 I$ K, i' {- B1 g
16.3.2 修改内核以支持S3C2410 S3C2440开发板 3145 r O* t9 `$ Z* l
16.3.3 修改MTD分区 327/ z; x: i# `& r
16.3.4 移植YAFFS文件系统 330
2 n/ a: J9 h6 {% l* R4 K16.3.5 编译、烧写、启动内核 3331 w4 e" M* V: K2 S
" [) h; u2 @8 K$ A9 F! Q5 y8 W第 17章 构建Linux根文件系统 3355 W. @) N# D( f3 M4 H/ v# A
17.1 Linux文件系统概述 335: Q9 D L+ ?# E1 W9 G
17.1.1 Linux文件系统的特点 3351 X2 p+ w" o$ [$ l5 U- H
17.1.2 Linux根文件系统目录结构 3366 T1 J% t! E/ M4 N8 u: |! p# H8 V
17.1.3 Linux文件属性介绍 3404 h W+ w& r) q, D. u" y8 l) Y
17.2 移植Busybox 341. J! Y: C( |# e: o' T
17.2.1 Busybox概述 341& a7 ?6 \4 b! s8 e( B
17.2.2 init进程介绍及用户程序启动过程 342
4 r/ e/ y! j5 t& i d( T17.2.3 编译 安装Busybox 346
/ d" D3 E9 X y S- y, j. m17.3 使用glibc库 350
% [" Z H/ C# f# u% D1 E17.3.1 glibc库的组成 350
* ~2 X3 _! V( W& i17.3.2 安装glibc库 351
" U" _3 U3 b& G: [& e+ C17.4 构建根文件系统 352
7 J" R% `9 U5 O- H17.4.1 构建etc目录 352
$ d- d0 m4 }! v" {* u w) o17.4.2 构建dev目录 354
" G9 M% m0 ]4 n; O) e! t17.4.3 构建其他目录 3568 ]$ b4 T) N i9 ^! o a/ D# H
17.4.4 制作 使用yaffs文件系统映象文件 356
! j2 `3 ^0 h1 D$ ~' [* t6 E! L17.4.5 制作 使用jffs2文件系统映象文件 360$ B, q0 z# I4 h8 z* C. L
5 P2 _7 K: t0 Y5 j0 _第 18章 Linux内核调试技术 3628 x+ P: F. w5 c& D3 f& Q
18.1 内核打印函数printk 3620 I& t4 C$ Y3 K# C; m0 j9 k% o
18.1.1 printk的使用 362
* j( g# K- i0 y18.1.2 串口控制台 3649 @$ Z ^8 G0 E3 |- a! n- `8 h' P1 P
18.2 内核源码级别的调试方法 366* z2 U4 t% f$ P6 j# b( ?
18.2.1 内核调试工具KGDB的作用与原理 366
* H# o$ q* C5 T3 F18.2.2 给内核添加KGDB功能支持S3C2410 S3C2440 367
3 x3 x4 y0 y5 K! I7 I18.2.3 结合可视化图形前端DDD和gdb来调试内核 372
& Y* w- k( C8 ]0 o2 U18.3 Oops信息及栈回溯 375
+ {; q. o' `+ C, S T7 d18.3.1 Oops信息来源及格式 375$ A5 {' N# {- p5 z5 f& G9 E% n
18.3.2 配置内核使Oops信息的栈回溯信息更直观 376( v: U5 M) P7 K' o# b( O; R
18.3.3 使用Oops信息调试内核的实例 3761 j5 ]6 }1 K5 F" K5 B. ?. g
18.3.4 使用Oops的栈信息手工进行栈回溯 380
! y2 x# X5 b, A" z+ r+ L! s
Y4 m' q" R5 z( ]9 u第4篇 嵌入式Linux设备驱动开发篇6 v, O( ~# p3 M s3 a# ^
$ Q, f" R1 T0 a+ E0 K* G$ c
第 19章 字符设备驱动程序 384
. P/ Q3 c9 V% ~4 U5 ]& \19.1 Linux驱动程序开发概述 384( M. N- b+ }+ s3 o. |% Y: y
19.1.1 应用程序、库、内核、驱动程序的关系 384
$ v+ k. M- v6 }# u19.1.2 Linux驱动程序的分类和开发步骤 385/ A" W R. p) m: N/ d. ^; Y! C
19.1.3 驱动程序的加载和卸载 387
, T0 \% |7 |# h0 u' @19.2 字符设备驱动程序开发 387% r' Q" X% V( r
19.2.1 字符设备驱动程序中重要的数据结构和函数 387
E% Q. N; o* r( ], x19.2.2 LED驱动程序源码分析 389
- c- N2 R: J% i: K( a4 @# D
3 ~. i5 [3 g5 o: l第 20章 Linux异常处理体系结构 396
/ V" F0 s/ r. o: z; O7 d& _9 _# ?6 x20.1 Linux异常处理体系结构概述 396
/ F6 M' z. H( U7 t# P! \0 n4 \& ?; X5 Y20.1.1 Linux异常处理的层次结构 396
, u& b$ B4 V4 S2 F: d20.1.2 常见的异常 4002 O, B7 F+ K: t9 Q
20.2 Linux中断处理体系结构 401
3 l6 [) a# |6 @4 \. A20.2.1 中断处理体系结构的初始化 401
- ?# y' A9 g9 g& f5 c20.2.2 用户注册中断处理函数的过程 404
- L/ u2 m4 [9 T* K% G20.2.3 中断的处理过程 406
9 _( [0 x: q, w$ @4 O20.2.4 卸载中断处理函数 409
+ F4 b! ]& @) A& T N/ U a p20.3 使用中断的驱动程序示例 410
5 X* B2 ?% y. X+ @2 K20.3.1 按键驱动程序源码分析 4103 q2 N; q, N6 W0 @9 y1 A3 p
20.3.2 测试程序情景分析 415 a8 E- U) N, H& @8 q2 ?2 Q# d7 m" k
8 q# I# X7 H( K1 A7 D第 21章 扩展串口驱动程序移植 419
( ^ `9 B0 C) I. V$ S6 e8 W2 J21.1 串口驱动程序框架概述 419
3 @0 S$ N5 @ J* `' l" f4 J21.1.1 串口驱动程序术语介绍 419% j' {, w& i/ d! q
21.1.2 串口驱动程序的4层结构 420
3 S. ?+ v0 N1 O0 K2 z+ s21.2 扩展串口驱动程序移植 423
' F# {6 N& W9 T- \21.2.1 串口驱动程序低层代码分析 4231 U" F2 N- N% Y% X/ i9 a
21.2.2 修改代码以支持扩展串口 425
$ K/ O. U5 X+ X' j1 a* X# s2 |21.2.3 测试扩展串口 429& B" G' S) [9 J9 N
# J9 @3 x+ n+ g+ c! L E
第 22章 网卡驱动程序移植 431( I, w/ ^, ^" ?; p8 N
22.1 CS8900A网卡驱动程序移植 431) e0 g* Q: w3 o6 Y! M' b- L8 I) c
22.1.1 CS8900A网卡特性 431; J9 b% m2 A' K9 h" n" }( e1 W
22.1.2 CS8900A网卡驱动程序修改 432
) Y% q$ g; |6 p4 h8 z, \9 z22.2 DM9000网卡驱动程序移植 441
" n4 e3 q4 |' k% C$ p+ Z8 z6 l22.2.1 DM9000网卡特性 4416 l% X5 u6 m% L, e5 R; W; M
22.2.2 DM9000网卡驱动程序修改 442
8 F, m+ Q+ |# W5 _9 F/ [" Y% Q+ [/ X; `8 A
第 23章 IDE接口和SD卡驱动程序移植 450 i$ X1 e8 b. V" j8 b6 H
23.1 IDE接口驱动程序移植 450
0 y( U# Y6 ~6 {5 i2 L23.1.1 IDE接口相关概念介绍 450 E' E; q+ Y- a H& d9 l
23.1.2 IDE接口驱动程序移植 4523 h+ E7 y# `3 o/ N* S' K
23.1.3 IDE接口驱动程序测试 461& L6 e, ~+ z$ h3 ?5 O
23.2 SD卡驱动程序移植 464
9 ^+ G) d4 w0 W1 T: I2 ~8 d; Z23.2.1 SD卡相关概念介绍 464
4 Q' I+ V. a* ]" x- Y2 b' Q) ~. v23.2.2 SD卡驱动程序移植 465/ b$ p4 v' n+ ?! g" y% b, \2 c
23.2.3 SD卡驱动程序测试 472$ b7 w" K! S* o0 |! w/ C3 \
23.2.4 磁盘分区表 473
9 C# S) _& n: C, w% U& J2 r. U N) W. t
第 24章 LCD和USB驱动程序移植 4754 |/ V& D3 l* h
24.1 LCD驱动程序移植 4758 X- a8 T6 v1 p' ^
24.1.1 LCD和USB键盘驱动程序框架 475
# r3 g9 ^$ h2 G; R24.1.2 S3C2410 S3C2440 LCD控制器驱动程序移植 4794 u" |# C9 [' d7 d# ], a
24.2 USB驱动程序移植 489* V. N7 T! |! ~0 ^ C
24.2.1 USB驱动程序概述 489$ j4 O' P: ?! |. k/ l$ E$ T
24.2.2 配置内核支持USB键盘、USB鼠标和USB硬盘 491
6 ?7 g; d; k- |+ T24.2.3 USB设备的使用 4927 s1 u d+ |# k
! x4 C p9 [ d第5篇 嵌入式Linux系统应用开发篇
n1 W l( e) |* ~% R- f0 N- e j) V+ H9 _- ]& d9 Z
第 25章 嵌入式GUI开发 496) c7 j I! }, Y. n) a! E5 A/ _
25.1 嵌入式GUI介绍 496- ]' U+ ]6 c7 c' T* y' q- i* y
25.1.1 Linux桌面GUI系统的发展 496
4 c0 K- ~0 ?! P/ o) {4 o25.1.2 嵌入式Linux中的几种GUI 4991 c# V7 H5 U" F* E0 w' S* G& [! c
25.2 Qtopia移植 5014 h2 R7 o: t' u$ c P0 h/ o- U# \3 }: _
25.2.1 主机开发环境的搭建 501
6 p5 S% i# O' N25.2.2 交叉编译、安装Qtopia 2.2.0 502
" b4 h# V" I6 I0 w4 T! j0 r25.2.3 开发自己的Qt GUI程序 514
5 y; u l& j# Y: i25.2.4 在主机上使用模拟软件开发、调试嵌入式Qt GUI程序 518) V1 e6 q& ]' e% k) s7 G
+ m V: ]4 L3 O+ y第 26章 基于X的GUI开发 524' r6 s. i, G! K% a8 N
26.1 X Window概述 524
! d+ Q+ N" Y# C& L) d' Q% p26.1.1 X协议介绍 524
8 t" v. J- m3 D* }" M5 |26.1.2 窗口管理器(Window manager) 5269 A( E) a a0 S, K
26.1.3 桌面环境(Desktop environment) 526
8 m, r# ^) z/ b# c' N; r$ M$ G6 u- p26.2 交叉编译工具包Scratchbox 5260 t. a, t% E. i \ Z
26.2.1 Scratchbox介绍 527$ K2 y3 E1 ~+ x8 r
26.2.2 安装Scratchbox及编译工具 528$ |4 {5 V) r, i
26.2.3 在Scratchbox里安装交叉编译工具链 529
7 G0 A# |0 @ I! A9 | a8 b26.2.4 安装其他开发工具 535
6 c" e) m7 \3 A2 |! P# n26.3 移植X 536
! _9 S0 Y; K4 q3 N( Z26.3.1 编译软件的基本知识 536
# P) S" ]; Y, b0 d* B; H26.3.2 编译X的依赖软件 539
6 g* g B& ?# i. b- Z) u' {6 {6 C26.3.3 编译Xorg 542
$ w+ G4 H+ M& J# D26.4 移植Matchbox 547( R; @, y/ k+ H' ?7 |
26.4.1 下载源代码 548( H) s! o, ]4 C3 ~5 H, o
26.4.2 编译Matchbox 5483 t6 i6 \3 N B/ e
26.4.3 运行、试验Matchbox 550
0 }" X9 F6 j) i26.5 移植GTK 553' v; [. i. f8 t: a$ m' e4 o
26.5.1 GTK 介绍 553
/ l2 o9 [: Z$ o; E26.5.2 GTK 移植 5539 n8 V, G' D, c U, t- Z9 p {
26.6 移植基于GTK X的GUI程序 555
# j8 x8 R% Q) _7 S2 z/ K D: J$ j* `26.6.1 xterm移植 556
$ K+ m% Z2 s$ ~3 `% u' N26.6.2 gtkboard移植 557- j8 O4 {/ x' w) ~: X; Y1 x6 @2 i
26.6.3 裁剪文件系统 5604 [$ E5 ^. v( a3 g
java8.com) p# X$ L, _' @9 W- J
第 27章 Linux应用程序调试技术 564
9 D( Z6 H: K$ e" q8 m) Z2 }27.1 使用strace工具跟踪系统调用和信号 564 ~7 [3 Z4 \! O( m+ `& R
27.1.1 strace介绍及移植 564
* W8 u7 M! ^3 ~" ?' F27.1.2 使用strace来调试程序 565
4 Z3 g+ s) R M& }27.2 内存调试工具 568+ a9 Q& }$ \; Y( R+ \: o0 v+ ?
27.2.1 使用memwatch进行内存调试 568. [% B1 z( [1 f4 i$ F
27.2.2 其他内存工具介绍:mtrace、dmalloc、yamd 571
; E8 _! p2 z. F/ K27.3 段错误的调试方法 573
# Z3 ~' N* O! I" q27.3.1 使用库函数backtrace和backtrace_symbols定位段错误 5738 d+ Y$ f6 g4 R% Z6 _2 l. O
27.3.2 段错误调试实例 574
P) P: Y4 u; k" }6 t1 F: F, K, h0 @" K8 N6 k
百度云盘下载地址(完全免费-绝无套路):
: M& Z4 b' o; A$ i$ T+ C+ a) P, M- X5 L# |
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|