Linux环境嵌入式系统开发基础PDF电子书下载
- 电子书积分:16 积分如何计算积分?
- 作 者:刘彦文,李丽芬编著
- 出 版 社:北京:清华大学出版社
- 出版年份:2015
- ISBN:9787302391159
- 页数:523 页
第1章 嵌入式系统组成简介 1
1.1 嵌入式系统简介 1
1.1.1 嵌入式系统定义 1
1.1.2 嵌入式系统发展历程 1
1.1.3 嵌入式系统应用举例 2
1.1.4 嵌入式系统特点 2
1.2 嵌入式系统硬件及软件组成 4
1.2.1 嵌入式系统硬件组成 4
1.2.2 嵌入式系统软件组成 5
1.3 主流嵌入式微处理器 5
1.3.1 嵌入式微处理器分类 5
1.3.2 主流嵌入式微处理器简介 7
1.4 主流嵌入式操作系统简介 10
1.4.1 嵌入式操作系统的主要特点 10
1.4.2 主流嵌入式操作系统简介 11
1.5 Linux支持的处理器结构简介 14
1.5.1 Linux对处理器的支持 14
1.5.2 Linux支持的处理器结构 15
1.5.3 μCLinux支持的处理器结构 15
习题 16
第2章 微处理器组成及程序员模型 17
2.1 S3C2410A微处理器概述 17
2.2 S3C2410A微处理器的组成与引脚信号 18
2.2.1 S3C2410A微处理器的组成 18
2.2.2 S3C2410A芯片封装、引脚编号与引脚信号名 22
2.2.3 S3C2410A特殊功能寄存器简介 26
2.3 ARM920T核 26
2.4 ARM程序员模型 26
2.4.1 处理器操作状态 27
2.4.2 存储器格式和数据类型 27
2.4.3 处理器操作方式 29
2.4.4 寄存器 29
2.4.5 程序状态寄存器 33
2.4.6 异常 34
2.4.7 中断延迟 39
2.4.8 Reset 39
2.5 OMAP3530微处理器 39
2.5.1 OMAP3530微处理器概述 40
2.5.2 OMAP3530应用举例 40
2.5.3 OMAP3530微处理器组成 42
习题 44
第3章 存储器控制器及Nand Flash控制器 46
3.1 存储器控制器 46
3.1.1 S3C2410A与存储器相关的特性简介 46
3.1.2 与存储器芯片连接的S3C2410A引脚信号及使用 48
3.1.3 存储器总线周期举例 54
3.1.4 存储器控制器特殊功能寄存器 57
3.2 存储器组成举例 63
3.2.1 使用Nor Flash芯片作为引导ROM 63
3.2.2 使用SDRAM芯片举例 68
3.3 Nand Flash芯片工作原理 78
3.3.1 两种引导模式 78
3.3.2 Nand Flash概述 78
3.3.3 K9F2808U0C Nand Flash芯片工作原理 78
3.4 Nand Flash控制器 83
3.4.1 Nand Flash控制器 83
3.4.2 Nand Flash控制器特殊功能寄存器 86
3.4.3 Nand Flash控制器与Nand Flash芯片连接举例 87
3.5 应用举例 87
3.5.1 U-Boot对存储器控制器特殊功能寄存器初始化 87
3.5.2 存储器控制器与以太网控制器的连接 91
3.5.3 S3C44B0X与Nand Flash芯片的连接 91
习题 92
第4章 时钟与电源管理、DMA与总线优先权 95
4.1 功耗管理、时钟与电源管理概述 95
4.1.1 微处理器功耗管理基础 95
4.1.2 时钟与电源管理概述 96
4.1.3 时钟与电源管理用到的S3C2410A引脚信号 97
4.2 时钟管理 98
4.2.1 时钟与电源管理结构框图 98
4.2.2 片外时钟源的选择 99
4.2.3 锁相环 99
4.2.4 时钟控制逻辑 100
4.3 电源管理 102
4.3.1 电源管理模式的转换 102
4.3.2 4种电源管理模式 103
4.3.3 S3C2410A电源引脚 107
4.4 时钟与电源管理特殊功能寄存器及设置 107
4.4.1 时钟与电源管理特殊功能寄存器 107
4.4.2 U-Boot对特殊功能寄存器的初始设置 110
4.5 DMA基础 112
4.5.1 DMA含义 112
4.5.2 DMAC控制输入传输举例 112
4.5.3 总线主设备、从设备 114
4.6 DMA传输 114
4.6.1 DMA概述 114
4.6.2 存储器到外设DMA传输举例 115
4.6.3 DMA用到的S3C2410A引脚信号 117
4.7 DMA请求、有限状态机和协议 117
4.7.1 硬件DMA请求与软件DMA请求 117
4.7.2 用于DMA操作的有限状态机 118
4.7.3 外部DMA请求/响应协议 119
4.7.4 Unit/Burst传输、数据尺寸与自动重装 120
4.7.5 外部DMA请求/响应协议传输举例 121
4.8 DMA特殊功能寄存器 122
4.9 DMA存储器到存储器传输测试举例 127
4.10 总线优先权 130
习题 131
第5章 GPIO端口及中断控制器 133
5.1 GPIO端口概述及引脚信号 133
5.1.1 GPIO端口概述 133
5.1.2 与GPIO端口及其他寄存器相关的S3C2410A引脚信号 134
5.2 GPIO端口控制 135
5.3 GPIO端口特殊功能寄存器 136
5.3.1 端口A~端口H寄存器组 136
5.3.2 其他寄存器 144
5.4 GPIO端口程序举例 151
5.4.1 GPIO端口特殊功能寄存器在程序中定义 151
5.4.2 GPIO端口初始化配置 153
5.4.3 GPIO端口使用举例 154
5.5 中断控制器概述 155
5.5.1 与中断有关的寄存器 155
5.5.2 中断处理过程 157
5.6 中断控制器操作、中断源及中断优先权 158
5.6.1 中断控制器操作 158
5.6.2 中断源 159
5.6.3 中断优先权产生模块 159
5.7 中断控制器特殊功能寄存器 161
5.8 中断程序举例 167
习题 174
第6章 片内功能模块 177
6.1 脉宽调制定时器 177
6.1.1 PWM定时器概述 177
6.1.2 PWM定时器操作 179
6.1.3 PWM定时器特殊功能寄存器 184
6.1.4 PWM定时器应用举例 188
6.2 实时时钟 191
6.2.1 RTC概述 191
6.2.2 RTC组成与操作 192
6.2.3 RTC特殊功能寄存器 193
6.2.4 RTC程序举例 197
6.3 看门狗定时器 199
6.3.1 WDT概述 199
6.3.2 WDT操作 200
6.3.3 WDT特殊功能寄存器 200
6.3.4 WDT程序举例 202
6.4 通用异步收发器 205
6.4.1 串行异步通信基础 205
6.4.2 UART组成及操作 210
6.4.3 UART特殊功能寄存器 216
6.4.4 UART与RS-232C接口连接举例 222
6.4.5 UART程序举例 224
6.4.6 UART与红外收发器连接及程序举例 227
6.5 模数转换器与触摸屏接口 229
6.5.1 ADC与TS接口基础知识 229
6.5.2 ADC与TS接口概述 232
6.5.3 ADC与TS接口操作 233
6.5.4 ADC与TS接口特殊功能寄存器 236
6.5.5 ADC程序举例 239
6.5.6 ADC与TS接口程序举例 240
6.6 IIC、IIS、SPI总线接口及SD主控制器概述 243
6.6.1 IIC总线接口概述 243
6.6.2 IIS总线接口概述 245
6.6.3 SPI总线接口概述 247
6.6.4 MMC/SD/SDIO概述 249
习题 251
第7章 Linux及嵌入式开发系统组成简介 256
7.1 Linux起源及发展 256
7.1.1 UNIX和GNU软件 256
7.1.2 Linux的发展 257
7.2 内核、shell、文件系统及实用程序 258
7.2.1 Linux内核 258
7.2.2 shell简介 258
7.2.3 文件系统 261
7.2.4 实用程序 262
7.3 使用Linux的理由及Linux的不足之处 262
7.3.1 使用Linux的理由 262
7.3.2 使用Linux的不足之处 263
7.4 Linux环境嵌入式开发系统组成简介 264
7.4.1 Linux环境嵌入式开发系统组成 264
7.4.2 主机 264
7.4.3 目标板 264
7.4.4 主机与目标板的连接 264
7.4.5 主机中运行的程序 265
7.4.6 目标板中运行的程序 265
7.4.7 开发系统附带的光盘文档 266
7.5 主机安装的Linux发行版 267
7.5.1 常用的Linux发行版 267
7.5.2 Linux发行版在主机的安装方式 268
习题、操作与实验 269
第8章 主机及目标板的运行 271
8.1 终端基础知识 271
8.1.1 tty 271
8.1.2 早期的终端及终端与主机的连接 271
8.1.3 X-Window、GNOME及KDE简介 273
8.2 主机系统引导、登录及退出Linux 274
8.2.1 主机系统引导 274
8.2.2 登录Linux 275
8.2.3 Linux的终端 276
8.2.4 查看及修改用户使用的shell 278
8.2.5 通过退出与shell的会话退出Linux 280
8.2.6 关闭运行的Linux系统 281
8.2.7 使用帮助命令help和man 281
8.3 目标板初次运行 283
8.3.1 目标板连接的电源、端口及安装的操作系统 283
8.3.2 目标板引导过程简述 284
8.3.3 装入装载引导程序(vivi) 286
8.3.4 装入装载引导程序(u-boot) 287
8.3.5 主机在Windows环境下的超级终端 287
8.3.6 主机在Linux环境下的minicom仿真终端(Linux企业版4.0) 290
8.3.7 主机在Linux环境下的minicom仿真终端(Linux企业版5.0) 293
8.3.8 在虚拟机中增添串口设备 296
8.3.9 装载引导程序支持的命令简介(vivi) 300
8.3.10 装载引导程序支持的命令简介(u-boot) 302
8.3.11 目标板运行的Linux登录、退出讨论 306
8.3.12 目标板安装的Linux 306
8.3.13 目标板运行的Linux命令举例(S3C2410A) 307
8.3.14 目标板运行的Linux命令举例(OMAP3530) 310
习题、操作与实验 311
第9章 主机开发环境配置 313
9.1 交叉开发平台基础 313
9.1.1 本地开发及交叉开发 313
9.1.2 GNU跨平台工具链组成 314
9.1.3 如何获取工具链 314
9.1.4 工具链的组件及GDB简介 315
9.2 交叉工具链安装举例 316
9.2.1 交叉工具链安装举例(S3C2410A) 316
9.2.2 交叉工具链安装举例(OMAP3530) 318
9.3 主机Linux环境网络配置举例(S3C2410A) 321
9.3.1 主机Linux环境IP地址设置 322
9.3.2 主机Linux环境网络防火墙设置 325
9.3.3 主机与目标板网络通信测试 326
9.3.4 主机Linux环境NFS设置 328
9.3.5 输入、编译、运行一个程序全过程举例 332
9.4 主机Linux环境网络配置举例(OMAP3530) 333
9.4.1 主机Linux环境IP地址设置 333
9.4.2 主机Linux环境网络防火墙设置 335
9.4.3 主机与目标板网络通信测试 337
9.4.4 主机Linux环境NFS设置 337
9.4.5 输入、编译、运行一个程序全过程举例 340
习题、操作与实验 342
第10章 应用程序编程举例及驱动程序分析(一) 343
10.1 读取、转换时间函数编程举例 343
10.1.1 Linux查看、设置时间的命令 343
10.1.2 常用的读取、转换时间的函数 344
10.1.3 读取、转换时间的函数编程举例(S3C2410A) 345
10.1.4 例10.1 对应的Makefile文件(S3C2410A) 347
10.1.5 读取、转换时间的函数编程举例(OMAP3530) 348
10.1.6 例10.2 对应的Makefile文件(OMAP3530) 348
10.1.7 执行例10.2 程序前的操作步骤举例(OMAP3530) 349
10.2 多线程编程举例 350
10.2.1 Linux线程概述 350
10.2.2 线程、互斥量、条件变量函数 351
10.2.3 生产者、消费者编程举例(S3C2410A) 353
10.3 串行端口及标准输入/输出/错误编程举例 358
10.3.1 Linux标准输入/输出/错误系统调用 358
10.3.2 Linux标准输入/输出/错误系统调用编程举例(S3C2410A) 360
10.3.3 Linux标准输入/输出/错误系统调用编程举例(OMAP3530) 361
10.3.4 串行端口设备与文件关联及系统调用 362
10.3.5 串行端口设备与文件关联及系统调用编程举例(S3C2410A) 363
10.3.6 串行端口设备与文件关联及系统调用编程举例(OMAP3530) 365
10.3.7 C语言标准输入/输出/错误函数 367
10.3.8 C语言标准输入/输出/错误函数编程举例(S3C2410A) 368
10.3.9 C语言标准输入/输出/错误函数编程举例(OMAP3530) 369
10.4 ADC应用程序编程举例(S3C2410A) 369
10.4.1 ADC编程基础 369
10.4.2 ADC应用程序编程举例 371
10.5 ADC驱动程序源代码分析(S3C2410A) 375
10.5.1 概述 375
10.5.2 Linux设备驱动程序概述 376
10.5.3 s3c2410-adc.h头文件源代码分析 380
10.5.4 s3c2410.h_chip.h头文件源代码分析 381
10.5.5 s3c2410-adc.c设备驱动程序源代码分析 383
习题、操作、实验及编程 389
第11章 目标板出厂软件烧写实验(S3C2410A) 392
11.1 目标板出厂软件烧写概述 392
11.1.1 目标板出厂软件 392
11.1.2 Linux环境要烧写的文件 392
11.1.3 什么情况下烧写目标板出厂软件 392
11.1.4 烧写环境 393
11.2 目标板出厂软件烧写实验(一) 393
11.2.1 主机Windows环境下安装JTAG驱动程序 393
11.2.2 通过JTAG端口传送并烧写装载引导程序vivi 394
11.2.3 通过串口传送并烧写内核zImage 395
11.2.4 通过串口传送并烧写根文件系统root.cramfs 397
11.2.5 通过网口传送并烧写应用程序yaffs.tar.bz2 397
11.2.6 格式化闪存以及通过串口传送并烧写vivi 402
11.3 目标板出厂软件烧写实验(二) 402
11.3.1 通过网口传送并烧写内核zImage 403
11.3.2 通过网口传送并烧写根文件系统root.cramfs 406
11.4 目标板出厂软件烧写实验(三) 407
11.4.1 通过JTAG端口传送并烧写装载引导程序u-boot 407
11.4.2 通过网口传送并烧写内核uImage 409
11.4.3 通过网口传送并烧写根文件系统root.cramfs 411
11.4.4 通过网口传送并烧写应用程序yaffs.tar.bz2 412
11.5 目标板出厂软件烧写小结 413
习题、操作与实验 413
第12章 应用程序编程举例及驱动程序分析(二) 415
12.1 DAC应用程序编程举例及驱动程序分析 415
12.1.1 DAC硬件基础 415
12.1.2 DAC应用程序编程举例(S3C2410A) 417
12.1.3 DAC驱动程序源代码分析(S3C2410A) 419
12.2 PWM直流电机应用程序编程举例及驱动程序分析 422
12.2.1 PWM直流电机(S3C2410A) 422
12.2.2 编译、加载驱动程序模块(S3C2410A) 423
12.2.3 PWM直流电机应用程序编程举例(S3C2410A) 426
12.2.4 PWM直流电机驱动程序源代码分析(S3C2410A) 428
12.3 LED应用程序编程举例及驱动程序分析 429
12.3.1 七段LED概述 429
12.3.2 8×8点阵LED显示概述 432
12.3.3 CPLD与七段LED、8×8点阵LED连接举例(S3C2410A) 435
12.3.4 七段LED、8×8点阵LED应用程序编程举例(S3C2410A) 437
12.3.5 LED驱动程序源代码分析(S3C2410A) 439
习题、操作、实验及编程 442
第13章 装载引导程序 443
13.1 常见的装载引导程序 443
13.2 U-Boot概述 444
13.3 编译、烧写、运行U-Boot及装入内核 446
13.3.1 对标准开发板源代码进行编译、链接并烧写U-Boot 446
13.3.2 U-Boot等映像文件在开发板存储位置举例 446
13.3.3 加电运行U-Boot及U-Boot装入内核 447
13.4 U-Boot监视命令及环境变量 448
13.4.1 使用命令及在源代码中配置监视命令 448
13.4.2 环境变量 449
13.5 顶层目录、编译过程及配置头文件举例 451
13.5.1 U-Boot源代码顶层目录及编译指定的开发板 451
13.5.2 标准开发板配置头文件及举例 453
13.6 U-Boot启动过程及举例 456
习题、操作与实验 459
第14章 内核 461
14.1 内核简介 461
14.1.1 内核 461
14.1.2 内核在嵌入式Linux系统中的位置及内核组成 461
14.2 内核映像、Linux启动过程及输出信息 463
14.2.1 常见内核映像文件zImage和uImage 463
14.2.2 Linux启动过程简介 464
14.2.3 Linux启动期间控制台输出的信息 467
14.3 Linux内核源代码 468
14.3.1 获得内核源代码 468
14.3.2 Linux内核源代码树及内核目录 469
14.4 内核配置文件及配置编辑器 472
14.4.1 内核配置文件 472
14.4.2 内核配置编辑器 473
14.4.3 顶层.config文件内容及Kconfig文件内容举例 475
14.5 联编内核及联编内核模块 477
14.5.1 联编内核举例 478
14.5.2 联编内核模块举例 480
14.5.3 清理 480
习题、操作与实验 481
附录A Linux基础 483
A.1 用户和组 483
A.1.1 账户 483
A.1.2 与用户和组关联的文件 484
A.1.3 与用户和组相关的命令 486
A.2 文件系统及Linux常用命令 488
A.2.1 目录结构及根的基本目录 488
A.2.2 创建和删除目录 489
A.2.3 常用目录操作命令 491
A.2.4 文件类型及链接 493
A.2.5 文件和目录的权限 494
A.2.6 创建、修改和删除文件 495
A.2.7 常用文件操作命令 496
A.2.8 元字符 500
A.3 用vi输入源程序 500
A.3.1 vi功能简介 500
A.3.2 常用vi操作 501
A.3.3 输入、保存源程序举例 502
A.4 make及Makefile举例 504
A.4.1 make、Makefile文件内容简介 504
A.4.2 编译文件 509
A.5 主机运行用户程序举例 510
A.5.1 运行一个程序举例 510
A.5.2 输入、编译、运行程序过程总结 512
习题 512
附录B 英汉名词术语对照表 514
参考文献 523
- 《市政工程基础》杨岚编著 2009
- 《零基础学会素描》王金著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《生物质甘油共气化制氢基础研究》赵丽霞 2019
- 《花时间 我的第一堂花艺课 插花基础技法篇》(日)花时间编辑部编;陈洁责编;冯莹莹译 2020
- 《Photoshop CC 2018基础教程》温培利,付华编著 2019
- 《看视频零基础学英语口语》宋德伟 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《你好,生态环境部!》生态环境部编 2019
- 《虚拟流域环境理论技术研究与应用》冶运涛蒋云钟梁犁丽曹引等编著 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019