《嵌入式Linux驱动开发教程》| 每日读本书

简介: 高等院校嵌入式人才培养规划教材,全面详细地讲解了Linux设备驱动开发,也可供嵌入式Linux驱动开发人员参考。每日搜罗最具权威专业书籍,更多图书请关注“每日读本书”。

内容提要

《嵌入式Linux驱动开发教程》结合大量实例,在基于ARM Cortex-A9四核处理器Exynos4412的硬件教学平台和PC上,全面详细地讲解了Linux设备驱动开发。主要内容包括开发环境的搭建、内核模块、字符设备驱动框架、高级I/O、中断和时间管理、互斥和同步、内存和DMA、Linux设备模型、外设的驱动实例、总线类设备驱动、块设备驱动、网络设备驱动和内核调试技术。每一个知识点都有一个对应的典型实例,大多数实例既可以在上面说到的嵌入式平台上运行,也可以在PC上运行。另外,《嵌入式Linux驱动开发教程》也引入了新内核的一些新特性,比如高分辨率定时器、针对嵌入式平台的dmaengine和设备树。在需要重点关注的地方还加入了大量的内核源码分析,使读者能够快速并深刻理解Linux设备驱动的开发。

《嵌入式Linux驱动开发教程》可作为大学院校电子、通信、计算机、自动化等专业的嵌入式Linux设备驱动开发课程的教材,也可供嵌入式Linux驱动开发人员参考。

test
华清远见嵌入式学院 姜先刚 刘洪涛 编著 / 2017年6月出版

精彩导读

前言

随着嵌入式及物联网技术地快速发展,ARM处理器已经广泛地应用到了工业控制、智能仪表、汽车电子、医疗电子、军工电子、网络设备、消费类电子、智能终端等领域。而较新的ARM Cortex-A9架构的四核处理器更是由于其优越的性能被广泛应用到了中高端的电子产品市场。比如基于ARM Cortex-A9的三星Exynos4412处理器就被应用在了三星GALAXY Note II智能手机上。

另外,Linux内核由于其高度的稳定性和可裁剪性等特点,被广泛地应用到了嵌入式系统,Android系统就是一个典型的例子。这样,ARM处理器就和Linux操作系统紧密地联系在了一起。所以,基于ARM和Linux的嵌入式系统就得到了快速的发展。

嵌入式系统是一个定制的系统,所以千变万化、形形色色的硬件都必须要有对应的驱动才能使其正常工作,为这些硬件设备编写驱动就是不可避免的了。虽然有很多内核开发人员已经为很多常见的硬件开发了驱动,但是驱动的升级一般都跟不上新硬件的升级。笔者就多次遇到过内核的驱动和同一系列的升级版本芯片不匹配的情况,这时就要改写驱动程序。所以内核层次的底层开发几乎都要和驱动打交道。另外,了解驱动(或者说内核)的一些底层工作原理,也有助于我们写出更稳定、更高效的应用层代码。

为了能够实现这一目标,并促进嵌入式技术的推广,华清远见研发中心自主研发了一套基于Exynos4412处理器的开发板FS4412,并组织编写了本书。本书注重实践、实用,没有用长篇大论来反复强调一些旁枝末节的内容,但是对于会影响理解的部分又非常详细地分析了内核源码,并给出了大量的图示。书中的各个实例虽然为了突出相关的知识重点而简化了对某些问题的讨论,不能称得上工程上严格意义的好驱动,但是确实也具备了对应的设备驱动开发所必需的各方面。实例按照工程上驱动开发的增量式方式来进行,即先有主体再逐渐完善,循序渐进。读者按照实例能够迅速掌握对应驱动的开发精要,对整个驱动的实现也就有了一个清晰的思路。


积跬步以至千里。每天读本书,为您搜罗最具权威专业书籍,更多图书推荐请关注每日读书

好知识需要分享,如您有喜欢的书籍想与广大开发者分享,请在文章下方评论留言,我们将为大家推荐您的爱书!

相关文章
|
3月前
|
Java Linux API
Linux设备驱动开发详解2
Linux设备驱动开发详解
44 6
|
3月前
|
消息中间件 算法 Unix
Linux设备驱动开发详解1
Linux设备驱动开发详解
50 5
|
3月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
102 3
|
3月前
|
Ubuntu NoSQL Linux
Linux内核和驱动
Linux内核和驱动
31 2
|
3月前
|
数据采集 Linux
Linux源码阅读笔记20-PCI设备驱动详解
Linux源码阅读笔记20-PCI设备驱动详解
|
4月前
|
存储 JSON Linux
|
4月前
|
Oracle 关系型数据库 Linux
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
通过这一连串的步骤,可以专业且有效地在Linux下为Qt编译Oracle驱动库 `libqsqloci.so`,使得Qt应用能够通过OCI与Oracle数据库进行交互。这些步骤适用于具备一定Linux和Qt经验的开发者,并且能够为需要使用Qt开发数据库应用的专业人士提供指导。
157 1
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
|
2月前
|
Linux API
Linux里的高精度时间计时器(HPET)驱动 【ChatGPT】
Linux里的高精度时间计时器(HPET)驱动 【ChatGPT】
|
3月前
|
传感器 人工智能 网络协议
:嵌入式 Linux 及其用途
【8月更文挑战第24天】
185 0
|
4月前
|
Ubuntu 算法 Linux
嵌入式Linux的学习误区
**嵌入式Linux学习误区摘要** 1. **过度聚焦桌面Linux** - 许多学习者误将大量时间用于精通桌面Linux系统(如RedHat、Fedora、Ubuntu),认为这是嵌入式Linux开发的基石。 - 实际上,桌面Linux仅作为开发工具和环境,目标不应是成为Linux服务器专家,而应专注于嵌入式开发工具和流程。 2. **盲目阅读Linux内核源码** - 初学者在不了解Linux基本知识时试图直接研读内核源码,这往往导致困惑和挫败感。 - 在具备一定嵌入式Linux开发经验后再有针对性地阅读源码,才能有效提升技能。
下一篇
无影云桌面