1,hal层是通过hw_get_module被其他模块调用的
2,三个关键结构体分别是hw_module_t,hw_device_t,hw_module_methods_t
3,hal模块的入口地址HAL_MODULE_INFO_SYM变量==================================================
1. I2C Core
2. I2C bus driver
3. I2C device driver
==================================================
工作队列(work queue )是另外一种将工作推后执行的形式利用系统共享的工作队列添加工作:(创建自己的工作队列并添加工作)
第一步:声明或编写一个工作处理函数
第二步:创建一个工作结构体变量,并将处理函数和参数的入口地址赋给这个工作结构体变量
第三步:将工作结构体变量添加入系统的共享工作队列
schedule_work(&my_work); //添加入队列的工作完成后会自动从队列中删除
my_work马上就会被调度,一旦其所在的处理器上的工作者线程被唤醒,它就会被执行。