RT-Thread 0.4.0 beta1发布

shaolin   2010-12-1 06:46 楼主

自RT-Thread 0.3.0正式版发布以来,经过开发人员密集的整8个月开发,大众用户的积极反馈、测试,终于完成了RT-Thread 0.4.x系列的第一个测试版本。这个测试版本,依然更多的面向测试目的,不建议直接应用到实际的产品中。RT-Thread 0.4.0的非正式版本依然沿用GPL v2许可证进行发布。

RT-Thread 0.4.0版本初始提出的几个功能亦基本达到,提供了相对完善的POSIX thread接口,动态库载入接口libdl以及应用模块支持。这些新功能的加入使得RT-Thread能够初步的兼容于POSIX标准。

自RT-Thread 0.3.0版本以来的更改:
内核:

  • 添加应用模块支持;支持两者应用方式:.mo 符号预解析应用;.so 符号未解析应用。.so应用需要在加载时动态解析符号。能够执行本地文件系统的应用模块,也能够执行网络文件系统上的应用模块。
  • 修正在rt_realloc参数中传入一个NULL指针时,分配失败的问题。修正slab管理器中对0xffffffff尺寸内存分配的问题;
  • 修正OS节拍数溢出的问题。(charlie weng提供相应的patch)
  • 块设备中读写偏移、大小等都更改成按块为单位;
  • 更改rt_device中成员private名为user_data;
  • 线程TCB中添加cleanup域,它将在线程运行结束时回调。

组件:

  • 添加newlib移植,当前仅能够支持GNU GCC编译环境;
    • 添加POSIX thread兼容接口(支持barrier,cond,mutex,rwlock,spin,tls等),采用IEEE Std 1003.1, 2004 Edition为参考进行实现;
  • 添加libdl兼容接口,能够使用dlopen,dlsym,dlclose等接口动态加载库;
  • 文件系统完善
    • 对设备虚拟文件系统代码部分进行调整,精简;
    • 修正device file system中struct stat的问题(能够兼容于newlib、minilibc、Keil MDK)
    • 修正dfs_filesystem_lookup函数中空项操作的问题;
    • 增加fstat接口;文件系统实现中增加mkfs,statfs接口以获得文件系统相关的信息。
    • 添加romfs文件系统,可以采用mkromfs.py脚本生成相应的ROM文件系统;
    • 添加devfs文件系统,增加/dev/console设备,它是一个虚拟设备,用于标准输入、输出、错误等;
    • 添加NFS v3客户端文件系统,可以配合FreeNFS/Linux NFS使用,以访问主机上的目录和文件;
    • elm fat文件系统
      • 添加非512扇区的宏定义;
      • 添加卸载的功能。
      • 修正重命名的问题;
  • RT-Thread/GUI
    • 增加bmp图像格式支持;
    • 原来的hardware dc更改为client dc;重写新的hardware dc,新的hardware dc绘图速度会更快。
    • 加入了非等宽字体支持。
    • 加入TTF字体支持,但内存空间占用估计比较大,对于unicode的问题还存在些问题。
    • 修正filelist_view控件析构的问题。
    • 对DC操作进行调整完善 (由richard lion完成)

分支:

  • STM3210
    • 完善SDIO驱动,并提供超过4G卡的支持;
  • mini2440
    • 能够使用0.4.0分支上所有的特性,能够开启newlib支持,能够开启POSIX thread支持,能够开启libdl支持。
  • 增加LPC的ARM Cortex-M0/3系列移植分支;
  • 增加新唐的ARM Cortex-M0 NU1xx分支;
  • 增加龙芯I SoC3210分支(MIPS 32位体系结构)

<其他分支,例如avr32,瑞萨m16,SEP4020等分支,由于分支维护人来不及准备,此次发布未包括在内,可以自行从RT-Thread的google svn中获取>

移植的组件:

  •   wyoujtg完成国内知名的开源项目FTK移植。FTK是一套极为绚丽,完整的GUI系统。

 

RT-Thread 0.4.0 在线API文档:这里

RT-Thread 0.4.0 Beta1下载:rt-thread-0.4.0 beta1

【RT-Thread 0.4.x分支的额外说明】似乎很多人误以为0.4.x分支是面向资源丰富的平台,不太适合类似STM32这样的CM3平台。这里要说的是,0.4.x分支绝大部分是兼容0.3.x分支,并且也非常适合于STM32等面向微控制器的硬件平台。例如POSIX thread部分,它能够运行于STM32平台,如果使用Code Sourcery GCC工具链,同样能够支持其中的newlib C库。这部分同样对内存的需求非常少,并且后续会移植到其他编译环境下。0.4.x分支一些特性不适合于微控制器的包括:

  • 应用模块加载。
  • FTK GUI。

对于Cortex-M3等平台,我们目前也在对 应用模块特性 进行评估,看看从技术上是否能够从另外的途径解决动态运行速度慢的问题。

回复评论 (11)

呵呵  恭喜一下 辛苦啦
加油!在电子行业默默贡献自己的力量!:)
点赞  2010-12-1 08:09

昨晚赶到11点多钟,总算把RT-Thread 0.4.0 beta1发布出去了,真累,超级累!!!估计shaolin那边也差不多,这次发布,他那边也分担了不少的工作。

不过也欣喜的看到RT-Thread初步达到了当时设计的目标,剩下来的就是稳定和RT-Thread/GUI优化了。RT-Thread 0.4.0是一个相当鼓舞人心的版本,因为它已经着手初步的POSIX标准兼容,并且实现了完整的POSIX thread标准接口,也能够通过应用模块加载用户应用。。。算是开始慢慢脱离传统的RTOS之路。
RT-Thread:启动下一代RTOS演化
点赞  2010-12-1 12:25
恭喜
动手创造个性自我 https://home.eeworld.com.cn/?95709
点赞  2010-12-1 13:19

  很高兴能够见证RT-Thread又向前迈出了一大步!!

 

 

点赞  2010-12-1 18:49
恭喜啊,这段时间也知道shaolin忙,也没有打搅他
点赞  2010-12-2 10:53

恩,你那边收音机进展如何,顺利吗?

点赞  2010-12-3 08:36
这个要顶!!!
最近潜水关注了rt-thread,对它也越来越有信心了,等忙过这阵,我来把它porting到freescale coldfire架构上,如果还有时间再porting到powerpc上
Nicrosystem专业提供freescale、TI和STM32高性价比开发板、解决方案 http://nicrosystem.taobao.com
点赞  2010-12-3 10:40

回复 8楼 bluehacker 的帖子

好啊,非常欢迎
点赞  2010-12-3 20:55
这个要顶的!期待RT-Thread支持越来越多的设备,发展得越来越完善。
点赞  2010-12-6 14:50
哈哈,支持支持,如果可能,会用到产品中试试 目前产品中用的UCOS
点赞  2010-12-24 17:11
这个得顶啊
点赞  2010-12-25 21:16
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复