本文共 1194 字,大约阅读时间需要 3 分钟。
思考:有些通用代码不需要去写,内核可以帮助写出来,我们只需要编写少部分的代码(差异化代码) 目的:(1)修改/编写更少的代码。去兼容更多不同的设备;(2)代码重用,兼容性强,可移植性
struct A{ ...};struct B{ struct A obj; //结构体,对象};//B是A的子类
struct mydriver{ char *name; int irq; int addr; void (*func)(); struct mydriver *next;};
//构建mydriver对象struct mydriver *drv = alloc(...);//设置mydriver对象drv->irq = ...;drv->addr = ...;drv->func = key_func//注册register(mydriver对象);xxx_add(mydriver对象);//定义void key_func(){ ...}
//上层struct mydriver *temp;temp->nametemp->func()//======调用内核核心层接口//核心层:全局变量,链表struct mydriver *head;head->a>b;//======注册到内核核心层//底层struct mydriver a;a.name = "key";a.irq = EINTX;a.func = ...//定义void key_func(){ ...}
转载地址:http://hscrn.baihongyu.com/