首页>>论坛 >>技术社区 >>STM32社区ST MCU技术论坛 >>STM32
|
我要发帖  | 我要投票  | 我要回复  | 收藏

开放源码的STM32实时操作系统RT-Thread [最新实作:软解mp3播放]

开放源码的STM32实时操作系统RT-Thread [最新实作:软解mp3播放]
 

这是一款由国内RT-Thread工作室开发的开源实时操作系统,目前针对STM32F103VB发布了最新的0.3.0 beta2版本,新增支持多串口驱动(中断读,DMA读写)。RT-Thread/STM32F103VB 0.3.0 beta2代码见附件中。

RT-Thread与ucos相比较:
任务管理及调度:
RT-Thread 32/256可选优先级抢占式调度,线程数不限,相同优先级线程时间片轮转调度;支持动态创建/销毁线程
ucos 256优先级抢占式调度,不允许相同优先级任务存在

同步/通信机制:
RT-Thread 支持semaphore, mutex, mailbox, message queue,  event。mailbox可存储多条消息,任务等待可按优先级进行排队。
ucos semaphore,mutex, mailbox, message queue, event。mailbox只能存放1条消息

内存管理:
RT-Thread 固定分区内存管理,小内存系统动态内存管理,大内存系统SLAB内存管理
ucos 固定大小内存块管理

定时器:
RT-Thread 挂接到系统OS定时器的硬定时器
ucos 只能使用OSTimeDly进行时间间隔处理

中断嵌套:
RT-Thread 允许
ucos 允许

源码许可证:
RT-Thread GPL + 可用于商业产品(只需要注明使用了RT-Thread)
ucos 商业收费

体积(典型配置,ARM7TDMI):
RT-Thread 8k ROM, 2K RAM
(RT-Thread/STM32由于包含完整的STM32固件,所以体积大些)


RT-Thread主要支持的平台:
AT91SAM7S/7X
STM32
S3C2410

欢迎访问www.rt-thread.org的官方网站了解RT-Thread更多的信息。

 

---- 20090513更新:

针对STM32F103ZE版本的已经发布(0.3.0 beta1),请到官方网站下载。

---- 20090716更新:

后续已有数个版本发布,请到官方网站下载。目前已有数家公司采用RT-Thread做为他们产品的OS平台(内核、文件系统、TCP/IP协议栈),稳定性非常好,很少有bug报告,也算是RT-Thread应用的奇迹了。

[最后修改于2009-08-17 20:22]
附件:请先登陆查看附件!
 
相关主题
RT-Thread:启动下一代RTOS的演化 http://www.rt-thread.org
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
这么好啊
 
不要问我是谁,也别要求我一成不变!~
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
没有人用这个?!
 
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
顶~~很早了解过一些,这次有针对STM32的,下来试试看
 
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
看看,学习下,谢谢!
 
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
不知可靠性怎样?要实际使用了才知道。
 
回复 链接 收藏
 
回复:开发源代码的STM32实时操作系统RT-Thread
 
引用第 6 楼 luckzhao于2009-04-20 16:22:20发表:
不知可靠性怎样?要实际使用了才知道。
 

有使用才有稳定,内核方面来说是非常稳定的,在多个系统上运行都没问题,长时间运行也没问题。STM32的分支还比较年轻,但我们一直在努力。

 

问问大家,大家一般在NandFlash上用什么文件系统?我手上的STM32开发板是带NandFlash的,在考虑上文件系统的事,如果直接上FAT担心并不是太合适。

 

[最后修改于2009-04-21 06:45]
 
RT-Thread:启动下一代RTOS的演化 http://www.rt-thread.org
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
不错,学西一下。看看才知
 
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
针对STM32的,下来试试看
 
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
学习~~下来试试看
 
www.uuchip.cn 悠悠电子
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
没有人用这个?!
 
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
好东西... 刚来就给我看到了
 
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
RE:开发源代码的STM32实时操作系统RT-Thread
厉害,这么好的东西
 
Okay? Ok!
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
又机会学习学习
 
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
RT-Thread/STM32F103ZE的文件系统已经弄好了,有需要的请留下信箱。
这个版本还是老样子,基于RealView MDK,FAT16/32文件系统,还不支持长文件名,带cache算法,文件访问速度会比较理想。
RT-Thread/STM32F103VB的版本也会在明后天给出。
 
RT-Thread:启动下一代RTOS的演化 http://www.rt-thread.org
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
看看,跟freertos比怎样?
 
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
和FreeRTOS相比,核心实现的功能是差不多的

如果扩展开一些,RT-Thread开发中的版本能够支持动态模块加载,虚拟文件系统,GUI。这些是FreeRTOS所不具备的,但RTOS本身就是一个可定制非常高的系统,所以虽然RT-Thread外围有一些组件,但并不一定就非得使用。
 
RT-Thread:启动下一代RTOS的演化 http://www.rt-thread.org
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
转的别人的ucos vs freertos
==========================
FreeRTOS 和uC/OS-II的简单比较
http://www.stmfans.com/bbs/viewthread.php?tid=2512&highlight=freertos
这是两种RTOS, 现在粗略比较一下。
freeRTOS比uCOS II优胜的地方:
1。内核ROM和耗费RAM都比uCOS 小,特别是RAM。 这在单片机里面是稀缺资源,uCOS至少要5K以上, 而freeOS用2~3K也可以跑的很好。
2。freeRTOS 可以用协程(Co-routine),减少RAM消耗(共用STACK)。uCOS只能用任务(TASK,每个任务有一个独立的STACK)。
3。freeRTOS 可以有优先度一样的任务,这些任务是按时间片来轮流处理,uCOSII 每个任务都只有一个独一无二的优先级。因此,理论上讲,freeRTOS 可以管理超过64个任务,而uCOS只能管理64个。
4。freeRTOS 是在商业上免费应用。uCOS在商业上的应用是要付钱的。
freeRTOS 不如uCOS的地方:
1。比uSOS简单,任务间通讯freeRTOS只支持Queque, Semaphores, Mutex。 uCOS除这些外,还支持Flag, MailBox.
2。uCOS的支持比freeRTOS 多。除操作系统外,freeRTOS只支持TCPIP, uCOS则有大量外延支持,比如FS, USB, GUI, CAN等的支持
3。uCOS可靠性更高,而且耐优化,freeRTOS 在我设置成中等优化的时候,就会出问题。
 
RT-Thread:启动下一代RTOS的演化 http://www.rt-thread.org
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
我以前写的比较说明:
===================
对FreeRTOS一直不是太了解,看到这份帖子,正好也可以比较下RT-Thread的情况:

接上面的文章,
1、RAM,ROM情况
RT-Thread,最小型配置,~ 8K ROM,~ 3K RAM
但32位以外的单片机没试过,不知道是否还有可优化的地方

2、RT-Thread只能使用线程方式的任务,需要为每个不同的线程开辟相应的栈空间,一个线程的控制块代价是128字节

3、RT-Thread也能够使用优先级相同的线程,优先级相同的线程按照时间片轮转进行调度

4、RT-Thread同样是免费的,并在0.2.4版本以后提供免费的技术支持(仅包括内核、移植、相关的组件)!

文中说的不如的地方,
1、RT-Thread提供完整的任务间通信机制,semaphore,mutex,mailbox,message queue,event(类似ucos中的flag)
和商业实时操作系统NucluesPlus相比,缺少pipe、signal的支持。也缺少NucluesPlus中的HISR支持。

2、RT-Thread目前只能提供有限的组件支持,0.2.4版包括TCP/IP和finsh shell。0.3.0版中包括 filesystem和GUI --> 下一步0.3.0马上就要开始进入beta发布周期了,文件系统和GUI的代码也很快逐步和大家见面。动态模块加载应该也是在0.3.x系列版本中和大家见面。

3、RT-Thread的可靠性显然还没ucos高,但用得多了可靠性也会慢慢提升上去,报出了的bug我们会及时修正。
 
RT-Thread:启动下一代RTOS的演化 http://www.rt-thread.org
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
ffxz,你是参与RT-Thread设计的吗?呵呵,能否将你移植到STM32上的代码发一份给我呢?就是对NANDFLASH的文件系统那个。谢谢哈,还有有RT-Thread的简介呀什么的,看你说得哪么好,也想看看。qinshi198612@163.com
 
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
RT-Thread和NucleusPlus的比较
任务调度
NU+ 全抢占式调度,256优先级,相同优先级时间片轮转调度,隐含idle任务,能动态创建/删除任务
RTT 全抢占式调度,256优先级,相同优先级时间片轮转调度,显式idle任务(因为是显式的,需要分配一些栈空间),能动态创建/删除任务(应该说更为彻底,栈空间和TCB占用空间都会被自动释放)
内存管理
NU+ 支持分区内存管理
RTT 支持静态内存池管理
这个实质上是一个东西,不同的实现罢了
NU+ 支持动态内存管理,如本篇文章开始所说,它的算法是很有缺陷的!
RTT 支持小内存管理及大内存SLAB算法管理
任务间通信
邮箱
NU+ 16字节固定大小信件支持,发送操作带SUSPEND标识(及如果邮箱中已经有邮件,调用线程会被挂起)
RTT 4字节固定大小信件支持,信件多少由创建时决定
队列
NU+ 4字节对齐不固定大小消息支持,发送操作带SUSPEND标识(及如果队列已满,调用线程会被挂起)
RTT 非对齐、不固定大小消息支持
管道
NU+ 非对齐、不固定大小消息支持,发送操作带SUSPEND标识(及如果队列已满,调用线程会被挂起)
RTT 无
信号量
NU+ 优先级翻转支持(?有些不确定)
RTT 无优先级翻转保护
Mutex
NU+ 无
RTT 优先级继承方式以防止优先级翻转的情况发生
Event
NU+ 支持
RTT 支持
Signal
NU+ 支持(也称为异步事件)
RTT 无
HISR
这个是NucleusPlus中比较特殊的一种机制,在NU+中,中断服务例程(NU+称之为LISR)是基本不允许使用OS的组件,而是激活一个HISR 作为代理来处理。HISR是不允许被阻塞(允许被另一个更高优先级的HISR抢占或被LISR打断),但可以发送一些消息或事件给其他任务。
RT- Thread中相对应的,在中断服务例程中允许使用OS中一些非阻塞的调用,同样它也不会被阻塞。如果要实现类似NU+的HISR,也可以在系统中创建一些超高优先级的线程,例如优先级为0 - 8的线程,那么在中断服务例程中发生消息或事件过去,在离开中断服务例程后肯定会执行到这些高优先级的线程。当然这个会有些伪,因为它们依然是允许被阻塞的。
 
RT-Thread:启动下一代RTOS的演化 http://www.rt-thread.org
回复 链接 收藏
 
回复:开发源代码的STM32实时操作系统RT-Thread
 
引用第 20 楼 qinshi1208于2009-04-30 01:01:08发表:
ffxz,你是参与RT-Thread设计的吗?呵呵,能否将你移植到STM32上的代码发一份给我呢?就是对NANDFLASH的文件系统那个。谢谢哈,还有有RT-Thread的简介呀什么的,看你说得哪么好,也想看看。qinshi198612@163.com
 

我没说过我已经完成了NandFlash文件系统的开发啊,我上面提问问大家一般在NandFlash上用什么文件系统,但没人回答我。我们是计划移植YAFFS2到RT-Thread中,因为RT-Thread中包含了虚拟文件系统层,它就类似于Linux一样可以让多种不同介质上的多种不同文件系统和平相处。

 

另外如果移植YAFFS2,20k SRAM的STM32肯定是跑不起来的,至少需要64k SRAM的STM3F103Z系列。不过既然有了NandFlash,也应该是Z系列了,20k SRAM的STM32还没外接的接口。

 

RT-Thread的大本营在http://www.rt-thread.org 您可以在上面获得更多的资料文档。

[最后修改于2009-04-30 09:08]
 
RT-Thread:启动下一代RTOS的演化 http://www.rt-thread.org
回复 链接 收藏
 
RE:开发源代码的STM32实时操作系统RT-Thread
 
收一个来试试再说
 
回复 链接 收藏
 
RE:开放源码的STM32实时操作系统RT-Thread
 
看看再说,支持国产!!
 
回复 链接 收藏
 
RE:开放源码的STM32实时操作系统RT-Thread
 
好下载下来看一看.
 
回复 链接 收藏
 
我要发帖  | 我要投票  | 我要回复  | 收藏