阅读指南¶
本项目通过git开源:
github仓库地址:https://github.com/Embedfire/embed_linux_tutorial_code_stm32mp1
gitee 仓库地址:https://gitee.com/Embedfire/embed_linux_tutorial_code_stm32mp1
点击右侧链接可在线阅读本项目文档:《 嵌入式Linux驱动开发实战指南——基于STM32MP157开发板 》
本书主要面向有一定Linux基础,希望进阶学习Linux驱动开发的嵌入式软件工程师及在校学生。
目前国内关于嵌入式Linux驱动开发的教材大都比较老旧,要么是基于多年前的ARM9架构CPU,要么是Linux系统内核还沿用2.6版本的, 虽然说Linux驱动架构并不是日新月异的,但是对于较新的技术如设备树、设备树插件等新概念的引入,有此书作为入门参考,能让学习者少弯路。
本书配套的硬件平台采用Cortex-A7/A9等架构的CPU,讲解的Linux内核基于4.19版本, 内容循序渐进,涉及的Linux驱动下常用的框架。希望通过此书,能为学习者建立起Linux驱动开发的一些概念。
本书将分为以下几个部分进行讲解:
第一部分,Linux驱动基础知识,作为Linux驱动开发的初学者, 驱动开发中有许多的概念需要知晓,那么Linux驱动基础知识属于起步部分,让初学者能建立起Linux驱动开发的基本面貌。
第二部分,Linux驱动框架,在掌握了Linux驱动基础知识,相信已经了解Linux驱动开发的基本概念,从这些基本的概念出发, 我们就可以正式地去领略Linux驱动中常见的各种框架,如GPIO子系统、I2C子系统、中断子系统等等, 我们可以从这些驱动框架窥见Linux驱动中,对各种设备的抽象概念、封装形式及友好的开发接口。
第三部分,Linux驱动进阶知识,在Linux驱动基础知识之上,随着设备的性能增强和功能丰富, 我们需要去了解Linux驱动开发中,更需要被关注的一些细节。这部分则带领大家学习Linux驱动中的进阶知识。
第四部分,添加驱动模块,野火为大家提供好了开发板上的众多驱动模块,我们可以直接使用,或者基于此源码进行开发。
本教程使用的开发环境说明如下:
PC系统Windows:默认使用Win10 64位,兼容Win7等系统。在使用NXP的MFG工具烧录时需要使用到Windows系统。
PC系统Linux:Ubuntu18.04 ,强烈建议使用相同的版本。 教程讲解了在Windows上使用VirtualBox虚拟机安装的说明,使用其它虚拟机如VMware安装也可以。