图书介绍

嵌入式Linux开发教程【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

嵌入式Linux开发教程
  • 宋娟,马华杰主编;王秀友,岳国庆,金京犬副主编 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115447012
  • 出版时间:2017
  • 标注页数:330页
  • 文件大小:75MB
  • 文件页数:342页
  • 主题词:Linux操作系统-程序设计-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

嵌入式Linux开发教程PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1篇 嵌入式开发基础1

第1章 嵌入式系统基础1

1.1 嵌入式处理器简介1

1.1.1 嵌入式微处理器2

1.1.2 嵌入式微控制器2

1.1.3 嵌入式数字信号处理器2

1.1.4 嵌入式片上系统3

1.2 ARM微处理器简介3

1.3 嵌入式操作系统概述4

1.4 搭建嵌入式开发环境5

1.4.1 Ubuntu16.04的安装5

1.4.2 Minicom的安装配置8

1.4.3 Tftp服务的安装配置9

1.4.4 NFS的安装配置10

1.4.5 建立交叉工具链12

1.5 启动目标板系统16

1.5.1 Boot Loader和Kernel16

1.5.2 根文件系统18

1.6 小结19

1.7 习题19

第2章 嵌入式C语言开发流程20

2.1 命令行下的开发流程20

2.1.1 编写代码20

2.1.2 编译程序21

2.1.3 运行程序22

2.1.4 交叉编译22

2.1.5 编写Makefile23

2.2 基于Eclipse的开发流程24

2.2.1 下载和安装Eclipse24

2.2.2 新建工程25

2.2.3 编写代码26

2.2.4 编译工程26

2.2.5 运行程序28

2.3 小结28

2.4 习题28

第3章 Linux操作基础29

3.1 Linux的基本概念29

3.1.1 文件29

3.1.2 目录29

3.1.3 分区31

3.1.4 挂载31

3.1.5 用户系统31

3.1.6 用户权限32

3.1.7 shell32

3.1.8 环境变量33

3.2 Linux的命令行33

3.2.1 执行命令34

3.2.2 参数34

3.2.3 重定向符号34

3.2.4 获取帮助35

3.3 Linux的常用命令36

3.3.1 文件管理36

3.3.2 内容管理39

3.3.3 权限管理40

3.3.4 备份压缩41

3.3.5 系统设置43

3.3.6 进程控制45

3.3.7 网络设置47

3.4 小结48

3.5 习题49

第4章 嵌入式C编程基础50

4.1 C语言概述50

4.1.1 C语言程序的结构50

4.1.2 C语言的语句51

4.1.3 C语言的关键字51

4.1.4 C语言程序设计步骤51

4.2 数据类型52

4.2.1 常量与变量52

4.2.2 整型数据、实型数据52

4.2.3 字符型数据53

4.3 运算符和表达式53

4.3.1 算术运算符53

4.3.2 关系和逻辑运算符53

4.3.3 位操作符54

4.3.4 ?操作符55

4.3.5 表达式的优先级55

4.4 流程控制55

4.4.1 顺序程序设计55

4.4.2 选择结构设计56

4.4.3 循环结构设计57

4.5 函数58

4.5.1 函数定义的一般形式58

4.5.2 函数的参数和函数的值59

4.5.3 函数的调用59

4.5.4 局部变量和全局变量60

4.6 数组、指针61

4.6.1 数组61

4.6.2 指针的基本概念62

4.6.3 指针与数组64

4.6.4 指针与字符串66

4.6.5 指针与函数67

4.6.6 指针其他用法68

4.6.7 动态内存管理68

4.7 小结69

4.8 习题69

第2篇 嵌入式系统基础70

第5章 S3C2440的内部资源70

5.1 S3C2440微处理器70

5.1.1 主要结构70

5.1.2 片内资源70

5.1.3 体系结构71

5.2 S3C2440存储器映射71

5.2.1 bank0总线宽度72

5.2.2 nWAIT引脚的作用73

5.2.3 nXBREQ/nXBACK引脚操作73

5.3 S3C2440内部资源详解73

5.3.1 Cache高速缓存74

5.3.2 时钟和电源管理74

5.3.3 中断控制器75

5.3.4 脉冲带宽调制(PWM)定时器76

5.3.5 实时时钟(RTC)77

5.3.6 通用I/O端口77

5.3.7 LCD控制器77

5.3.8 UART控制器78

5.3.9 A/D转换和触摸屏接口79

5.3.10 看门狗定时器79

5.3.11 IIC总线接口79

5.3.12 AC97音频解码器接口80

5.3.13 USB设备控制器80

5.3.14 SD接口81

5.3.15 SPI接口81

5.3.16 相机接口82

5.3.17 工作电压82

5.4 小结82

5.5 习题82

第6章 ARM微处理器84

6.1 ARM微处理器的结构84

6.1.1 体系结构84

6.1.2 寄存器结构85

6.1.3 指令结构85

6.2 ARM微处理器的选择85

6.2.1 内核的选择85

6.2.2 工作频率的选择85

6.2.3 芯片内存储器的选择86

6.2.4 片内外围电路的选择86

6.3 ARM微处理器的指令集86

6.3.1 ARM微处理器的指令分类和格式86

6.3.2 指令的条件域87

6.3.3 跳转指令88

6.3.4 数据处理指令88

6.3.5 乘法指令与乘加指令92

6.3.6 程序状态寄存器访问指令94

6.3.7 加载/存储指令95

6.3.8 批量数据加载/存储指令97

6.3.9 数据交换指令97

6.3.10 移位指令98

6.3.11 协处理器指令99

6.3.12 异常产生指令100

6.4 ARM微处理器指令的寻址方式101

6.4.1 立即寻址101

6.4.2 寄存器寻址101

6.4.3 寄存器间接寻址101

6.4.4 基址变址寻址102

6.4.5 多寄存器寻址102

6.4.6 相对寻址102

6.4.7 堆栈寻址102

6.5 小结103

6.6 习题103

第7章 ADS集成开发环境104

7.1 命令行开发工具104

7.1.1 使用armcc104

7.1.2 使用armlink106

7.1.3 ARM运行时库106

7.1.4 CodeWarrior集成开发环境107

7.1.5 ADS调试器109

7.2 使用ADS创建工程109

7.2.1 创建新工程109

7.2.2 编译和链接工程112

7.2.3 ARM fromELF工具114

7.2.4 在命令行下编译工程115

7.3 使用AXD调试代码116

7.3.1 打开调试文件116

7.3.2 查看存储器内容117

7.3.3 设置断点118

7.3.4 查看变量值118

7.4 小结119

7.5 习题119

第8章 S3C2440的外部电路120

8.1 核心板电路120

8.1.1 晶振电路120

8.1.2 复位电路120

8.1.3 启动配置电路120

8.1.4 FLASH存储器(内存)121

8.1.5 SDRAM存储器(闪存)123

8.2 底板电路124

8.2.1 电源电路125

8.2.2 串口电路125

8.2.3 USB接口126

8.2.4 以太网接口127

8.2.5 JTAG调试接口127

8.2.6 音频接口128

8.2.7 LCD接口129

8.2.8 SD卡接口129

8.3 小结130

8.4 习题130

第9章 嵌入式Linux文件系统131

9.1 嵌入式文件系统基础131

9.1.1 NOR FLASH存储器131

9.1.2 NAND FLASH存储器132

9.1.3 MTD简介132

9.1.4 日志型文件系统133

9.1.5 BusyBox134

9.2 CramFS文件系统136

9.2.1 CramFS文件系统的特性136

9.2.2 CramFS文件系统映像文件的结构137

9.2.3 CramFS文件系统的工作原理137

9.2.4 CramFS文件系统的初始化过程138

9.2.5 CramFS文件系统的制作139

9.2.6 CramFS文件系统的挂载流程141

9.3 基于RAM的文件系统142

9.3.1 Ramdisk文件系统142

9.3.2 RamFS/TmpFS文件系统143

9.4 嵌入式文件系统的设计145

9.4.1 文件系统格式选择的基本策略145

9.4.2 混合型文件系统格式设计方法145

9.5 小结146

9.6 习题146

第10章 内存和信号量148

10.1 共享内存148

10.1.1 共享内存的定义148

10.1.2 涉及的系统调用148

10.1.3 共享内存举例150

10.2 System V共享内存152

10.2.1 System V共享内存的定义152

10.2.2 System V涉及的系统调用152

10.2.3 System V共享内存举例153

10.3 消息队列154

10.3.1 消息队列的定义154

10.3.2 消息队列涉及的系统调用154

10.3.3 消息队列举例156

10.4 System V信号量158

10.4.1 System V信号量的定义158

10.4.2 System V信号量涉及的系统调用159

10.4.3 System V信号量举例160

10.5 POSIX信号量163

10.5.1 POSIX信号量的定义163

10.5.2 POSIX信号量涉及的系统调用163

10.5.3 POSIX信号量举例164

10.6 小结165

10.7 习题166

第3篇 嵌入式设备驱动与移植167

第11章 设备驱动开发基础167

11.1 Linux设备管理和驱动概述167

11.1.1 Linux设备的分类167

11.1.2 设备驱动程序的作用167

11.1.3 访问设备的实现168

11.1.4 Linux设备控制方式168

11.2 Linux设备驱动开发流程169

11.2.1 构造和运行模块170

11.2.2 字符设备驱动编写171

11.2.3 字符设备驱动示例172

11.2.4 并发控制174

11.2.5 阻塞与非阻塞180

11.2.6 select和poll183

11.2.7 中断处理185

11.2.8 内存与I/O操作187

11.3 块设备驱动编写191

11.3.1 块设备的I/O操作特点191

11.3.2 block_device_operations结构体191

11.3.3 gendisk结构体192

11.3.4 request结构体193

11.3.5 request操作函数196

11.3.6 bio结构体197

11.3.7 注册与注销199

11.3.8 加载与卸载199

11.3.9 打开与释放201

11.3.10 ioctl函数202

11.3.11 I/O请求处理202

11.4 小结206

11.5 习题206

第12章 MiniGUI图形界面设计207

12.1 MiniGUI概述207

12.1.1 MiniGUI的特点207

12.1.2 MiniGUI运行模式208

12.2 MiniGUI的安装和使用208

12.2.1 安装MiniGUI库208

12.2.2 安装MiniGUI的资源209

12.2.3 配置MiniGUI210

12.2.4 编译应用程序例子210

12.2.5 交叉编译MiniGUI库210

12.2.6 交叉编译例程211

12.2.7 QVFB图形引擎211

12.2.8 FrameBuffer图形引擎212

12.3 利用Eclipse编写MiniGUI程序213

12.3.1 建立vacs工程213

12.3.2 配置编译选项214

12.3.3 配置外部工具QVFB214

12.3.4 运行vacs215

12.3.5 调试vacs215

12.4 MiniGUI的编程基础215

12.4.1 头文件217

12.4.2 程序入口217

12.4.3 创建和显示主窗口217

12.4.4 进入消息循环218

12.4.5 窗口过程函数219

12.4.6 屏幕输出219

12.4.7 程序的退出219

12.5 消息循环和窗口过程220

12.5.1 消息处理函数220

12.5.2 重要的消息221

12.5.3 窗口及窗口过程221

12.6 对话框和控件编程223

12.6.1 控件的概念223

12.6.2 预定义控件223

12.6.3 自定义控件225

12.6.4 控件子类化226

12.6.5 对话框和对话框模板227

12.6.6 模态和非模态对话框230

12.7 图形设备接口230

12.7.1 图形设备上下文230

12.7.2 矩形操作和区域操作231

12.7.3 像素值和调色板233

12.7.4 位图操作函数233

12.7.5 字体和文本输出234

12.7.6 绘制图形236

12.8 实例——MiniQQ界面设计238

12.8.1 登录窗口239

12.8.2 好友列表窗口242

12.8.3 聊天窗口246

12.8.4 其他248

12.9 小结248

12.10 习题249

第13章 各类驱动设计和引导程序250

13.1 CAN总线和SJA 1000介绍250

13.1.1 SJA1000寄存器介绍250

13.1.2 SJA1000与S3C2440连接254

13.1.3 SJA1000的驱动程序256

13.2 SD卡驱动266

13.2.1 块设备驱动设计266

13.2.2 SD卡驱动程序分析266

13.2.3 SD卡驱动程序设计266

13.3 网络驱动269

13.3.1 DM9000芯片介绍269

13.3.2 重要数据结构269

13.3.3 网络设备初始化271

13.3.4 激活和关闭网络设备274

13.3.5 中断控制的实现274

13.3.6 发送过程的实现276

13.3.7 接收过程的实现278

13.4 引导程序280

13.4.1 Boot Loader281

13.4.2 vivi简介281

13.4.3 U-Boot简介290

13.5 小结295

13.6 习题295

第14章 内核移植296

14.1 Linux内核结构296

14.2 Linux源码结构298

14.2.1 arch目录298

14.2.2 drivers目录298

14.2.3 fs目录299

14.2.4 其他目录300

14.3 内核编译302

14.3.1 编译准备302

14.3.2 设置Flash分区302

14.3.3 配置内核305

14.4 内核配置选项307

14.4.1 常规设置307

14.4.2 模块和块设备层309

14.5 下载内核309

14.6 内核调试310

14.6.1 内核调试步骤310

14.6.2 常见内核问题311

14.7 小结312

14.8 习题312

第4篇 嵌入式开发实战313

第15章 综合案例——嵌入式B超313

15.1 系统终端的结构设计313

15.1.1 总体结构313

15.1.2 显示控制芯片选型314

15.2 系统终端的软件设计314

15.2.1 U-Boot314

15.2.2 嵌入式Linux移植315

15.2.3 MiniGUI移植315

15.3 FPGA与ARM接口设计318

15.3.1 硬件连接318

15.3.2 FPGA驱动程序设计318

15.4 显示芯片的连接与控制319

15.4.1 选择SM501的原因320

15.4.2 SM501驱动程序设计320

15.5 超声动态图像的实时显示321

15.5.1 图像动态显示322

15.5.2 坐标转换和灰度插值322

15.6 图形界面的结构323

15.6.1 需求分析323

15.6.2 总体结构324

15.6.3 网络通信324

15.6.4 多线程编程325

15.7 操作界面设计326

15.7.1 区域分配326

15.7.2 键盘响应326

15.7.3 控件设计327

15.8 测量模块设计328

15.8.1 椭圆的画法328

15.8.2 椭圆测量周长和面积329

15.8.3 轨迹法测量面积329

15.9 小结330

15.10 习题330

热门推荐