设备驱动模型
介绍
Zephyr内核支持各种设备驱动程序。驱动程序是否可用取决于电路板和驱动程序。
Zephyr设备模型为系统的一部分配置了一致的驱动程序。该设备模型负责初始化已配置到系统中的所有驱动程序。
每种类型的驱动程序(例如UART、SPI、I2C)都由一个通用类型API支持。
在这个模型中,驱动程序填充指向包含函数结构的指针,在驱动程序初始化期间指向其API函数的指针。这些结构按初始化级别的顺序放入RAM部分。
标准驱动程序
下面列出了所有支持的板配置上的设备驱动程序。
中断控制器:这个设备驱动程序由内核的中断管理子系统使用。
计时器:这个设备驱动程序被内核的系统时钟和硬件时钟子系统使用。
串行通信:这个设备驱动程序被内核的系统控制台子系统使用。
熵:该设备驱动程序为随机数生成器子系统提供了一个熵数源。
重要的
对随机值使用随机API函数。熵函数不应该直接用作随机数生成器源,因为一些硬件实现被设计为随机数生成器的熵种子源,并且不会提供加密安全的随机数流。
同步调用
Zephyr为多块电路板提供了一组设备驱动程序。每个驱动程序都应该支持基于中断的实现,而不是轮询,除非特定的硬件不提供任何中断。
通过设备特定的api访问的高级调用,如i2c.h
或spi.h
,通常是同步的。因此,这些调用应该被阻塞。