U-Boot 在 2014 年 4 月参考 Linux Kernel 的驱动模型设计并引入了自己的 Driver Model(官方简称 DM) 驱动架构。这个驱动模型(DM)为驱动的定义和访问接口提供了统一的方法,提高了驱动之间的兼容性以及访问的标准性。
文中涉及的代码均放到了我个人的 Github 上:https://github.com/ZCShou/BOARD-STM32F769I-EVAL,大家可以直接拿来边学习边验证,避免眼高手低。 本文中涉及的源码主要是使用 U-Boot-v2022.10
,不同版本源码差异可能较大!!!
配置
DM 架构需要通过配置项 CONFIG_DM=y
来启用,对应的实际外设的驱动则需要通过使能 CONFIG_DM_xxx
来使能。其中,xxx 表示某个具体的外设,例如,启用 CONFIG_DM_SERIAL
则会自动启用 Makefile 中添加对应的源码文件: