linux内核驱动开发pdf(linux内核驱动开发 书籍推荐)

linux内核驱动开发pdf(linux内核驱动开发 书籍推荐)p 本书系统论述了在 Linux 环境下开发嵌入式系统的设计思想 设计方法及开发流程 通过实例与设计项目 帮助读者尽快掌握嵌入式系统的基本概念 提高嵌入式设计技能 本书共 12 章 内容包括嵌入式基础知识 Linux 概述 ARM 体系架构 嵌入式编程 交叉工具链 Bootloader 定制内核 文件系统 驱动程序开发基础 嵌入式图形设计等 本书的最后给出了一个综合实例 p

大家好,我是讯享网,很高兴认识大家。



 <p>本书系统论述了在Linux环境下开发嵌入式系统的设计思想、设计方法及开发流程,通过实例与设计项目,帮助读者尽快掌握嵌入式系统的基本概念,提高嵌入式设计技能。本书共12章,内容包括嵌入式基础知识、Linux概述、ARM体系架构、嵌入式编程、交叉工具链、Bootloader、定制内核、文件系统、驱动程序开发基础、嵌入式图形设计等。本书的最后给出了一个综合实例,帮助读者理解嵌入式Linux的开发方法和技巧。 

讯享网

第1章嵌入式系统基础&nbsp; 1

1.1嵌入式系统&nbsp; 1

1.1.1嵌入式系统的概念&nbsp; 1

1.1.2嵌入式系统的组成&nbsp; 3

1.1.3嵌入式系统的发展&nbsp; 5

1.1.4嵌入式系统的应用前景&nbsp; 8

1.2嵌入式处理器&nbsp; 11

1.2.1嵌入式微控制器(EMCU)&nbsp; 11

1.2.2嵌入式微处理器(EMPU)&nbsp; 12

1.2.3嵌入式数字信号处理器(EDSP)&nbsp; 13

1.2.4嵌入式片上系统(ESOC)&nbsp; 13

1.3嵌入式操作系统&nbsp; 13

1.3.1Linux&nbsp; 15

1.3.2VxWorks&nbsp; 15

1.3.3WinCE&nbsp; 16

1.3.4μC/OS-II&nbsp; 16

1.3.5eCOS&nbsp; 17

1.3.6Android&nbsp; 17

1.3.7iOS&nbsp; 18

1.3.8WP和WindowsRT&nbsp; 18

1.4嵌入式系统设计&nbsp; 18

1.4.1嵌入式系统开发流程&nbsp; 18

1.4.2嵌入式系统开发方法&nbsp; 19

思考与练习&nbsp; 20

第2章Linux基础&nbsp; 22

2.1Linux简介&nbsp; 22

2.1.1Linux的历史&nbsp; 23

2.1.2Linux特点&nbsp; 23

2.1.3Linux与Windows&nbsp; 25

2.1.4Linux的主要组成部分&nbsp; 27

2.1.5Linux的种类和特性&nbsp; 30

2.2图形操作界面&nbsp; 33

2.2.1Linux与图形界面&nbsp; 34

2.2.2KDE&nbsp; 35

2.2.3GNOME&nbsp; 37

2.2.4GNOME与KDE发展趋势&nbsp; 38

2.3Linux的基本命令行操作&nbsp; 39

2.3.1目录操作&nbsp; 40

2.3.2文件操作&nbsp; 46

2.3.3压缩、解压与打包&nbsp; 50

2.3.4磁盘管理&nbsp; 51

2.3.5用户系统&nbsp; 53

2.3.6网络管理&nbsp; 55

2.4Linux内核&nbsp; 58

思考与练习&nbsp; 59

第3章ARM体系架构&nbsp; 60

3.1ARM微处理器简介&nbsp; 60

3.1.1ARM微处理器的发展&nbsp; 60

3.1.2ARM微处理器的特点和应用&nbsp; 61

3.2ARM微处理器系列&nbsp; 62

3.2.1Classic(传统)系列&nbsp; 62

3.2.2Cortex-M系列&nbsp; 63

3.2.3Cortex-R系列&nbsp; 63

3.2.4Cortex-A系列&nbsp; 64

3.2.5Cortex-A50系列&nbsp; 65

3.3ARM编程模型&nbsp; 65

3.3.1ARM硬件架构&nbsp; 65

3.3.2ARM微处理器模式&nbsp; 66

3.3.3ARM寄存器&nbsp; 67

3.3.4异常处理&nbsp; 68

3.3.5ARM的存储器组织&nbsp; 72

3.4ARM指令系统&nbsp; 74

3.4.1ARM指令格式&nbsp; 74

3.4.2ARM指令的寻址方式&nbsp; 75

3.4.3ARM最常用指令和条件后缀&nbsp; 77

3.5ARM微处理器的应用选型&nbsp; 79

思考与练习&nbsp; 80

第4章嵌入式编程&nbsp; 82

4.1ARM汇编语言程序设计&nbsp; 82

4.1.1ARM汇编语言中的程序结构&nbsp; 82

4.1.2ARM汇编语言的语句格式&nbsp; 83

4.1.3基于Linux下GCC的汇编语言程序结构&nbsp; 84

4.1.4基于Windows下ADS的汇编语言程序结构&nbsp; 85

4.1.5ARM汇编器所支持的伪指令&nbsp; 86

4.2ARM汇编与C语言编程&nbsp; 90

4.2.1基本的ATPCS规则&nbsp; 91

4.2.2C语言中内嵌汇编代码&nbsp; 93

4.2.3从汇编程序中访问C程序变量&nbsp; 94

4.2.4在汇编代码中调用C函数&nbsp; 95

4.2.5在C语言代码中调用汇编函数&nbsp; 98

4.3基于Linux的C语言编程&nbsp; 99

4.3.1C语言编程概述&nbsp; 99

4.3.2Linux下的C开发工具&nbsp; 99

4.3.3vim编辑器&nbsp; 100

4.3.4gedit编辑器&nbsp; 106

4.3.5编译器gcc&nbsp; 107

4.3.6调试器gdb&nbsp; 111

4.3.7项目管理器make&nbsp; 114

思考与练习&nbsp; 117

第5章软硬件开发环境&nbsp; 119

5.1硬件环境&nbsp; 119

5.1.1主机硬件环境&nbsp; 119

5.1.2目标板硬件环境&nbsp; 120

5.2Windows软件环境&nbsp; 122

5.2.1超级终端的设置&nbsp; 122

5.2.2DNW的设置&nbsp; 123

5.2.3设置GIVEIO驱动&nbsp; 126

5.3Linux软件环境&nbsp; 128

5.3.1Linux系统的VMware安装&nbsp; 129

5.3.2Windows与Ubuntu双系统安装&nbsp; 135

5.3.3Linux网络服务配置&nbsp; 137

5.3.4配置NFS服务&nbsp; 138

5.3.5配置FTP服务&nbsp; 140

5.4刻录镜像文件&nbsp; 141

5.4.1刻录工具&nbsp; 142

5.4.2使用方法&nbsp; 142

思考与练习&nbsp; 143&nbsp; [2]

第6章交叉编译工具&nbsp; 145

6.1工具链软件&nbsp; 145

6.1.1工具链组成&nbsp; 145

6.1.2构建工具链&nbsp; 146

6.2分步构建交叉编译链&nbsp; 147

6.2.1准备工具&nbsp; 147

6.2.2基本过程&nbsp; 147

6.2.3详细步骤&nbsp; 148

6.3用Crosstool工具构建交叉工具链&nbsp; 155

6.3.1准备工具&nbsp; 155

6.3.2基本过程&nbsp; 155

6.3.3详细步骤&nbsp; 156

6.4使用现成的交叉工具&nbsp; 159

思考与练习&nbsp; 160

第7章Bootloader详解及移植&nbsp; 162

7.1嵌入式Bootloader简介&nbsp; 162

7.1.1Bootloader功能&nbsp; 162


讯享网

7.1.2基于Bootloader软件架构&nbsp; 163

7.1.3Bootloader的操作模式&nbsp; 164

7.1.4Bootloader的依赖性&nbsp; 164

7.1.5Bootloader的启动方式&nbsp; 164

7.1.6Bootloader启动流程&nbsp; 167

7.1.7各种Bootloader&nbsp; 168

7.2Vivi&nbsp; 169

7.2.1Vivi简介&nbsp; 169

7.2.2Vivi体系架构&nbsp; 169

7.2.3Vivi的运行过程分析&nbsp; 170

7.2.4Vivi的配置与编译&nbsp; 183

7.2.5Vivi命令&nbsp; 185

7.3Bootloader程序的调试和刻录&nbsp; 187

思考与练习&nbsp; 188

第8章定制内核移植&nbsp; 189

8.1Linux内核源码组织&nbsp; 189

8.2内核基本配置&nbsp; 191

8.2.1内核配置系统&nbsp; 191

8.2.2Makefile&nbsp; 192

8.2.3具体的配置操作&nbsp; 197

8.2.4添加自己的代码&nbsp; 201

8.3内核定制&nbsp; 204

8.3.1获取源码&nbsp; 204

8.3.2移植过程&nbsp; 205

8.4内核裁剪&nbsp; 212

8.4.1取消虚拟内存的支持&nbsp; 212

8.4.2取消多余的调度器&nbsp; 212

8.4.3取消对旧版本二进制执行文件的支持&nbsp; 213

8.4.4取消不必要的设备的支持&nbsp; 213

8.4.5取消不需要的文件系统的支持&nbsp; 214

思考与练习&nbsp; 214

第9章嵌入式Linux文件系统&nbsp; 216

9.1嵌入式Linux的文件系统&nbsp; 216

9.1.1文件系统结构&nbsp; 216

9.1.2文件系统特性&nbsp; 217

9.1.3系统存储设备及其管理机制&nbsp; 218

9.1.4基于Flash闪存的文件系统&nbsp; 219

9.1.5基于RAM的文件系统&nbsp; 221

9.1.6网络文件系统&nbsp; 222

9.2根文件系统及其定制&nbsp; 223

9.2.1根文件系统架构&nbsp; 223

9.2.2定制工具Busybox&nbsp; 225

9.2.3库文件构建&nbsp; 233

9.2.4设备文件的构建&nbsp; 235

9.2.5根文件系统初始化&nbsp; 236

9.3文件系统的制作&nbsp; 239

9.3.1根文件系统的制作&nbsp; 239

9.3.2NFS文件系统的制作&nbsp; 245

9.3.3Cramfs文件系统的制作&nbsp; 247

9.3.4Yaffs文件系统的制作&nbsp; 249

9.3.5Ramdisk文件系统的制作&nbsp; 250

思考与练习&nbsp; 253

第10章嵌入式Linux驱动程序开发基础&nbsp; 255

10.1嵌入式Linux驱动程序概述&nbsp; 255

10.1.1Linux驱动程序工作原理&nbsp; 255

10.1.2Linux驱动程序功能&nbsp; 257

10.2设备驱动程序的基础知识&nbsp; 257

10.2.1Linux的设备管理机制&nbsp; 257

10.2.2驱动层次结构&nbsp; 261

10.2.3设备驱动程序与外界的接口&nbsp; 262

10.2.4设备驱动程序的特点&nbsp; 262

10.2.5驱动程序开发流程&nbsp; 263&nbsp; [3]

10.3模块编程&nbsp; 263

10.3.1模块与内核&nbsp; 263

10.3.2建立模块文件&nbsp; 264

10.3.3编写makefile&nbsp; 265

10.3.4模块加载&nbsp; 266

10.3.5模块的其他信息&nbsp; 267

10.3.6模块参数&nbsp; 267

10.4字符设备驱动程序&nbsp; 268

10.4.1相关的数据结构&nbsp; 268

10.4.2字符设备驱动程序开发流程&nbsp; 274

10.4.3字符设备驱动程序扩展操作&nbsp; 283

10.5网络设备驱动程序&nbsp; 285

10.5.1基本概念&nbsp; 285

10.5.2网络数据包处理流程&nbsp; 290

思考与练习&nbsp; 292

第11章嵌入式Linux图形设计&nbsp; 294

11.1嵌入式GUI&nbsp; 294

11.1.1嵌入式GUI简介&nbsp; 294

11.1.2嵌入式GUI需求&nbsp; 295

11.1.3嵌入式GUI组成&nbsp; 296

11.1.4Qt/Embedded&nbsp; 297

11.1.5MiniGUI&nbsp; 298

11.1.6MicroWindows&nbsp; 300

11.1.7OpenGUI&nbsp; 302

11.1.8Tiny-X&nbsp; 302

11.1.9各种GUI比较&nbsp; 303

11.2Qt/Embedded开发入门&nbsp; 303

11.2.1Qt/Embedded简介&nbsp; 303

11.2.2Qt/Embedded架构&nbsp; 304

11.2.3Qt的开发环境&nbsp; 306

11.2.4Qt的支撑工具及组件&nbsp; 307

11.2.5Qt/Embedded对象模型&nbsp; 307

11.2.6信号与插槽机制&nbsp; 309

11.2.7Qt/Embedded常用的类&nbsp; 312

11.3安装Qt/Embedded&nbsp; 314

11.3.1配置&nbsp; 314

11.3.2编译&nbsp; 315

11.3.3测试&nbsp; 315

11.4Qt设计实例——密码验证程序&nbsp; 315

11.4.1快速安装QDevelop和QtDesigner&nbsp; 316

11.4.2界面设计&nbsp; 317

11.4.3信号与槽&nbsp; 319

11.4.4添加代码&nbsp; 320

11.4.5编译&nbsp; 323

11.4.6程序测试&nbsp; 324

11.4.7移植&nbsp; 324

思考与练习&nbsp; 325

第12章嵌入式视频监视系统开发实例&nbsp; 327

12.1系统设计背景&nbsp; 327

12.2系统总体设计&nbsp; 328

12.2.1系统总体设计思路&nbsp; 328

12.2.2系统的设计要求及特点&nbsp; 328

12.2.3系统总体架构设计&nbsp; 328

12.3系统详细设计&nbsp; 330

12.3.1系统的硬件设计与调试&nbsp; 330

12.3.2系统的软件设计与调试&nbsp; 333

12.3.3USB数据输入驱动程序移植&nbsp; 341

12.3.4USB摄像头数据输入驱动程序测试&nbsp; 342

12.3.5嵌入式网络视频服务器的设计&nbsp; 343

12.3.6Video4Linux程序设计&nbsp; 344

12.4系统测试&nbsp; 345

12.4.1准备工作&nbsp; 345

12.4.2测试方法&nbsp; 346

12.4.3测试结果&nbsp; 346

小讯
上一篇 2025-05-26 12:36
下一篇 2025-06-02 14:42

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/207011.html