<p>《嵌入式Linux系统开发全程解析》是一本全面介绍嵌入式Linux开发的专著,书中涵盖了程序生成工具、调试工具、引导加载器、Linux系统结构、Linux内核、驱动程序、用户空间编程、用户空间中间件等方面的内容。《嵌入式Linux系统开发全程解析》内容前后照应、贴近实践,且有较强的延伸型,有利于读者建立嵌入式Linux开发系统化的知识结构和技术理念。</p> <p>《嵌入式Linux系统开发全程解析》不仅适用于嵌入式Linux的工程师增强能力,也适用于其他领域的技术人员了解嵌入式Linux。</p>
嵌入式Linux系统实用开发
✍ Scribed by 何永琪 编
- Publisher
- 电子工业出版社
- Year
- 2010
- Tongue
- Chinese
- Leaves
- 744
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
《嵌入式Linux系统实用开发》从实用的角度出发,以 S3C2410A 芯片及 HY2410A 开发板为主,介绍了嵌入式 ARM 平台上 Linux 系统开发所需的各种技术,包括 ARM 处理器架构与汇编语言、嵌入式 Linux 开发环境的建立、C 及 C++ 语言要点、bootloader 和 Linux 内核的移植、Linux 系统应用编程、Linux 内核驱动编程和 Qt 图形界面应用的开发等,涵盖了嵌入式产品软件开发工作所需的各种主要技术。
✦ Table of Contents
内 容 简 介
前 言
序
目 录
第1部分 嵌入式开发基础
第1章 引 言
1.1 嵌入式产业概况
1.2 Linux 操作系统
1.3 ARM 体系概况
1.3.1 ARM7
1.3.2 ARM9
1.3.3 ARM9E
1.3.4 ARM10E
1.3.5 ARM11
1.3.6 Cortex
1.4 常见嵌入式产品及其基本平台简介
1.4.1 学习开发板
1.4.2 行业终端
1.4.3 工业控制
1.4.4 手持娱乐
1.4.5 医疗仪器
1.4.6 汽车电子
1.4.7 智能本
1.5 嵌入式产品开发基本流程
第2章 C 语言编程要点
2.1 数据类型
2.2 常数
2.3 变量
2.3.1 变量的定义与初始化
2.3.2 变量的访问
2.3.3 左值与右值
2.3.4 只读变量
2.4 操作符
2.4.1 只读操作符
2.4.2 读写操作符
2.4.3 类型转换操作符
2.4.4 sizeof 操作符
2.5 表达式和语句
2.5.1 表达式
2.5.2 语句
2.6 复合类型
2.6.1 数组
2.6.2 结构体
2.6.3 位域
2.6.4 数据的对齐
2.6.5 联合体
2.6.6 类型嵌套
2.6.7 类型别名
2.6.8 枚举类型
2.7 流程控制
2.7.1 顺序结构
2.7.2 分支结构
2.7.3 隐含的分支结构
2.7.4 循环结构
2.7.5 goto
2.8 函数
2.8.1 声明与定义
2.8.2 函数的调用与传值方式
2.8.3 函数与复合类型
2.8.4 内联函数
2.8.5 变量的作用范围与生存期
2.9 指针
2.9.1 指针与变量
2.9.2 指针与操作符
2.9.3 指针与数组
2.9.4 字符串
2.9.5 指针与结构体
2.9.6 指针与函数
2.9.7 回调函数
2.9.8 函数指针类型转换
2.10 预处理语句
2.10.1 文件包含
2.10.2 宏定义
2.10.3 宏与函数
2.10.4 代码分支
第3章 开 发 环 境
3.1 Linux 使用基础
3.1.1 命令参数与选项
3.1.2 文件、目录和路径
3.1.3 用户与权限
3.1.4 硬链接与符号链接
3.1.5 命令使用技巧
3.2 Linux 常用命令
3.2.1 查阅手册
3.2.2 文件相关
3.2.3 文件内容相关
3.2.4 压缩与解压缩
3.2.5 文件系统与磁盘
3.2.6 用户与权限
3.2.7 进程管理
3.2.8 系统信息
3.2.9 网络
3.3 Shell 使用进阶
3.3.1 重定向
3.3.2 管道
3.3.3 变量与替换
3.3.4 环境变量
3.3.5 脚本
3.3.6 脚本编程
3.3.7 作业管理
3.4 Debian 5.0 的安装与使用
3.4.1 安装 Debian 5.0
3.4.2 Debian 5.0 的基本操作
3.4.3 常用软件的安装与使用
3.4.4 从源码安装软件
3.4.5 安装编译环境
3.5 建立交叉编译环境
3.5.1 下载安装
3.5.2 从源码编译安装
3.6 vi 编辑器
3.6.1 vi 的工作模式
3.6.2 普通模式
3.6.3 命令行模式
3.6.4 寄存器
3.6.5 与编程有关的技巧
3.7 gcc 工具链
3.7.1 编译过程
3.7.2 gcc 用法
3.8 make 与 Makefile
3.8.1 make 工具的使用
3.8.2 Makefile
3.9 gdb 调试工具
3.9.1 调试本地程序
3.9.2 远程调试
3.10 buildroot 开发工具
第2部分 ARM 架构与编程
第4章 ARM 处理器架构与编程模型
4.1 嵌入式硬件系统
4.1.1 嵌入式系统架构
4.1.2 S3C2410A 地址映射
4.1.3 HY2410A 开发板硬件配置
4.2 ARM 架构概述
4.2.1 ARM 处理器模式与寄存器组
4.2.2 ARM 异常与异常向量表
4.2.3 程序状态寄存器
4.2.4 大端与小端存储格式
4.3 ARM 指令集概述
4.3.1 ARM 汇编指令格式
4.3.2 数据处理指令
4.3.3 存储器访问指令
4.3.4 分支指令
4.3.5 软中断指令
4.3.6 程序状态寄存器传送指令
4.3.7 乘法指令
4.3.8 协处理器指令
4.3.9 伪指令
4.4 GNU ARM 汇编
4.4.1 基本语法
4.4.2 GNU ARM 汇编伪指令
4.5 汇编与 C 语言
4.5.1 程序及其二进制映像
4.5.2 程序的编译与运行
4.5.3 ATPCS 约定
4.5.4 汇编与 C 语言的对照
4.5.5 函数调用与栈
4.5.6 堆的概念
4.6 汇编与 C 语言混合编程
4.6.1 C 语言调用汇编函数
4.6.2 汇编语言中使用 C 全局变量
4.6.3 内嵌汇编
第5章 搭建嵌入式固件开发平台
5.1 硬件设备与软件环境
5.2 搭建开发环境
5.2.1 硬件连接
5.2.2 使用终端软件
5.2.3 下载和执行程序
5.3 创建固件程序
第6章 S3C2410 接口与编程
6.1 软中断异常编程
6.1.1 软中断异常入口
6.1.2 软中断异常应用例程
6.2 中断控制器及外部中断编程
6.2.1 中断体系结构
6.2.2 中断控制器
6.2.3 中断源安排
6.2.4 中断控制器寄存器配置
6.2.5 中断应用例程
6.3 定时器及其编程
6.3.1 定时器体系
6.3.2 定时器单元工作原理
6.3.3 定时器寄存器配置
6.4 GPIO 接口
6.5 UART 控制器及串口通信应用
6.5.1 UART 通信原理
6.5.2 RS-232C 串行接口标准
6.5.3 UART 控制寄存器
6.5.4 串口通信应用例程
6.6 NAND Flash 芯片与控制器
6.6.1 NAND Flash 的访问
6.6.2 NAND Flash 控制器
6.6.3 NAND Flash 控制器编程实例
第7章 U-boot 源码分析与移植
7.1 bootloader 的概念
7.1.1 bootloader 的启动过程
7.1.2 bootloader 的操作模式
7.1.3 ARM bootloader 的特点
7.2 使用 U-boot
7.2.1 U-boot 主要命令与环境变量
7.2.2 使用实例
7.3 U-boot 源码分析
7.3.1 总体架构与内存布局
7.3.2 源码目录
7.3.3 实现分析
7.4 U-boot 移植
7.4.1 源码修改
7.4.2 配置和编译
第3部分 Linux 系统编程
第8章 Linux 系统编程基础
8.1 系统调用与 API
8.2 程序的生成与执行
8.3 API 的错误处理
8.4 命令行参数与环境变量
第9章 Linux 文件系统编程
9.1 文件的概念
9.2 文件描述符与索引节点
9.3 文件操作的系统调用接口
9.3.1 打开文件
9.3.2 从文件读取数据
9.3.3 写数据到文件
9.3.4 发送控制命令
9.3.5 关闭文件
9.4 标准 I/O 函数库
9.4.1 fopen
9.4.2 fread 和 fwrite
9.4.3 fclose
9.4.4 fflush
9.4.5 fseek 和 ftell
9.4.6 fgetc,getc 和 getchar
9.4.7 fputc,putc 和 putchar
9.4.8 fgets 和 gets
9.4.9 fputs 和 puts
9.4.10 fprintf,printf 和 sprintf
9.4.11 fscanf,scanf 和 sscanf
9.4.12 标准 I/O 错误处理
第10章 深入理解进程
10.1 Linux 中的进程
10.1.1 创建进程
10.1.2 执行程序
10.1.3 进程的内存布局
10.1.4 进程的状态迁移
10.1.5 进程的终止
10.2 进程与信号
10.2.1 Linux 中的信号处理机制
10.2.2 发送信号
10.2.3 捕捉信号
10.2.4 屏蔽信号
10.2.5 信号安全函数
10.3 进程与文件
10.3.1 内核文件管理
10.3.2 进程中的文件
10.3.3 文件的重定向
10.3.4 文件控制
10.4 进程间通信
10.4.1 Linux 中的 IPC
10.4.2 信号灯与进程同步
10.4.3 管道
10.4.4 命名管道
10.4.5 共享内存
10.4.6 消息队列
第11章 socket 编程
11.1 网络协议层次模型
11.2 socket 编程接口
11.2.1 打开 socket
11.2.2 socket 地址
11.2.3 网络字节序
11.2.4 socket 与地址的绑定
11.2.5 侦听
11.2.6 接受连接请求
11.2.7 连接
11.2.8 关闭和切断连接
11.2.9 发送数据
11.2.10 接收数据
11.2.11 使用 socket 选项
11.2.12 阻塞与非阻塞操作
11.2.13 可靠的发送与接收操作
11.2.14 多路复用
11.3 socket 编程实例
11.3.1 TCP 与 UDP 程序流程
11.3.2 TCP 通信例程
11.3.3 多进程并发服务器应用
11.3.4 多路复用服务器应用
11.3.5 UDP 服务器应用
第12章 多线程并发程序设计
12.1 线程的概念
12.2 线程编程接口
12.2.1 线程的创建与退出
12.2.2 线程属性
12.2.3 线程的分离状态
12.2.4 线程应用实例
12.3 线程的同步
12.3.1 使用信号灯进行线程同步
12.3.2 使用互斥体
12.3.3 使用条件变量
12.4 多线程并发程序设计
12.4.1 多线程并发服务器应用
12.4.2 消费者/生产者模型
12.4.3 线程池应用
第4部分 内核与驱动编程
第13章 内核编程初步
13.1 从用户态到内核态
13.1.1 实模式与保护模式
13.1.2 用户态与内核态
13.1.3 内核编程的特点
13.1.4 内核模块与驱动
13.2 内核模块编程
13.2.1 编写源码
13.2.2 printk 函数
13.2.3 编译内核模块
13.2.4 加载与卸载
13.2.5 模块参数
13.3 字符设备驱动
13.3.1 设备文件与设备号
13.3.2 字符设备编程接口
13.3.3 文件操作
13.3.4 访问用户态内存
13.3.5 动态分配内存
13.3.6 内存操作
13.3.7 字符设备驱动例程
第14章 内核编程接口
14.1 双向环形链表
14.1.1 定义与初始化
14.1.2 链表操作
14.1.3 链表的使用
14.2 等待与延时
14.2.1 调度与抢占
14.2.2 进程运行状态
14.2.3 定时
14.2.4 等待队列
14.2.5 阻塞与非阻塞操作
14.2.6 延时
14.2.7 等待队列例程
14.3 定时器与延期工作
14.3.1 定时器
14.3.2 tasklet
14.3.3 工作队列
14.3.4 定时器例程
14.4 自旋锁与同步
14.4.1 并发与竞态
14.4.2 自旋锁
14.4.3 原子上下文
14.4.4 读写锁
14.4.5 原子类型
14.4.6 比特位操作
14.4.7 互斥体
14.4.8 信号灯
14.4.9 读写信号灯
14.5 端口 IO 和内存映射 IO
14.5.1 端口 IO
14.5.2 内存映射 IO
14.5.3 内存屏障
14.6 中断
14.6.1 申请和释放中断
14.6.2 中断处理函数
14.6.3 中断的禁止和使能
14.6.4 线程化中断
14.6.5 共享中断
第15章 Linux 2.6 设备模型
15.1 对象与集合
15.1.1 引用计数
15.1.2 内核对象
15.1.3 内核对象的类型
15.1.4 内核集合
15.1.5 内核集合与对象例程
15.2 设备管理
15.2.1 设备
15.2.2 错误码与指针
15.2.3 驱动
15.2.4 总线
15.2.5 类别
15.2.6 接口
15.3 常见总线与类别
15.3.1 platform 总线
15.3.2 misc 类别
第16章 Linux 驱动实例详解
16.1 输入设备驱动
16.1.1 输入设备编程接口
16.1.2 触摸屏驱动例程
16.2 USB 驱动
16.2.1 USB 概述
16.2.2 USB 驱动模型
16.2.3 USB 驱动编程接口
16.2.4 USB 接口与端点
16.2.5 USB 类别
16.2.6 URB
16.2.7 同步传输接口
16.2.8 USB 锚
16.2.9 USB 驱动范例分析
第5部分 嵌入式Linux 系统构建
第17章 Linux 内核构建
17.1 内核编译过程
17.2 内核配置系统架构
17.2.1 内核 Makefile
17.2.2 KBuild 配置系统
17.3 增加代码到内核
17.4 内核配置简介
17.5 启动内核
第18章 根文件系统构建
18.1 init 进程
18.2 创建根文件系统
18.2.1 创建目录
18.2.2 创建设备文件
18.2.3 安装共享库
18.2.4 安装 busybox
18.3 挂载根文件系统
18.3.1 使用网络文件系统
18.3.2 使用 Flash 文件系统
第6部分 应 用 编 程
第19章 C++语言编程要点
19.1 布尔型数据
19.2 引用
19.3 类和对象
19.3.1 类和对象的定义
19.3.2 构造与析构
19.3.3 类的实现
19.3.4 访问对象
19.3.5 this 指针
19.3.6 new 和 delete
19.3.7 静态成员
19.3.8 只读成员
19.3.9 复制构造函数
19.3.10 友元
19.4 类的继承
19.4.1 继承的语法
19.4.2 继承方式
19.4.3 多重继承
19.5 函数和操作符重载
19.5.1 函数重载
19.5.2 操作符重载
19.6 覆盖与虚函数
19.6.1 覆盖
19.6.2 虚函数和多态
19.6.3 虚函数的实现
19.6.4 纯虚函数与抽象类
19.7 名字空间
19.8 模板
19.8.1 模板函数
19.8.2 模板类
19.9 异常处理
19.10 C 与 C++ 混合编程
第20章 嵌入式GUI 编程
20.1 建立开发环境
20.2 简单的 Qt 应用程序
20.2.1 编写源代码
20.2.2 编译
20.2.3 工程文件
20.2.4 运行
20.2.5 移植到目标机
20.3 窗口布局
20.3.1 水平布局与垂直布局
20.3.2 栅格布局
20.4 Qt 对象
20.4.1 层次化管理
20.4.2 信号与槽
20.4.3 事件
20.4.4 定时器
20.5 使用 designer
20.5.1 窗体设计
20.5.2 代码编写
20.5.3 运行结果
20.6 Qt 常用类
20.6.1 QChar
20.6.2 QString
20.6.3 QPoint
20.6.4 QSize
20.6.5 QRect
20.6.6 QFont
20.6.7 QPixmap
20.6.8 QIcon
20.6.9 QWidget
20.6.10 QDialog
20.6.11 QLabel
20.6.12 QAbstractButton
20.6.13 QPushButton
20.6.14 QCheckBox
20.6.15 QRadioButton
20.6.16 QLineEdit
20.7 Qt 综合应用
20.7.1 软件设计
20.7.2 源码实现
20.7.3 运行结果
20.7.4 Qt 国际化编程
第21章 嵌入式数据库编程
21.1 基本 SQL 语句
21.1.1 数据库与表
21.1.2 创建和删除表
21.1.3 插入、修改及删除记录
21.1.4 条件表达式
21.1.5 数据库查询
21.2 建立 SQLite3 开发平台
21.3 SQLite3 编程接口
21.3.1 打开和关闭数据库
21.3.2 执行 SQL 语句
21.3.3 查询数据库
21.4 使用 SQLite3 工具
21.5 SQLite3 数据库应用实例
21.5.1 使用 sqlite3_exec 查询数据库
21.5.2 使用 sqlite3_get_table 查询数据库
第22章 产品开发实例:无线信息终端
22.1 总体架构
22.2 硬件设计
22.3 软件设计
22.3.1 总体框架
22.3.2 协议报文格式
22.4 应用软件
22.4.1 GUI 应用模块
22.4.2 通信协议模块
22.4.3 业务功能模块
22.4.4 使用多线程读取设备
22.4.5 模块集成
附录A 缩 略 语
📜 SIMILAR VOLUMES
本书为提高综合动手能力和设计创新能力而编写,共13章,每章介绍知识要点、设计目标、实践内容、步骤和练习题等。主要内容包括:嵌入式Linux环境搭建、Linux环境入门、嵌入式C程序设计基础、Bootloader配置与修改、Linux文件系统及程序设计、驱动设计及应用、Linux串口通信及线程应用、进程管理及进程间通信、Linux网络通信、简单GUI应用程序设计、QT图形程序设计、嵌入式数据库SQLite应用、WebServer网页服务器设计等。本书提供电子课件、习题参考答案、程序代码、配套实验视频(二维码)等。
<p>《嵌入式系统开发基础与实践教程》以Super-ARM(MCU为S3C2410)为</p> <p>教学平台,全面详细地介绍了基于ARM的软件设计和硬件设计技术、开发工</p> <p>具及仿真调试技术等。本书将复杂的嵌入式系统设计和开发技术分解、细化</p> <p>,形成了包括基于ARM的嵌入式系统与开发简介、Super-ARM教学实验系统、</p> <p>软件实验环境介绍、基于ARM的嵌入式软件开发基础实验、基本接口实验、</p> <p>入机接口实验、通信和总线接口实验、实时操作系统实验等内容的一套完整</p> <p>的实验体系。本书还提供全部的实验例程,帮助读者系统全面地掌握
<p>本书是依托中南大学*特色专业(物联网工程)的建设,结合国内嵌入式系统教学情况编写。本书主要介绍嵌入式系统开发,以S3C2440A、STM32F74xx位硬件,以Keil μVision5.0为开发工具,详细介绍了ARM9、Cortex的体系结构、硬件组成,指令系统和程序设计、存储器接口、I/O、中断、DMA、定时器、串行通信、嵌入式Linux、?C/OS-III操作系统应用、LWIP编程,*后给出了在物联网应用中常用的嵌入式系统开发实例。</p>