《嵌入式系统开发-基于ARM Cortex A8系统》刘小洋,李勇编著 | PDF下载|ePub下载
嵌入式系统开发-基于ARM Cortex A8系统 版权信息
- 出版社:机械工业出版社
- 出版时间:2018-01-01
- ISBN:9787111583578
- 条形码:9787111583578 ; 978-7-111-58357-8
嵌入式系统开发-基于ARM Cortex A8系统 本书特色
本书基于ARMCortexA8系统介绍嵌入式开发,共8章,分为三部分:第 一部分(第1章和第2章)介绍嵌入式系统的基础知识,第二部分(第3~6章)介绍嵌入式系统开发环境、嵌入式引导系统、嵌入式操作系统内核、嵌入式文件系统,第三部分(第7章和第8章)通过嵌入式驱动开发与嵌入式系统项目来论述嵌入式系统开发的方法论和开发过程。本书可作为工科类计算机、电子信息、通信工程、自动化等相关专业学生的教材,同时可供嵌入式技术开发人员参考。
嵌入式系统开发-基于ARM Cortex A8系统 内容简介
本书基于ARMCortexA8系统介绍嵌入式开发,共8章,分为三部分:**部分(第1章和第2章)介绍嵌入式系统的基础知识,第二部分(第3~6章)介绍嵌入式系统开发环境、嵌入式引导系统、嵌入式操作系统内核、嵌入式文件系统,第三部分(第7章和第8章)通过嵌入式驱动开发与嵌入式系统项目来论述嵌入式系统开发的方法论和开发过程。本书可作为工科类计算机、电子信息、通信工程、自动化等相关专业学生的教材,同时可供嵌入式技术开发人员参考。
嵌入式系统开发-基于ARM Cortex A8系统 目录
前言
第1章 嵌入式系统概述1
1.1 嵌入式系统组成1
1.1.1 硬件层2
1.1.2 中间层4
1.1.3 系统软件层5
1.2 嵌入式开源系统6
1.2.1 开源计算项目6
1.2.2 开源嵌入式开发平台6
第2章 嵌入式Linux操作系统8
2.1 主流的嵌入式操作系统8
2.1.1 VxWorks8
2.1.2 Windows Embedded8
2.1.3 嵌入式Linux9
2.1.4 嵌入式实时内核C/OS9
2.2 嵌入式Linux操作系统简介10
2.3 Linux操作系统实践12
2.3.1 Linux系统12
2.3.2 基于VMware安装RedHat Linux系统13
2.3.3 全屏幕编辑器与vi29
2.3.4 与网络相关的命令32
2.3.5 软件包的安装与管理37
第3章 嵌入式系统开发环境47
3.1 Linux程序设计47
3.1.1 GNUC编译器47
3.1.2 GCC编译器48
3.1.3 Makefile52
3.1.4 用GDB调试程序59
3.2 Linux shell编程61
3.2.1 shell的种类和特点62
3.2.2 shell程序与C语言63
3.2.3 shell 脚本的编写66
3.2.4 shell与C语言的调用66
3.3 嵌入式开发环境67
3.3.1 嵌入式Linux开发环境搭建68
3.3.2 交叉编译70
3.3.3 交叉编译工具的分类和说明71
3.3.4 宿主机交叉环境建立71
3.4 基于非操作系统的实践72
3.4.1 S5PV210 硬件介绍72
3.4.2 启动方式73
3.4.3 S5PV210裸板启动78
3.4.4 非操作系统的驱动79
第4章 嵌入式引导系统96
4.1 概述96
4.1.1 BootLoader的种类96
4.1.2 不同平台的开源项目97
4.2 Linux系统引导过程与嵌入式引导过程的区别99
4.2.1 Linux系统引导过程99
4.2.2 嵌入式引导过程103
4.2.3 引导系统启动方式105
4.2.4 NOR Flash和NAND Flash启动过程的区别106
4.3 U-Boot系统的实践107
4.3.1 U-Boot的组成107
4.3.2 定制S5PV210配置110
4.3.3 编译U-Boot110
4.3.4 编译过程分析111
第5章 嵌入式操作系统内核114
5.1 概述114
5.2 嵌入式Linux内核实践123
5.2.1 内核编程123
5.2.2 嵌入式Linux内核移植实践138
5.3 嵌入式Android内核移植实践152
5.4 基于Android网关的驱动开发161
5.4.1 LED灯控制的Android驱动开发161
5.4.2 步进电机实验163
5.4.3 三路继电器实验166
第6章 嵌入式文件系统168
6.1 概述168
6.1.1 文件存储结构168
6.1.2 inode示例169
6.1.3 Linux文件类型171
6.2 嵌入式根文件系统171
6.2.1 基于Flash的文件系统172
6.2.2 基于RAM的文件系统174
6.3 嵌入式文件系统实践175
6.3.1 BusyBox 简化嵌入式Linux文件系统175
6.3.2 BusyBox源码分析175
6.3.3 基于S5PV210内核文件系统移植176
第7章 嵌入式驱动开发187
7.1 概述187
7.1.1 嵌入式Linux的内核空间与用户空间187
7.1.2 嵌入式Linux的设备管理188
7.1.3 嵌入式Linux的驱动程序190
7.1.4 嵌入式Linux驱动程序的加载方式196
7.1.5 无操作系统时的设备驱动196
7.1.6 有操作系统时的设备驱动198
7.1.7 内核模块化编程199
7.2 嵌入式驱动开发实践207
7.2.1 嵌入式字符设备的驱动程序结构207
7.2.2 设备号的申请和字符设备的注册208
7.2.3 字符设备驱动程序重要的数据结构209
7.2.4 字符设备驱动程序设计211
7.3 嵌入式驱动开发案例217
7.3.1 LED的驱动217
7.3.2 LED驱动程序218
7.3.3 ADC转换驱动223
7.4 嵌入式Qt驱动开发案例228
7.4.1 Qt Creator简介228
7.4.2 Qt Creator的安装和搭建228
7.4.3 驱动程序分析233
7.4.4 LED蜂鸣器控制驱动案例234
7.4.5 步进电机控制驱动案例238
7.4.6 继电器控制驱动案例241
7.4.7 8×7矩阵键盘驱动案例244
7.4.8 16×24点阵屏驱动案例246
第8章 嵌入式综合项目案例249
8.1 开源硬件pcDuino3的开发基础249
8.1.1 通过VNC访问pcDuino3桌面249
8.1.2 基于pcDuino的编程251
8.1.3 pcDuino BSP的开发252
8.2 基于S5PV210的嵌入式无线路灯控制系统259
8.2.1 项目背景259
8.2.2 方案介绍260
8.2.3 功能实现261
8.2.4 后台控制系统262
参考文献264
第1章 嵌入式系统概述1
1.1 嵌入式系统组成1
1.1.1 硬件层2
1.1.2 中间层4
1.1.3 系统软件层5
1.2 嵌入式开源系统6
1.2.1 开源计算项目6
1.2.2 开源嵌入式开发平台6
第2章 嵌入式Linux操作系统8
2.1 主流的嵌入式操作系统8
2.1.1 VxWorks8
2.1.2 Windows Embedded8
2.1.3 嵌入式Linux9
2.1.4 嵌入式实时内核C/OS9
2.2 嵌入式Linux操作系统简介10
2.3 Linux操作系统实践12
2.3.1 Linux系统12
2.3.2 基于VMware安装RedHat Linux系统13
2.3.3 全屏幕编辑器与vi29
2.3.4 与网络相关的命令32
2.3.5 软件包的安装与管理37
第3章 嵌入式系统开发环境47
3.1 Linux程序设计47
3.1.1 GNUC编译器47
3.1.2 GCC编译器48
3.1.3 Makefile52
3.1.4 用GDB调试程序59
3.2 Linux shell编程61
3.2.1 shell的种类和特点62
3.2.2 shell程序与C语言63
3.2.3 shell 脚本的编写66
3.2.4 shell与C语言的调用66
3.3 嵌入式开发环境67
3.3.1 嵌入式Linux开发环境搭建68
3.3.2 交叉编译70
3.3.3 交叉编译工具的分类和说明71
3.3.4 宿主机交叉环境建立71
3.4 基于非操作系统的实践72
3.4.1 S5PV210 硬件介绍72
3.4.2 启动方式73
3.4.3 S5PV210裸板启动78
3.4.4 非操作系统的驱动79
第4章 嵌入式引导系统96
4.1 概述96
4.1.1 BootLoader的种类96
4.1.2 不同平台的开源项目97
4.2 Linux系统引导过程与嵌入式引导过程的区别99
4.2.1 Linux系统引导过程99
4.2.2 嵌入式引导过程103
4.2.3 引导系统启动方式105
4.2.4 NOR Flash和NAND Flash启动过程的区别106
4.3 U-Boot系统的实践107
4.3.1 U-Boot的组成107
4.3.2 定制S5PV210配置110
4.3.3 编译U-Boot110
4.3.4 编译过程分析111
第5章 嵌入式操作系统内核114
5.1 概述114
5.2 嵌入式Linux内核实践123
5.2.1 内核编程123
5.2.2 嵌入式Linux内核移植实践138
5.3 嵌入式Android内核移植实践152
5.4 基于Android网关的驱动开发161
5.4.1 LED灯控制的Android驱动开发161
5.4.2 步进电机实验163
5.4.3 三路继电器实验166
第6章 嵌入式文件系统168
6.1 概述168
6.1.1 文件存储结构168
6.1.2 inode示例169
6.1.3 Linux文件类型171
6.2 嵌入式根文件系统171
6.2.1 基于Flash的文件系统172
6.2.2 基于RAM的文件系统174
6.3 嵌入式文件系统实践175
6.3.1 BusyBox 简化嵌入式Linux文件系统175
6.3.2 BusyBox源码分析175
6.3.3 基于S5PV210内核文件系统移植176
第7章 嵌入式驱动开发187
7.1 概述187
7.1.1 嵌入式Linux的内核空间与用户空间187
7.1.2 嵌入式Linux的设备管理188
7.1.3 嵌入式Linux的驱动程序190
7.1.4 嵌入式Linux驱动程序的加载方式196
7.1.5 无操作系统时的设备驱动196
7.1.6 有操作系统时的设备驱动198
7.1.7 内核模块化编程199
7.2 嵌入式驱动开发实践207
7.2.1 嵌入式字符设备的驱动程序结构207
7.2.2 设备号的申请和字符设备的注册208
7.2.3 字符设备驱动程序重要的数据结构209
7.2.4 字符设备驱动程序设计211
7.3 嵌入式驱动开发案例217
7.3.1 LED的驱动217
7.3.2 LED驱动程序218
7.3.3 ADC转换驱动223
7.4 嵌入式Qt驱动开发案例228
7.4.1 Qt Creator简介228
7.4.2 Qt Creator的安装和搭建228
7.4.3 驱动程序分析233
7.4.4 LED蜂鸣器控制驱动案例234
7.4.5 步进电机控制驱动案例238
7.4.6 继电器控制驱动案例241
7.4.7 8×7矩阵键盘驱动案例244
7.4.8 16×24点阵屏驱动案例246
第8章 嵌入式综合项目案例249
8.1 开源硬件pcDuino3的开发基础249
8.1.1 通过VNC访问pcDuino3桌面249
8.1.2 基于pcDuino的编程251
8.1.3 pcDuino BSP的开发252
8.2 基于S5PV210的嵌入式无线路灯控制系统259
8.2.1 项目背景259
8.2.2 方案介绍260
8.2.3 功能实现261
8.2.4 后台控制系统262
参考文献264