当前位置:首页 > 工业技术
嵌入式Linux C语言开发入门与编程实践
嵌入式Linux C语言开发入门与编程实践

嵌入式Linux C语言开发入门与编程实践PDF电子书下载

工业技术

  • 电子书积分:18 积分如何计算积分?
  • 作 者:商斌编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:712106331X
  • 页数:614 页
图书介绍:本书从嵌入式系统基础概念讲起,共分三篇、10章。第一篇扼要地介绍嵌入式Linux系统开发的基础只是,并回顾ANSI C语言的语法知识。第二篇介绍嵌入式Linux C语言开发中的重要技术,包括常用数据类型与修饰符、预处理器与重要函数、常用数据结构以及嵌入汇编语言与移植性问题等应用性内容,结合项目实例展开讨论。第三篇则分别给出在嵌入式GUI应用开发、驱动开发、网络应用开发等三方面的实际案例,详细讲解了嵌入式Linux C语言开发技术的综合运用。本书具有由浅入深、通俗易懂和注重实践等特点,适合于没有或者缺乏嵌入式Linux程序设计经验的初学者作为嵌入式Linux C语言开发的自学教材,同时也适合于已掌握C基础编程技术、需要提高嵌入式C编程实践能力以及对嵌入式Linux编程感兴趣的程序员进行阅读。
《嵌入式Linux C语言开发入门与编程实践》目录

第1篇 嵌入式Linux开发介绍第1章 嵌入式系统基础 3

1.1 嵌入式系统概述 4

1.1.1 身边的嵌入式系统 4

1.1.2 什么是嵌入式系统 6

1.1.3 嵌入式系统发展趋势 9

1.2 嵌入式操作系统 11

1.2.1 概述 11

1.2.2 嵌入式Linux系统 11

1.2.3 其他嵌入式操作系统介绍 15

1.3 ARM处理器平台介绍 17

1.3.1 嵌入式处理器特点与分类 17

1.3.2 ARM处理器介绍 19

1.3.3 ARM体系结构 20

1.4 搭建嵌入式Linux系统开发环境 24

1.4.1 嵌入式Linux系统的组成及设计步骤 24

1.4.2 嵌入式Linux开发工具链 25

1.4.3 系统引导程序的移植 26

1.4.4 VIVI移植实现 31

1.5 本章小结 33

第2章 嵌入式Linux C语言开发介绍 35

2.1 嵌入式Linux与C语言 36

2.2 基本编辑器vi的使用 36

2.2.1 进入和退出vi 36

2.2.2 vi的基本编辑命令 37

2.2.3 vi的高级编辑命令 40

2.3 高级编辑器Emacs的使用 43

2.3.1 Emacs的启动与退出 43

2.3.2 Emacs的基本操作 45

2.3.3 Emacs的高级命令 46

2.4 编译器GCC的使用 50

2.4.1 GCC简介 50

2.4.2 GCC的编译过程 50

2.4.3 GCC的常用模式 51

2.4.4 GCC的常用选项 52

2.4.5 GCC的警告功能 53

2.5 调试器GDB的使用 55

2.5.1 GDB的调试过程 55

2.5.2 GDB的基本命令 58

2.5.3 GDB的高级命令 60

2.6 Make工程管理器 64

2.6.1 Make管理器简介 64

2.6.2 Makefile的描述规则 65

2.6.3 一个简单示例 66

2.6.4 make如何工作 67

2.6.5 指定变量 69

2.6.6 自动推导规则 70

2.6.7 另类风格的Makefile 71

2.6.8 清除工作目录过程文件 71

2.7 本章小结 72

第3章 C语言基础回顾 73

3.1 C语言的“基础字符”与“词汇” 74

3.2 数据类型 75

3.2.1 常量和变量 77

3.2.2 整型数据 78

3.2.3 浮点型数据 81

3.2.4 字符型数据 83

3.2.5 变量初始化 86

3.2.6 各类数值型数据间的混合运算 87

3.3 运算符与表达式 88

3.3.1 算术运算符和算术表达式 89

3.3.2 赋值运算符和赋值表达式 93

3.3.3 逗号运算符和逗号表达式 97

3.4 程序流程控制 98

3.4.1 选择语句 100

3.4.2 循环语句 107

3.5 字符输入/输出 117

3.5.1 单字符输入/输出 118

3.5.2 格式输入与输出 119

3.6 函数 126

3.6.1 函数的定义与声明 128

3.6.2 函数的参数、值和基本调用 128

3.6.3 函数的嵌套与递归调用 134

3.6.4 数组函数 137

3.6.5 局部变量 141

3.6.6 全局变量和外部变量 142

3.6.7 变量的存储类别 143

3.6.8 内部函数和外部函数 148

3.7 本章小结 150

第2篇 嵌入式Linux C语言开发入门第4章 嵌入式Linux C语言常用数据类型与修饰符 157

4.1 指针 158

4.1.1 指针的概念 158

4.1.2 指向指针的指针 161

4.1.3 指针数组 162

4.1.4 函数指针 164

4.1.5 链表 165

4.1.6 嵌入式Linux中指针使用实例 165

4.2 数组 167

4.2.1 一维数组 168

4.2.2 多维数组 170

4.2.3 字符数组 173

4.2.4 嵌入式Linux中数组使用实例 176

4.3 结构体与共用体 177

4.3.1 结构体的声明与定义 178

4.3.2 结构体的引用与初始化 181

4.3.3 结构体数组 182

4.3.4 结构体指针 184

4.3.5 共用体 188

4.3.6 typedef的使用 193

4.3.7 嵌入式Linux中结构体与共用体使用实例 195

4.4 数据类型修饰符 198

4.4.1 const和volatile 199

4.4.2 signed和unsigned 199

4.4.3 short和long 200

4.4.4 near和far 200

4.4.5 嵌入式Linux数据类型修饰符使用实例 200

4.5 存储类修饰符 201

4.6 本章小结 205

第5章 嵌入式Linux C语言预处理器与重要函数 207

5.1 头文件的概念和配置 208

5.2 预处理器 210

5.2.1 预处理的概念 211

5.2.2 预定义宏 211

5.2.3 文件包含 214

5.2.4 条件编译 215

5.2.5 行号控制 217

5.3 字符串函数 218

5.3.1 char数据类型 218

5.3.2 字符串输入 221

5.3.3 字符串输出 222

5.3.4 字符串函数 224

5.3.5 嵌入式Linux中字符串编程实例 235

5.4 文件输入/输出函数 238

5.4.1 嵌入式Linux C文件概述 238

5.4.2 基本I/O函数 240

5.4.3 文件打包和压缩 246

5.4.4 其他I/O函数 250

5.4.5 嵌入式Linux中文件输入/输出编程实例 252

5.5 内存操作函数 254

5.5.1 类型转换 254

5.5.2 分配和释放内存 261

5.5.3 内存块操作 264

5.5.4 位操作 267

5.5.5 内存关键字 270

5.5.6 嵌入式Linux中内存操作编程实例 273

5.6 Linux内核函数 276

5.6.1 Linux内核介绍 276

5.6.2 进程管理函数 277

5.6.3 文件操作函数 285

5.6.4 时间函数 297

5.6.5 信号处理函数 298

5.6.6 消息管理函数 306

5.6.7 线程操作函数 310

5.6.8 网络编程函数 318

5.6.9 嵌入式Linux内核的移植和修改 326

5.6.10 嵌入式Linux中内核编程实例 329

第6章 嵌入式LinuxC语言常用数据结构 333

6.1 链表 334

6.1.1 链表概述 334

6.1.2 单向链表 335

6.1.3 循环链表 340

6.1.4 双向链表 342

6.1.5 链表与数组 344

6.1.6 链表与栈 345

6.1.7 嵌入式Linux中链表使用实例 351

6.2 树 352

6.2.1 树概述 352

6.2.2 二叉树 353

6.2.3 平衡二叉树 358

6.2.4 嵌入式Linux中树的使用实例 359

6.3 哈希表 360

6.3.1 哈希表概述 360

6.3.2 哈希表构造 360

6.3.3 哈希表处理冲突的方法 362

6.3.4 嵌入式Linux中哈希表使用实例 363

6.4 本章小结 364

第7章 嵌入式Linux C语言嵌入汇编语言与移植性问题 365

7.1 嵌入汇编语言 366

7.1.1 内嵌汇编的语法 366

7.1.2 GCC对内嵌汇编语言的处理方法 370

7.1.3 嵌入式Linux中嵌入汇编实例 371

7.2 移植性问题 374

7.2.1 字长和数据类型 374

7.2.2 数据对齐 376

7.2.3 字节顺序 378

7.2.4 嵌入式Linux中代码移植实例 378

7.3 本章小结 379

第3篇 嵌入式Linux C语言编程实践第8章 工控触摸屏人机界面系统的开发 383

8.1 嵌入式数控系统人机界面介绍 384

8.1.1 嵌入式数控系统及其人机界面概述 384

8.1.2 工控触摸屏人机界面系统的现状 385

8.2 嵌入式数控系统硬件结构 386

8.2.1 CEB270开发板介绍 386

8.2.2 嵌入式数控系统硬件总体结构 387

8.2.3 Intel Xscale PXA 270处理器 388

8.2.4 Flash 390

8.2.5 SDRAM 390

8.3 人机界面程序开发模式 391

8.3.1 嵌入式数控系统软件结构 391

8.3.2 数控系统人机界面特点 391

8.3.3 嵌入式数控系统的软件开发模式 392

8.3.4 宿主机与目标机 392

8.3.5 交叉编译 393

8.3.6 远程调试 393

8.3.7 数控系统人机界面开发环境 394

8.4 嵌入式Linux系统移植基础 395

8.4.1 Bootloader的作用 395

8.4.2 Bootloader移植 397

8.4.3 U-BOOT的移植 400

8.4.4 内核启动部分的移植 401

8.5 设备驱动移植基础 406

8.5.1 设备驱动程序接口 408

8.5.2 设备驱动程序模块 409

8.5.3 设备驱动程序结构 410

8.6 文件系统移植基础 411

8.6.1 JFFS2文件系统 411

8.6.2 嵌入式根文件系统 413

8.7 移植U-BOOT到人机界面开发板上 416

8.7.1 选择U-BOOT的原因 416

8.7.2 U-BOOT主要目录结构 417

8.7.3 U-BOOT支持的主要功能 417

8.7.4 U-BOOT移植过程 418

8.7.5 将U-BOOT移植到开发板的具体过程 419

8.8 人机界面开发板的Linux内核移植 421

8.8.1 准备Linux内核源代码 421

8.8.2 修改Linux内核源代码 421

8.8.3 内核调试 423

8.8.4 总结 423

8.9 本章小结 424

第9章 基于PCI总线的无线网卡驱动开发 425

9.1 Linux设备驱动程序概述 426

9.1.1 Linux设备驱动程序与内核的关系 426

9.1.2 Linux内核的组成 426

9.1.3 Linux硬件驱动架构 427

9.1.4 设备驱动程序与内核的接口 428

9.1.5 内核为驱动程序提供的支持 429

9.2 Linux设备驱动程序开发基础 431

9.2.1 内存管理问题 431

9.2.2 中断处理 433

9.2.3 I/O端口 438

9.2.4 DMA处理 439

9.2.5 时间流 440

9.3 Linux下的设备与模块分类 443

9.4 Linux字符设备驱动开发介绍 444

9.4.1 主设备号和次设备号 444

9.4.2 字符设备驱动程序的组成 445

9.4.3 文件操作 446

9.5 块设备的驱动程序 448

9.6 网络设备接口驱动程序 449

9.6.1 网络设备概述 449

9.6.2 网络设备与字符设备、块设备的不同点 450

9.6.3 网络设备的运行机制 450

9.6.4 数据包的发送与接收 451

9.6.5 网络设备驱动的实现模式 452

9.7 Ralink无线网卡介绍 453

9.7.1 Ralink无线网卡结构 453

9.7.2 无线通信协议的选用 454

9.8 Ralink无线网卡驱动开发 455

9.8.1 Ralink无线网卡驱动程序的开发概述 455

9.8.2 关键数据结构的开发 455

9.8.3 802.11帧结构的设置 460

9.8.4 设备初始化模块驱动程序开发 463

9.8.5 设备打开模块驱动程序的开发 465

9.8.6 数据发送模块驱动程序的开发 471

9.8.7 中断处理模块驱动程序的开发 478

9.8.8 设备关闭模块驱动程序的开发 481

9.8.9 设备卸载模块驱动程序的开发 482

9.8.10 驱动程序IOCTL函数 484

9.8.11 驱动程序的调试 493

9.9 本章小结 494

第10章 基于Linux的嵌入式微浏览器的设计与开发 495

10.1 嵌入式微浏览器概述 496

10.1.1 嵌入式微浏览器的定义 496

10.1.2 嵌入式微浏览器的发展历程 496

10.1.3 浏览器的应用 497

10.1.4 嵌入式微浏览器的应用 498

10.1.5 嵌入式微浏览器的设计要求 499

10.1.6 嵌入式微浏览器与桌面浏览器的区别 500

10.1.7 嵌入式微浏览器的特点 501

10.1.8 当前主流嵌入式微浏览器分析 502

10.1.9 3G的概念与业务分类 505

10.1.10 嵌入式微浏览器与3G的结合 507

10.1.11 嵌入式微浏览器与WAP技术的结合 508

10.1.12 嵌入式微浏览器与Java技术的结合 509

10.2 嵌入式微浏览器的相关协议介绍 510

10.2.1 HTTP概述 510

10.2.2 HTTP报文 510

10.2.3 HTTP请求 513

10.2.4 HTTP响应 515

10.2.5 HTTP实体 516

10.2.6 TCP/IP 516

10.2.7 Socket套接字 518

10.2.8 GPRS 519

10.2.9 PPP 524

10.2.10 WAP规范 529

10.3 嵌入式微浏览器相关规范与标准介绍 532

10.3.1 HTML规范 532

10.3.2 HTML的语法树 534

10.3.3 CSS 2.0介绍 534

10.3.4 XHTML 535

10.3.5 XML 536

10.3.6 无线标记语言WML 537

10.3.7 DOM技术标准 549

10.3.8 DOM的发展历程 550

10.3.9 XPCOM组件对象模型 552

10.3.10 XPCOM组件 554

10.3.11 XPCOM组件内部机制 556

10.4 嵌入式微浏览器相关技术难点剖析 559

10.4.1 网页标记的取舍 559

10.4.2 HTML标记的容错处理 560

10.4.3 系统内存优化 563

10.4.4 页面的布局合理性问题 565

10.4.5 可移植性问题 565

10.4.6 DOM的基本接口 566

10.4.7 DOM接口对XHTML的操作 570

10.4.8 图形用户界面 572

10.5 基于Linux的嵌入式微浏览器的总体设计 575

10.5.1 体系结构设计 575

10.5.2 总体模块结构 576

10.5.3 主要数据结构 577

10.5.4 嵌入式微浏览器的数据流程 578

10.6 关键模块的设计与开发 578

10.6.1 系统设计概述 579

10.6.2 HTTP设计和实现 581

10.6.3 HTML解析模块 587

10.6.4 DOM模块 595

10.6.5 Content模块 602

10.6.6 Layout排版模块 602

10.6.7 显示引擎的设计 602

10.6.8 GFX模块 603

10.6.9 Widget模块 608

10.6.10 View模块 611

10.6.11 Embeding API 612

10.7 嵌入式微浏览器在模拟环境下的运行情况 613

10.8 本章小结 614

返回顶部