struct device 的zephyr中的地位相当于linux中的 struct file_operations .
在linux中,奉行一切皆文件的思想;而在zephyr中,与linux相似,奉行一切皆设备的思想。
先来看看 struct device 长什么样:
struct device {
/** Name of the device instance */
const char *name;
/** Address of device instance config information */
const void *config;
/** Address of the API structure exposed by the device instance */
const void *api;
/** Address of the common device state */
struct device_state *state;
/** Address of the device instance private data */
void *data;
#if defined(CONFIG_DEVICE_DEPS) || defined(__DOXYGEN__)
/**
* Optional pointer to dependencies associated with the device.
*
* This encodes a sequence of sets of device handles that have some
* relationship to this node. The individual sets are extracted with
* dedicated API, such as device_required_handles_get(). Only available
* if @kconfig{CONFIG_DEVICE_DEPS} is enabled.
*/
Z_DEVICE_DEPS_CONST device_handle_t *deps;
#endif /* CONFIG_DEVICE_DEPS */
#if defined(CONFIG_PM_DEVICE) || defined(__DOXYGEN__)
/**
* Reference to the device PM resources (only available if
* @kconfig{CONFIG_PM_DEVICE} is enabled).
*/
struct pm_device *pm;
#endif
};