你的位置:学习网 - 视频教程 >> 电脑 >> 操作系统 >> Unix/linux >> 详细内容

《嵌入式Linux系统实用开发》高清文字版[PDF]




收藏本资料

本资料所属分类:

电脑 操作系统 Unix/linux

更新时间:2013年11月18日

如不能下载,请查看怎样下载


[嵌入式Linux系统实用开发].何永琪.高清文字版.pdf 163MB
163MB
电子书http://www.minxue.net: 嵌入式Linux系统实用开发
作者:  何永琪
图书分类: 软件
资源格式: PDF
版本: 高清文字版
出版社: 电子工业出版社
书号: 9787121100390
发行时间: 2010年3月1日
地区:  大陆
语言:  简体中文
简介

本书是高清文字版.非扫描.拒绝模糊.享受清晰!

电子书www.minxue.net地址!

IPB Image



目录

"封面页1
版权页4
序6
前言页10
目录页16
第1部分 嵌入式开发基础29
第1章 引言30
1.1 嵌入式产业概况30
1.2 Linux操作系统33
1.3 ARM体系概况36
1.3.1 ARM738
1.3.2 ARM939
1.3.3 ARM9E39
1.3.4 ARM10E40
1.3.5 ARM1140
1.3.6 Cortex41
1.4 常见嵌入式产品及其基本平台简介41
1.4.1 学习开发板41
1.4.2 行业终端44
1.4.3 工业控制46
1.4.4 手持娱乐47
1.4.5 医疗仪器49
1.4.6 汽车电子50
1.4.7 智能本51
1.5 嵌入式产品开发基本流程53
第2章 C语言编程要点56
2.1 数据类型56
2.2 常数57
2.3 变量59
2.3.1 变量的定义与初始化59
2.3.2 变量的访问59
2.3.3 左值与右值59
2.3.4 只读变量60
2.4 操作符60
2.4.1 只读操作符60
2.4.2 读写操作符63
2.4.3 类型转换操作符64
2.4.4 sizeof操作符64
2.5 表达式和语句64
2.5.1 表达式64
2.5.2 语句65
2.6 复合类型66
2.6.1 数组66
2.6.2 结构体69
2.6.3 位域70
2.6.4 数据的对齐71
2.6.5 联合体72
2.6.6 类型嵌套73
2.6.7 类型别名74
2.6.8 枚举类型75
2.7 流程控制75
2.7.1 顺序结构75
2.7.2 分支结构76
2.7.3 隐含的分支结构78
2.7.4 循环结构79
2.7.5 goto81
2.8 函数82
2.8.1 声明与定义82
2.8.2 函数的调用与传值方式84
2.8.3 函数与复合类型85
2.8.4 内联函数86
2.8.5 变量的作用范围与生存期86
2.9 指针89
2.9.1 指针与变量89
2.9.2 指针与操作符92
2.9.3 指针与数组93
2.9.4 字符串94
2.9.5 指针与结构体96
2.9.6 指针与函数97
2.9.7 回调函数100
2.9.8 函数指针类型转换101
2.10 预处理语句102
2.10.1 文件包含102
2.10.2 宏定义102
2.10.3 宏与函数104
2.10.4 代码分支106
第3章 开发环境108
3.1 Linux使用基础108
3.1.1 命令参数与选项108
3.1.2 文件 目录和路径109
3.1.3 用户与权限109
3.1.4 硬链接与符号链接110
3.1.5 命令使用技巧111
3.2 Linux常用命令111
3.2.1 查阅手册111
3.2.2 文件相关112
3.2.3 文件内容相关116
3.2.4 压缩与解压缩117
3.2.5 文件系统与磁盘119
3.2.6 用户与权限120
3.2.7 进程管理122
3.2.8 系统信息124
3.2.9 网络124
3.3 Shell 使用进阶128
3.3.1 重定向128
3.3.2 管道129
3.3.3 变量与替换130
3.3.4 环境变量132
3.3.5 脚本133
3.3.6 脚本编程134
3.3.7 作业管理135
3.4 Debian 5.0 的安装与使用137
3.4.1 安装Debian 5.0137
3.4.2 Debian 5.0的基本操作137
3.4.3 常用软件的安装与使用140
3.4.4 从源码安装软件146
3.4.5 安装编译环境147
3.5 建立交叉编译环境149
3.5.1 下载安装150
3.5.2 从源码编译安装150
3.6 vi编辑器154
3.6.1 vi的工作模式154
3.6.2 普通模式155
3.6.3 命令行模式156
3.6.4 寄存器157
3.6.5 与编程有关的技巧157
3.7 gcc工具链157
3.7.1 编译过程157
3.7.2 gcc用法158
3.8 make与Makefile160
3.8.1 make工具的使用160
3.8.2 Makefile161
3.9 gdb调试工具163
3.9.1 调试本地程序163
3.9.2 远程调试165
3.10 buildroot开发工具165
第2部分 ARM架构与编程168
第4章 ARM处理器架构与编程模型169
4.1 嵌入式硬件系统170
4.1.1 嵌入式系统架构170
4.1.2 S3C2410A地址映射171
4.1.3 HY2410A开发板硬件配置172
4.2 ARM架构概述172
4.2.1 ARM处理器模式与寄存器组172
4.2.2 ARM异常与异常向量表175
4.2.3 程序状态寄存器176
4.2.4 大端与小端存储格式178
4.3 ARM指令集概述179
4.3.1 ARM汇编指令格式179
4.3.2 数据处理指令181
4.3.3 存储器访问指令183
4.3.4 分支指令186
4.3.5 软中断指令186
4.3.6 程序状态寄存器传送指令187
4.3.7 乘法指令188
4.3.8 协处理器指令189
4.3.9 伪指令190
4.4 GNU ARM汇编191
4.4.1 基本语法191
4.4.2 GNU ARM汇编伪指令192
4.5 汇编与C语言197
4.5.1 程序及其二进制映像197
4.5.2 程序的编译与运行198
4.5.3 ATPCS约定199
4.5.4 汇编与C语言的对照201
4.5.5 函数调用与栈206
4.5.6 堆的概念208
4.6 汇编与C语言混合编程209
4.6.1 C语言调用汇编函数209
4.6.2 汇编语言中使用C全局变量210
4.6.3 内嵌汇编211
第5章 搭建嵌入式固件开发平台214
5.1 硬件设备与软件环境214
5.2 搭建开发环境215
5.2.1 硬件连接215
5.2.2 使用终端软件216
5.2.3 下载和执行程序217
5.3 创建固件程序219
第6章 S3C2410接口与编程222
6.1 软中断异常编程222
6.1.1 软中断异常入口222
6.1.2 软中断异常应用例程223
6.2 中断控制器及外部中断编程226
6.2.1 中断体系结构226
6.2.2 中断控制器227
6.2.3 中断源安排227
6.2.4 中断控制器寄存器配置229
6.2.5 中断应用例程230
6.3 定时器及其编程234
6.3.1 定时器体系234
6.3.2 定时器单元工作原理235
6.3.3 定时器寄存器配置236
6.3.4 定时器应用例程238
6.4 GPIO接口243
6.5 UART控制器及串口通信应用244
6.5.1 UART通信原理244
6.5.2 RS
232C串行接口标准245
6.5.3 UART控制寄存器246
6.5.4 串口通信应用例程250
6.6 NAND Flash芯片与控制器253
6.6.1 NAND Flash的访问253
6.6.2 NAND Flash控制器255
6.6.3 NAND Flash控制器编程实例257
第7章 U
boot源码分析与移植260
7.1 bootloader的概念260
7.1.1 bootloader的启动过程261
7.1.2 bootloader的操作模式261
7.1.3 ARM bootloader的特点262
7.2 使用U
boot263
7.2.1 U
boot主要命令与环境变量263
7.2.2 使用实例264
7.3 U
boot源码分析265
7.3.1 总体架构与内存布局266
7.3.2 源码目录267
7.3.3 实现分析267
7.4 U
boot移植277
7.4.1 源码修改277
7.4.2 配置和编译290
第3部分 Linux系统编程292
第8章 Linux系统编程基础293
8.1 系统调用与API293
8.2 程序的生成与执行295
8.3 API 的错误处理296
8.4 命令行参数与环境变量296
第9章 Linux文件系统编程299
9.1 文件的概念299
9.2 文件描述符与索引节点300
9.3 文件操作的系统调用接口301
9.3.1 打开文件301
9.3.2 从文件读取数据303
9.3.3 写数据到文件305
9.3.4 发送控制命令307
9.3.5 关闭文件308
9.4 标准I/O函数库308
9.4.1 fopen309
9.4.2 fread和fwrite310
9.4.3 fclose310
9.4.4 fflush311
9.4.5 fseek和ftell311
9.4.6 fgetc, getc和getchar311
9.4.7 fputc, putc和putchar312
9.4.8 fgets和gets313
9.4.9 fputs和puts313
9.4.10 fprintf, printf和sprintf314
9.4.11 fscanf, scanf和sscanf316
9.4.12 标准I/O错误处理317
第10章 深入理解进程318
10.1 Linux中的进程318
10.1.1 创建进程319
10.1.2 执行程序320
10.1.3 进程的内存布局321
10.1.4 进程的状态迁移323
10.1.5 进程的终止323
10.2 进程与信号324
10.2.1 Linux中的信号处理机制325
10.2.2 发送信号326
10.2.3 捕捉信号328
10.2.4 屏蔽信号333
10.2.5 信号安全函数334
10.3 进程与文件335
10.3.1 内核文件管理336
10.3.2 进程中的文件336
10.3.3 文件的重定向339
10.3.4 文件控制340
10.4 进程间通信342
10.4.1 Linux中的IPC342
10.4.2 信号灯与进程同步343
10.4.3 管道346
10.4.4 命名管道348
10.4.5 共享内存351
10.4.6 消息队列355
第11章 socket编程360
11.1 网络协议层次模型360
11.2 socket编程接口361
11.2.1 打开socket361
11.2.2 socket地址363
11.2.3 网络字节序364
11.2.4 socket与地址的绑定365
11.2.5 侦听366
11.2.6 接受连接请求366
11.2.7 连接367
11.2.8 关闭和切断连接367
11.2.9 发送数据368
11.2.10 接收数据369
11.2.11 使用socket 选项369
11.2.12 阻塞与非阻塞操作371
11.2.13 可靠的发送与接收操作372
11.2.14 多路复用373
11.3 socket编程实例375
11.3.1 TCP与UDP 程序流程375
11.3.2 TCP通信例程375
11.3.3 多进程并发服务器应用378
11.3.4 多路复用服务器应用386
11.3.5 UDP服务器应用392
第12章 多线程并发程序设计398
12.1 线程的概念398
12.2 线程编程接口398
12.2.1 线程的创建与退出399
12.2.2 线程属性399
12.2.3 线程的分离状态401
12.2.4 线程应用实例401
12.3 线程的同步403
12.3.1 使用信号灯进行线程同步403
12.3.2 使用互斥体410
12.3.3 使用条件变量414
12.4 多线程并发程序设计418
12.4.1 多线程并发服务器应用418
12.4.2 消费者/生产者模型426
12.4.3 线程池应用427
第4部分 内核与驱动编程435
第13章 内核编程初步436
13.1 从用户态到内核态436
13.1.1 实模式与保护模式436
13.1.2 用户态与内核态436
13.1.3 内核编程的特点437
13.1.4 内核模块与驱动438
13.2 内核模块编程438
13.2.1 编写源码438
13.2.2 printk函数440
13.2.3 编译内核模块441
13.2.4 加载与卸载442
13.2.5 模块参数443
13.3 字符设备驱动445
13.3.1 设备文件与设备号445
13.3.2 字符设备编程接口446
13.3.3 文件操作450
13.3.4 访问用户态内存455
13.3.5 动态分配内存455
13.3.6 内存操作456
13.3.7 字符设备驱动例程462
第14章 内核编程接口469
14.1 双向环形链表469
14.1.1 定义与初始化469
14.1.2 链表操作470
14.1.3 链表的使用472
14.2 等待与延时474
14.2.1 调度与抢占474
14.2.2 进程运行状态476
14.2.3 定时477
14.2.4 等待队列478
14.2.5 阻塞与非阻塞操作480
14.2.6 延时481
14.2.7 等待队列例程483
14.3 定时器与延期工作490
14.3.1 定时器490
14.3.2 tasklet494
14.3.3 工作队列496
14.3.4 定时器例程501
14.4 自旋锁与同步507
14.4.1 并发与竞态507
14.4.2 自旋锁508
14.4.3 原子上下文512
14.4.4 读写锁513
14.4.5 原子类型516
14.4.6 比特位操作519
14.4.7 互斥体520
14.4.8 信号灯522
14.4.9 读写信号灯524
14.5 端口IO和内存映射IO525
14.5.1 端口IO527
14.5.2 内存映射 IO530
14.5.3 内存屏障534
14.6 中断536
14.6.1 申请和释放中断536
14.6.2 中断处理函数537
14.6.3 中断的禁止和使能538
14.6.4 线程化中断539
14.6.5 共享中断539
第15章 Linux2.6设备模型541
15.1 对象与集合541
15.1.1 引用计数541
15.1.2 内核对象542
15.1.3 内核对象的类型545
15.1.4 内核集合550
15.1.5 内核集合与对象例程554
15.2 设备管理559
15.2.1 设备560
15.2.2 错误码与指针562
15.2.3 驱动563
15.2.4 总线564
15.2.5 类别566
15.2.6 接口568
15.3 常见总线与类别569
15.3.1 platform总线569
15.3.2 misc类别573
第16章 Linux驱动实例详解575
16.1 输入设备驱动575
16.1.1 输入设备编程接口576
16.1.2 触摸屏驱动例程580
16.2 USB驱动590
16.2.1 USB概述590
16.2.2 USB驱动模型591
16.2.3 USB驱动编程接口592
16.2.4 USB接口与端点594
16.2.5 USB类别597
16.2.6 URB599
16.2.7 同步传输接口604
16.2.8 USB锚605
16.2.9 USB驱动范例分析607
第5部分 嵌入式Linux系统构建617
第17章 Linux内核构建618
17.1 内核编译过程618
17.2 内核配置系统架构620
17.2.1 内核Makefile621
17.2.2 KBuild配置系统624
17.3 增加代码到内核631
17.4 内核配置简介632
17.5 启动内核634
第18章 根文件系统构建635
18.1 init进程635
18.2 创建根文件系统637
18.2.1 创建目录637
18.2.2 创建设备文件638
18.2.3 安装共享库639
18.2.4 安装busybox640
18.2.5 创建配置文件642
18.3 挂载根文件系统643
18.3.1 使用网络文件系统643
18.3.2 使用Flash文件系统644
第6部分 应用编程647
第19章 C++语言编程要点648
19.1 布尔型数据648
19.2 引用648
19.3 类和对象650
19.3.1 类和对象的定义650
19.3.2 构造与析构650
19.3.3 类的实现651
19.3.4 访问对象652
19.3.5 this指针653
19.3.6 new和delete653
19.3.7 静态成员654
19.3.8 只读成员655
19.3.9 复制构造函数656
19.3.10 友元657
19.4 类的继承658
19.4.1 继承的语法658
19.4.2 继承方式658
19.4.3 多重继承659
19.5 函数和操作符重载660
19.5.1 函数重载660
19.5.2 操作符重载662
19.6 覆盖与虚函数666
19.6.1 覆盖666
19.6.2 虚函数和多态667
19.6.3 虚函数的实现668
19.6.4 纯虚函数与抽象类669
19.7 名字空间669
19.8 模板670
19.8.1 模板函数670
19.8.2 模板类672
19.9 异常处理672
19.10 C 与C++混合编程674
第20章 嵌入式GUI编程675
20.1 建立开发环境675
20.2 简单的Qt应用程序678
20.2.1 编写源代码678
20.2.2 编译679
20.2.3 工程文件679
20.2.4 运行681
20.2.5 移植到目标机681
20.3 窗口布局682
20.3.1 水平布局与垂直布局683
20.3.2 栅格布局685
20.4 Qt对象687
20.4.1 层次化管理688
20.4.2 信号与槽688
20.4.3 事件692
20.4.4 定时器695
20.5 使用 designer697
20.5.1 窗体设计697
20.5.2 代码编写699
20.5.3 运行结果704
20.6 Qt 常用类704
20.6.1 QChar704
20.6.2 QString705
20.6.3 QPoint712
20.6.4 QSize713
20.6.5 QRect714
20.6.6 QFont716
20.6.7 QPixmap717
20.6.8 QIcon718
20.6.9 QWidget720
20.6.10 QDialog729
20.6.11 QLabel731
20.6.12 QAbstractButton733
20.6.13 QPushButton735
20.6.14 QCheckBox735
20.6.15 QRadioButton736
20.6.16 QLineEdit737
20.7 Qt 综合应用739
20.7.1 软件设计739
20.7.2 源码实现742
20.7.3 运行结果748
20.7.4 Qt国际化编程748
第21章 嵌入式数据库编程752
21.1 基本SQL语句752
21.1.1 数据库与表752
21.1.2 创建和删除表753
21.1.3 插入、修改及删除记录753
21.1.4 条件表达式754
21.1.5 数据库查询755
21.2 建立SQLite3开发平台756
21.3 SQLite3编程接口757
21.3.1 打开和关闭数据库757
21.3.2 执行SQL语句758
21.3.3 查询数据库759
21.4 使用SQLite3工具760
21.5 SQLite3数据库应用实例761
21.5.1 使用sqlite3_exec查询数据库762
21.5.2 使用sqlite3_get_table查询数据库763
第22章 产品开发实例:无线信息终端765
22.1 总体架构765
22.2 硬件设计766
22.3 软件设计767
22.3.1 总体框架767
22.3.2 协议报文格式768
22.4 应用软件771
22.4.1 GUI应用模块771
22.4.2 通信协议模块775
22.4.3 业务功能模块780
22.4.4 使用多线程读取设备782
22.4.5 模块集成784
附录A 缩略语785
"



内容介绍:

本书以S3C2410A芯片及HY2410A开发板为主,介绍了嵌入式ARM平台上Linux系统开发所需的各种技术,包括ARM处理器架构与汇编语言、嵌入式Linux开发环境的建立、C及C++语言要点、bootloader和Linux内核的移植、Linux系统应用编程、Linux内核驱动编程和Qt图形界面应用的开发等,涵盖了嵌入式产品软件开发工作所需的各种主要技术。

内容截图:

IPB Image


上一篇 下一篇