rtt设备驱动框架学习-框架

rtt面向对象oopc——3.对官方IO设备模型框架图的补充绘图已学习了,这里再对照补充下。

两个图,官方图和补充图。
rt_device类是属于抽象类,所有子类得实现其特定的方法,这是对子类的约束,比如rt_serial,rt_spi_bus等等,给图,调用rt_decice_register,
看它们都调用设备基类的这个函数来注册。
他们的管理接口就是调用子类重写的方法,为啥不直接调用还要搞个函数?因为如果直接调用,它有些状态呀,限制呀要判断下,如果不封装成函数,调用起来很麻烦。这些函数类似该类的静态方法(c++中)。

然后设备驱动框架层的类(rt_device的子类,比如rt_serial,rt_spi_bus等等)也各有自己的方法,需要继承者(子类)来实现。
同样的这个管理接口函数实质也是调用重写的方法,封装下是为了简单,然后它也是类似该类的静态方法,由设备基类调用这些管理接口函数,然后管理接口函数再调用驱动层重写的该层接口。

再下面是驱动层,bsp在此,编写各个硬件的驱动对接到rtt设备驱动框架层,就是最终的子类对象。

在下面是硬件厂家sdk。
再下面就是硬件了。

好像也没啥好说的了。

你可能感兴趣的:(rt-thread,学习)