xinn2000 发表于 2014-8-11 11:51:59

rtt下的I/O设备管理分析(原创)

这几天研究rtt,感觉有很多与其他嵌入系统不一样的地方。
这次说的是I/O设备管理。
-------------------------------------------
ucos没有统一的I/O设备管理,如果使用一个设备,一般就是先进行设备初始化,并建立接口函数,然后建立一个线程或者中断函数使用这个驱动。
rtt则完全不一样,rtt模拟linux,使用了一套简单,但却很有效的I/O设备管理机制。
其思路,首先是对设备初始化,建立标准的驱动接口函数,
然后将这个接口函数用rtt的注册机制,注册到rtt的设备列表里面。
最后通过标准的接口函数进行调用。
基本上跟linux的思路差不多,但相对来说要简单,可以说是一个mini版。
这么做有什么优点呢,首先,将应用层和驱动层完全独立了出来,这就意味着,当下层硬件更换的时候,应用层几乎不用做什么修改就可以完成。
在ucos的下面,驱动与应用耦合很紧,当驱动发生变化的时候,应用层随着进行的修改会增加很多的不可预测性,这种不可预测性,甚至会降低了整个系统的可靠性;
而rtt的这种模式却好了很多,因为应用层与驱动通讯之间,是通过设备管理层统一管理的,一旦出现了问题,rtt的设备管理系统自身将会尽量避免更严重的问题发生。
-------------------------------------------
rtt的I/O设备管理使用方法。
帮助文档说的比较清楚了。
首先将已有的设备驱动整合,然后挂钩到一个user的子结构体,然后将这个子结构体挂钩到设备结构体上,然后再对设备结构体上面的其他函数进行简单的补充即可。
使用的时候,先将设备注册到rtt里面,然后通过统一的I/O管理函数进行相应的驱动使用。
--------------------------------------------
对于我们工程设计人员需要做什么?
对于我们工程设计人员来说,其实完全可以按照ucos的那种驱动设计方去设计和使用,rtt也运行这种应用层直接调用驱动的行为。
只是建议在以后的编程过程中,如果有精力自己做,或者是遇到规范的标准I/0设备驱动文件,优先推荐使用。
--------------------------------------------
总而言之,rtt还很年轻,不过其野心很大,有点像当年linux那么大的野心,我们有必要关注这个系统的成长和发展,并在工程项目中试用和使用。

eric2013 发表于 2014-8-11 18:14:17

感谢楼主分享

mculieying 发表于 2014-9-19 16:40:02

zhaxiaobian_ 发表于 2015-2-1 20:09:50

RT-thread I/O设备 不错,好用!!

oldmouth 发表于 2016-1-26 17:33:34

准备支持下RRT!年后马上入手!

小狐狸 发表于 2016-3-19 17:56:42

写的不错,谢谢分享
页: [1]
查看完整版本: rtt下的I/O设备管理分析(原创)