Mic_chen

It is not the strongest of the species that survive, nor the most intelligent, but the one most responsive to change

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2020.5.14

经过一个项目基于rt-thread的深入熟悉,对rt-thread的印象总结如下。

不足:

1、千万装机量应该是对最小内核说的,这部分确实还没有发现很严重的问题,但也有些接口异常处理不足。
2、component里面的组建稳定性是不足的,特别是pthread的资源回收,dfs的非常用接口也遇到过好些问题,对posix的支持完善度要求高的话要慎重考虑。

3、ramfs功能不全,不支持目录。

4、自带的jffs2和Linux内核中的有很大的差别,主要是提供给上层调用的封装接口完全不一样,同时对底层的调用接口也不一样,协议层的结构基本一致,和pthread一样,封装层有较大的问题。

5、C++支持不完善,明确不支持多态,具体见相应的readme。

6、动态加载性能、功能偏弱。

7、最小内核在异常处理上也存在不足,到过一个问题,应用设计:子线程主动退出,在父任务中del销毁资源。

     问题原因是idle线程会对僵尸线程(主动退出,而自身调用销毁函数)进行资源回收,但是thread_del接口的异常处理不足,当子线程主动退出,在执行父任务执行del之前,先执行了idle,

     idle里先释放了线程资源,父线程在del时,内部没有判断导致内存访问异常,系统崩溃。

8、minilib对posix支撑不够,使用newlib,因为冲突太多,选用的是裸机配置,对posix接口也存在些不足,选用OS版本会和rtt自身定义的结构体冲突较多,需要对libc进行改造。

 

优点:
1、生态做的不错,开放的心态,有向linux看齐的的感觉,开发过程中需要支持lua脚本,需要支持ini等通过软件包很方便的实现。

2、通用驱动最好对接component中的drivers中的抽象设备层,方便使用生态中的软件包。例如mavell-8801开发包

 

posted on 2020-05-14 15:05  Mic_chen  阅读(1987)  评论(0编辑  收藏  举报