zephyr设备驱动程序模型

电子说

1.4w人已加入

描述

驱动程序

 

驱动程序

 

1:Zephyr 内核支持多种设备驱动程序。驱动程序是否可用取决于board 和驱动程序。


Zephyr 设备模型为配置作为系统一部分的驱动程序提供了一致的设备模型。设备型号负责初始化配置到系统中的所有驱动程序。


每种类型的驱动程序(例如 UART、SPI、I2C)都由通用类型 API 支持。


在此模型中,驱动程序在驱动程序初始化期间填充指向包含指向其 API 函数的函数指针的结构的指针。这些结构按初始化级别顺序放入 RAM 部分。
 

2:标准驱动程序

下面列出了所有受支持的板配置上存在的设备驱动程序。

中断控制器 :此设备驱动程序由内核的中断管理子系统使用。

定时器 :此设备驱动程序由内核的系统时钟和硬件时钟子系统使用。

串行通信 :此设备驱动程序由内核的系统控制台子系统使用。

Entropy: This device driver provides a source of entropy numbers for the random number generator subsystem.(此设备驱动程序为随机数生成器子系统提供熵数源,对随机值使用随机 API 函数 。 熵函数不应直接用作随机数生成器源,因为某些硬件实现被设计为随机数生成器的熵种子源,并且不会提供加密安全的随机数流)

3:同步调用

Zephyr 为多个板提供了一组设备驱动程序。每个驱动程序都应支持基于中断的实现,而不是轮询,除非特定硬件不提供任何中断。


通过特定于设备的 API 访问的高级调用,例如 i2c.h 或 spi.h,通常用作同步。因此,这些调用应该被阻止。

驱动API/device.h 为设备驱动程序提供了以下 API。这些 API 仅用于设备驱动程序,不应在应用程序中使用。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分