ffxz 发表于 2010-11-30 23:53:13

RT-Thread 0.4.0 beta1发布

自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代码ourdev_601479LTJ3KJ.zip(文件大小:10.95M) (原文件名:rt-thread-0.4.0 beta1.zip)

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

some9009 发表于 2010-11-30 23:57:30

先占位在看,吼吼

ffxz 发表于 2010-12-1 00:12:08

RT-Thread_0.4.0_STM32分支更新说明
                     -- by aozima

1.启动代码及线程切换部分
此部分由汇编语言写成,基本无变化,主要修正设置pendsv中断优先时会覆盖systick优先级的问题.

2.STM32固件库
STM32外设固件库更新至ST官方网站最新版.主要修改包括CMSIS更新为最新版.变量类型定义更加合理.

3.RT-thread外设驱动部分
外设驱动最大的改进主要是块设备驱动的操作单位由原来的字节变成扇区,以满足大容量设备的需求.改进后需要在control函数中获取设备扇区大小和扇区总数.

shuimubai 发表于 2010-12-1 08:21:59

顶起来!

luxinsun 发表于 2010-12-1 08:49:41

很好。怎么没有看到moudbus和usb啊。

zyalxl 发表于 2010-12-1 08:58:57

强烈支持啊!!!!尽快试试看~

liquan1010 发表于 2010-12-1 09:06:52

非常好

gzhuli 发表于 2010-12-1 09:20:41

回复【4楼】luxinsun
很好。怎么没有看到moudbus和usb啊。
-----------------------------------------------------------------------

RT-Thread作为GPL开源软件,尽量不要问“怎么没有xxx”,应该多说“我可以贡献xxx”。 :)

first_blood 发表于 2010-12-1 09:24:23

支持

3466756555 发表于 2010-12-1 09:25:42

compiling startup.c...
startup.c(18): error:#5: cannot open source input file "stm32f10x.h": No such file or directory
compiling board.c...
board.c(18): error:#5: cannot open source input file "stm32f10x.h": No such file or directory
compiling stm32f10x_it.c...
stm32f10x_it.h(30): error:#5: cannot open source input file "stm32f10x.h": No such file or directory
compiling rtc.c...
rtc.c(16): error:#5: cannot open source input file "stm32f10x.h": No such file or directory
compiling usart.c...
..\..\libcpu\arm\stm32\serial.h(22): error:#5: cannot open source input file "stm32f10x.h": No such file or directory

默认的工程有几个路径指的不对 。

ffxz 发表于 2010-12-1 09:58:16

回复【9楼】3466756555
compiling startup.c...
startup.c(18): error:#5: cannot open source input file "stm32f10x.h": no such file or directory
compiling board.c...
board.c(18): error:#5: cannot open source input file "stm32f10x.h": no such file or directory
compiling stm32f10x_it.c...
stm32f10x_it.h(30): error:#5: cannot open source input file "stm32f10x.h": no such file or directory
compiling rtc.c...
rtc.c(16): e......
-----------------------------------------------------------------------

请用这个工程文件,或者在装python 2.5.x,scons,用如下命令行产生新的工程文件:
scons --target=mdk -s

STM3210分支的工程文件ourdev_601501RWGQS7.zip(文件大小:2K) (原文件名:project.zip)

gtnr 发表于 2010-12-1 09:58:46

很好,好好考虑是否可以项目应用了.

lvhaian 发表于 2010-12-1 10:07:16

RT-Thread作为GPL开源软件,尽量不要问“怎么没有xxx”,应该多说“我可以贡献xxx”。 :)

==============================

强顶这句话

tedden 发表于 2010-12-1 10:24:40

支持RT thread,顶起!

itspy 发表于 2010-12-1 10:30:39

好,已经从031换成040beta1
finsh,很好用
version()

\ | /
- RT -   Thread Operating System
/ | \ 0.4.0 build Dec1 2010
2006 - 2009 Copyright by rt-thread team
        0, 0x00000000
finsh>>
finsh>>list_thread()
threadpristatus      sp   stack size max used   left tickerror
-------- ---- ------- ---------- ---------- ---------- ---------- ---
uip      0x0c suspend 0x00000078 0x00000400 0x00000078 0x00000014 000
etx      0x0f suspend 0x00000080 0x00000200 0x00000080 0x0000000f 000
erx      0x0f suspend 0x00000078 0x00000200 0x000000e0 0x00000010 000
tidle    0x1f ready   0x00000058 0x00000100 0x00000058 0x0000001b 000
tshell   0x14 ready   0x00000070 0x00000800 0x00000144 0x00000009 000
        0, 0x00000000
finsh>>
finsh>>list_sem()
semaphore v   suspend thread
----------- --------------
e0      000 0
tx_wait   001 0
shrx      001 0
heap      001 0
        0, 0x00000000
finsh>>

pspike 发表于 2010-12-1 10:48:39

强烈支持,辛苦啦

ffxz 发表于 2010-12-1 10:59:04

回复【14楼】itspy
好,已经从031换成040beta1
finsh,很好用
finsh&gt;&gt;
finsh&gt;&gt;list_thread()
threadpristatus      sp   stack size max used   left tickerror
-------- ---- ------- ---------- ---------- ---------- ---------- ---
uip      0x0c suspend 0x00000078 0x00000400 0x00000078 0x00000014 000
etx      0x0f suspend 0x00000080 0x00000200 0x00000080 0x0000000f 000
erx      0x0f suspend 0x00000078 0x00000200 0x00......
-----------------------------------------------------------------------

给个体积出来吧。编译时的体积,还有list_mem()

qwerttt 发表于 2010-12-1 11:04:47

支持!!!

itspy 发表于 2010-12-1 11:25:14

由于这个工程是兼容原来的LwIP的,给出体积不能很好说明,我给出UIP的本身消耗吧
下面这个是兼容工程的:
    Module            ro codero datarw data                     
    uIPmain.o               344      160
    uip.o               6 040      352   10 053
    uip_arp.o             1 044       12      104
    uip_etharp.o            196
    uip_ethernetif.o      900      208    1 392
    uip_netif.o             180
    uip_pbuf.o               96
    uip_tcpip.o             132
===================================================
    Total:               8932   732   11549(RAM)

另一不同个工程:
    uIPmain.o            412
    uip.o                  5 052      292    2 921
    uip_arp.o             1 064       12      104
    -------------------------------------------------
    Total:                6528      304       3025(RAM)

luxinsun 发表于 2010-12-1 12:09:47

大家误会了,我在以前的帖子上面有看到会在新版本中增加MODBUS和USB这两个组件的。

ffxz 发表于 2010-12-1 12:18:18

modbus仅能从svn中取出,如何使用还不知道,这个模块也无相应的维护人(在考虑着是否应该把它归类到external中去)

usb组件还在开发中,svn上也没有相应的代码。

ljt8015 发表于 2010-12-1 13:18:22

支持两者应用方式:.mo 符号预解析应用;.so 符号未解析应用

这两种应用分别适合应用在什么场合?

ffxz 发表于 2010-12-1 16:14:19

.mo 对应符号解析的应用模块;
.so 对应符号未解析的应用模块;

所以加载.so,需要把符号再解析一遍。而.mo,当内核换了后(哪怕使用到的符号地址更改一点),运行它将会出错。所以,.so通用,.mo加载速度快。

gzhuli 发表于 2010-12-1 16:32:00

回复【19楼】luxinsun
大家误会了,我在以前的帖子上面有看到会在新版本中增加modbus和usb这两个组件的。
-----------------------------------------------------------------------

既然没包含在发布中,要么就是开发的不给力,要么就是用的人少测试不足,所以还是需要大家多多参与啦。

lksat 发表于 2010-12-1 16:44:26

记下来,学习。

ffxz 发表于 2010-12-3 19:36:22

回复【23楼】gzhuli咕唧霖
回复【19楼】luxinsun
大家误会了,我在以前的帖子上面有看到会在新版本中增加modbus和usb这两个组件的。
-----------------------------------------------------------------------
既然没包含在发布中,要么就是开发的不给力,要么就是用的人少测试不足,所以还是需要大家多多参与啦。
-----------------------------------------------------------------------

:-) 对avr32也做做整理吧,争取beta2包含进来

gzhuli 发表于 2010-12-3 23:46:10

回复【25楼】ffxz
:-) 对avr32也做做整理吧,争取beta2包含进来
-----------------------------------------------------------------------

主要是AVR32用的人太少了,我一个人也测不出什么问题,而且硬件太单一,不知道其它平台尤其是高端的A0512兼容性有没有问题。
beta2前通知一下,我再做一个比较完整的测试,争取把新特性都测试一下,起码保证B0256跑起来没问题,好赶上发布吧。 ^_^

对了,最近傻孩子也关注RT-Thread了,可以让他帮忙测试一下啊,他手上平台应该比较齐吧。

wellda 发表于 2010-12-6 11:59:38

真好!

WEEQE1999 发表于 2010-12-7 21:35:41

祝贺!关注中。

linquan315 发表于 2010-12-17 21:11:09

强烈支持,正在课题中使用RT-Thread。

honeybird88 发表于 2011-7-22 15:55:04

我也支持,积极应用与推广

LVmcu 发表于 2014-2-21 09:29:57

RT-Thread有在新塘M0516上移植成功的吗?
页: [1]
查看完整版本: RT-Thread 0.4.0 beta1发布