关于RTT系统中典型的串口设备注册的方式作为一个例子,弄懂这一种设备的注册方式我觉得很有必要。这里有几个问题请教大家
1、在RTT系统中我们都知道这里用到了面对对象的编程思想,这里使用了一个方式叫子对象继承父类派生,说的很片面,不太理解。下面图1是串口设备框架层文件serial.c,注册过程中肯定是从驱动层一级一级的往顶层注册,最终也肯定会产生一个对象类的结构体,并且这个结构体会与一个名称产生联系,这里比较好奇为什么能够由rt_serial_device这样的结构体找到rt_device这样的结构体,下面我们也看到就是通过一个取(rt_serial_device类型中parent)的地址就能够得到其父类的地址,决定很神奇,这到底是一种什么思想和编程技巧?
2、其实图2中也是使用了差不多的方式去查找其父类,这种思想请大神帮我解答下,谢谢了。
3、另外可以看图4中,这里不是注册设备,而是使用设备,就和上面的注册相反,这里是使用结构体的强制转换,就能够从一个结构体的父类派生处其子类,这里也是一种转换思想,具体怎么实现的,请帮忙解答下。
图1
图2
图3
图4