嵌入式


设备初始化表

<p><code>device_get_binding</code>从驱动名获取设备。设备时钟打开是在设备初始化函数</p> <pre><code>#define DEVICE_INIT_SECTIONS() \ __device_init_start = .; \ DEVICE_INIT_LEVEL(PRE_KERNEL_1) \ DEVICE_INIT_LEVEL(PRE_KERNEL_2) \ DEVICE_INIT_LEVEL(POST_KERNEL) \ DEVICE_INIT_LEVEL(APPLICATION) \ __device_init_end = .; \ DEVICE_BUSY_BITFIELD() \</code></pre> <pre><code>#define DEVICE_INIT(dev_name, drv_name, init_fn, data, cfg_info, level, prio) \ DEVICE_AND_API_INIT(dev_name, drv_name, init_fn,\ data, cfg_info, level, prio, NULL) #ifndef CONFIG_DEVICE_POWER_MANAGEMENT #define DEVICE_AND_API_INIT(dev_name, drv_name, init_fn, data, cfg_info, \ level, prio, api) \ static struct device_config _CONCAT(__config_, dev_name) __used \ __attribute__((__section__(".devconfig.init"))) = { \ .name = drv_name, .init = (init_fn), \ .config_info = (cfg_info) \ }; \ static Z_DECL_ALIGN(struct device) _CONCAT(__device_, dev_name) __used \ __attribute__((__section__(".init_" #level STRINGIFY(prio)))) = { \ .config = &amp;_CONCAT(__config_, dev_name), \ .driver_api = api, \ .driver_data = data \ } #else #define DEVICE_AND_API_INIT(dev_name, drv_name, init_fn, data, cfg_info, \ level, prio, api) \ DEVICE_DEFINE(dev_name, drv_name, init_fn, \ device_pm_control_nop, data, cfg_info, level, \ prio, api) #endif</code></pre>

页面列表

ITEM_HTML