ffxz 发表于 2010-10-30 19:51:55

RT-Thread 0.4.0 Beta1发布倒计时

因为关于0.4.0的分支也有好几个了,这个帖子主要记录下RT-Thread 0.4.0的发布进展。RT-Thread 0.4.0当时提出的两个目标:
- POSIX兼容
- 应用模块加载
现在正渐行渐近。。。

【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。

* newlib移植 -- 接近完成,相应的更改包括:
* 增加devfs,增加/dev/console设备
* 修正device file system中struct stat的问题(兼容于newlib、minilibc、Keil MDK)
* 完成printf, fprintf, dprintf, fdopen, puts, putc, fileno, getenv, putenv, rand等测试
* 在非法的参数情况下malloc测试失败,出现ASSERT
* dirname测试失败 -- CodeSourcery GCC lite中的newlib不支持
* glob测试失败 -- CodeSourcery GCC lite中的newlib不支持
* speed测试失败 -- time调用在s3c2440上未实现
* seekdir测试失败
* sscanf, getc测试失败
* fstat测试通过。
* MIPS分支以能够正常支持newlib以及pthreads。

* POSIX Thread 此部分按照Open Group IEEE Std 1003.1, 2004 Edition标准实现
* 具备比较完整的实现;
* uclibc的7个测试例子全部通过。
* cancel point需要在pthread_cond_timedwait()、pthread_cond_wait()、pthread_join()、pthread_testcancel()中实现。
* 实现了POSIX sem
* 实现了POSIX mqueue

* 应用模块
* 加载、运行OK
* 正在修整模块内存的问题
   * rt_module_realloc还未实现
   * 模块内存的问题基本解决。
* 增加NFS v3,能够执行主机上的应用模块

* device file system完善(这里指的是设备虚拟文件系统,不是devfs)
* 加入设备文件系统devfs,以后能够兼容很多设备操作的应用了。
* 加入了ROMFS,测试完成,好用!
* 加入UFFS移植,移植还未成功

* RT-Thread/GUI完善 (完善部分主要在beta2中进行)
* 加入了Hardware DC,当启用这个DC时,上层应用将极大的直接访问底层硬件,速度同样也会提升。
* 加入了BMP图像格式支持(同样突出了RT-Thread/GUI内存小的概念!)。
* 加入了非等宽字体支持。
* 加入TTF字体支持,但内存空间占用估计比较大,对于unicode的问题还存在些问题。
* 需要修正PNG图像格式,并在STM32上得到支持。
* 需要加入Alpha绘图的支持。
* 需要加入AA绘图算法的支持。
* 需要加入UCDOS中的矢量字体支持。
* 考虑在HDC格式中增加alpha通道支持(HDC格式v2),同时提供相应的转换工具。

* external组件
* wyoujtg完成FTK移植

新的分支:
-- AVR32
-- SEP4020
* 支持kernel + finsh
* 后续更多驱动...
-- Renesas M16C
-- MIPS分支
* Jz4755 -- 完成基本移植,kernel + finsh
* 龙芯SoC3210 -- 完成基本移植,kernel + finsh + RT-Thread/GUI

0.4.0 beta2规划:
* 完善RT-Thread/GUI
* 添加YAFFS2或UFFS之一,并在mini2440和SoC3210上实施;
* 添加完整的Jz4755分支
* 更好的POSIX兼容环境
* ...

lea2005 发表于 2010-10-30 19:59:56

沙发,顶

258963519 发表于 2010-10-30 20:39:40

支持一下,顶一个。很不错的一个系统。

luxinsun 发表于 2010-10-30 22:11:55

支持。等这个消息很久了,终于快要发布了。

zchong 发表于 2010-10-30 22:23:20

SEP4020 仅仅是kernel+finsh 有待完善

migrant 发表于 2010-10-30 22:23:28

非常支持,建议文件系统的性能再改进一下

ljt8015 发表于 2010-10-30 22:39:08

UFFS 适合norflash么?

ffxz 发表于 2010-10-30 23:43:05

回复【4楼】zchong
sep4020 仅仅是kernel+finsh 有待完善
-----------------------------------------------------------------------

努把力,雪夜刀手那边已经有些进展吧,能够稳定下来就好了

eworker 发表于 2010-10-31 18:31:21

支持

goink 发表于 2010-10-31 18:36:50

我是来顶 雪夜刀手 ~~

McuPlayer 发表于 2010-10-31 18:53:56

RTT真的做得很不错,支持

ffxz 发表于 2010-10-31 22:02:26

romfs测试完成,并在romfs目录下有个相应的mkromfs.py文件,如果安装了python 2.5.x(其他版本未试),可以用如下命令行生成相应的只读文件系统:
mkromfs.py romfs romfs.c

第二个参数romfs是目录名,romfs.c是生成的文件名。它会自动生成romfs目录下所有的文件,并保持相应的目录结构。在DFS中使用romfs需要使用如下方式装载:
#ifdef RT_USING_DFS_ROMFS
#include <dfs_romfs.h>
#endif

#if defined(RT_USING_DFS_ROMFS)
    dfs_romfs_init();
    if (dfs_mount(RT_NULL, "/", "rom", 0, &romfs_root) == 0)
    {
      rt_kprintf("Root File System initialized!\n");
    }
    else
      rt_kprintf("Root File System initialzation failed!\n");
#endif

只读文件系统中的文件访问方式和传统的DFS访问文件方式一样,不过只能只读。romfs文件系统同样的,内存占用非常少,几乎无任何RAM占用。

ffxz 发表于 2010-11-10 19:19:39

第一个POSIX thread启动并,主线程与它正常结合:
void* thread(void*arg)
{
if (0) { arg=0; }
pr("(thread created) ");
sleep(1);
pr("(thread exit) ");
return 0;
}

void test_thread() {
pthread_t t;
pr("testing basic thread creation and join... ");
if ((pthread_create(&t,0,thread,0))!=0) _die_("failed...\n");
if (pthread_join(t,0) != 0) _die_("failed... joining thread\n");
pr("OK.\n");
}

void pth_t1()
{
        test_thread();
}
FINSH_FUNCTION_EXPORT(pth_t1, test pthread);

finsh shell命令的输出:
finsh>>pth_t1()
testing basic thread creation and join...
(thread created)
(thread exit)
pthread:pth07 cleanup
OK.

      13, 0x0000000d

gwb721123 发表于 2010-11-11 10:20:13

支持!期待新版本!

itspy 发表于 2010-11-11 10:46:32

顶,越来越强大了

orange2348 发表于 2010-11-11 11:29:17

期待。。。

lugang_2920213 发表于 2010-11-11 22:23:43

期待发布啊

ffxz 发表于 2010-11-17 23:47:07

很晕,

POSIX Thread标准终于基本上都支持了,跑了几个uclibc的pthread测试历程,除了gettimeofday调用有些问题外(还没和RTC设备结合在一起),其他的测试历程都OK了。

qwerttt 发表于 2010-11-18 11:18:31

很激动,很激动

ffxz 发表于 2010-11-20 23:44:52

今天把0.4.x分支的scons building script整个翻修了一遍,还需要解决0.4.x中的一些小bug,然后就可以考虑发布了~~

新的scons building script比以前简单很多,也方便很多。

因为RT-Thread在POSIX标准方面的极大提高,也相应的修改了FTK的一些代码,把原来为RT-Thread定制的代码移除了。

shotstar 发表于 2010-11-21 08:25:36

顶啊 越来越来强大了啊

pqpqppq 发表于 2010-11-21 12:42:32

因为要用Message, 看过message queue初始化改进了。

另外thread.c第75行后, 原来有一句:

        thread->flags = 0;

被删除了, 不知是否有影响?

sxcjsnj 发表于 2010-11-22 08:43:21

回复【7楼】ffxz
回复【4楼】zchong
sep4020 仅仅是kernel+finsh 有待完善
-----------------------------------------------------------------------
努把力,雪夜刀手那边已经有些进展吧,能够稳定下来就好了
-----------------------------------------------------------------------

马上会有新人加入SEP4020的分支维护~~~雪夜已经完成了一部分驱动了

lixun00 发表于 2010-11-22 08:47:55

期待。。。。

ffxz 发表于 2010-11-25 00:12:48

POSIX thread接口测试全部通过了。

gtnr 发表于 2010-11-25 08:26:35

恭喜!

hwdpaley 发表于 2010-11-25 20:01:19

好是,越来越完善了
页: [1]
查看完整版本: RT-Thread 0.4.0 Beta1发布倒计时