IO设备管理层的对象接口一般调用流程如下
rt_device_find->rt_device_open->rt_device_read->rt_device_write->rt_device_close

再加上各个设备特有使用方法。参见官方文档查看各个设备的是使用方法。

rt_device_find(name)是在对象容器里根据注册时的名字查找到设备对象的rtt基类的指针。如果驱动层的类定义是按照oopc定义的方式(父类一直放到结构体首位)那么此指针也即是驱动层注册时类对象的指针。

rt_device_open做的事是把rt_device_find找到的指针转成设备基类的指针,然后调用设备基类规定的open方法——这个是设备驱动框架层的各个类重写的方法,每个类不一样,然后设备驱动层的各类重写的这个open函数里又会调用它们各自对子类定义的方法,这些方法是设备驱动层(各bsp)实现的方法,这些方法不同bsp实现不同。

反正注册时注册的函数在io设备管理接口最上层的接口调用会层层的从设备驱动框架层到设备驱动层注册的父类方法。

03-24 17:49