驱动设备管理

  • 设备管理作用
  • 设备管理接口使用
  • 设备管理实现

设备管理作用

一个操作系统往往集成很多设备的驱动,比如led灯,按键,PWM,ADC,SD等等设备。如何管理
这些设备,使得应用层可以使用统一的方式去操作这些设备,类似linux操作所有设备当做操作
文件的方式,FOS也是这种方式,用户可以在驱动层去定义open,read,write,iocontrol,close
等接口,在应用层去做对应的设备操作。

设备管理接口使用

驱动层
定义设备操作接口,初始化operation结构体
用户层
调用接口

int device_open(DEVICE * device, char * name, U8 flag);
int device_read(DEVICE * device, char * buff, U8 size);
int device_write(DEVICE * device, char * buff, U8 size);
int device_ioctrl(DEVICE * device, U8 cmd, void *arg);
int device_close(DEVICE * device);

设备管理实现

typedef struct OPERATIONS_STR {
    int (*open) (char *arg, U8 flag);
    int (*read) (char * buff, U8 size);
    int (*write) (char * buff, U8 size);
    int (*ioctrl) (U8 cmd, void *arg);
    int (*close) ();
} OPERATIONS;

typedef struct DEVICE_STR {
    LIST list;
    BOOL enable;
    const char *name;
    OPERATIONS *ops;
    U8 open_count;
    U8 flag;
} DEVICE;

这两个结构体是整个设备管理的核心, OPERATIONS_STR 是设备操作的方式, DEVICE_STR是具体的设备,
每个设备都会被加入设备链表,在链表里面实现设备的增删查改。

device code

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值