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兼容环境
* ... 沙发,顶 支持一下,顶一个。很不错的一个系统。 支持。等这个消息很久了,终于快要发布了。 SEP4020 仅仅是kernel+finsh 有待完善 非常支持,建议文件系统的性能再改进一下 UFFS 适合norflash么? 回复【4楼】zchong
sep4020 仅仅是kernel+finsh 有待完善
-----------------------------------------------------------------------
努把力,雪夜刀手那边已经有些进展吧,能够稳定下来就好了 支持 我是来顶 雪夜刀手 ~~ RTT真的做得很不错,支持 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占用。 第一个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 支持!期待新版本! 顶,越来越强大了 期待。。。 期待发布啊 很晕,
POSIX Thread标准终于基本上都支持了,跑了几个uclibc的pthread测试历程,除了gettimeofday调用有些问题外(还没和RTC设备结合在一起),其他的测试历程都OK了。 很激动,很激动 今天把0.4.x分支的scons building script整个翻修了一遍,还需要解决0.4.x中的一些小bug,然后就可以考虑发布了~~
新的scons building script比以前简单很多,也方便很多。
因为RT-Thread在POSIX标准方面的极大提高,也相应的修改了FTK的一些代码,把原来为RT-Thread定制的代码移除了。 顶啊 越来越来强大了啊 因为要用Message, 看过message queue初始化改进了。
另外thread.c第75行后, 原来有一句:
thread->flags = 0;
被删除了, 不知是否有影响? 回复【7楼】ffxz
回复【4楼】zchong
sep4020 仅仅是kernel+finsh 有待完善
-----------------------------------------------------------------------
努把力,雪夜刀手那边已经有些进展吧,能够稳定下来就好了
-----------------------------------------------------------------------
马上会有新人加入SEP4020的分支维护~~~雪夜已经完成了一部分驱动了 期待。。。。 POSIX thread接口测试全部通过了。 恭喜! 好是,越来越完善了
页:
[1]