发新话题
打印

[内核开发] rt-thread 移植

本主题由 osboy 于 2010-4-9 10:03 移动

rt-thread 移植

国产嵌入式实时操作系统, 开源软件,使用完全免费
, i# k6 p8 k' s7 }! m5 }; h4 _6 V$ }arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,
& Z; J2 r4 c1 m/ P8 }% b4 s8 C% l& v256个优先级,
- A7 E: ]" y0 \$ R/ {# R$ n允许存在相同优先级线程
2 t" H$ U0 W6 f6 Q, Y我们只做简洁、专业的嵌入式开发技术论坛。线程数不限制
6 d6 s( p5 @+ s' f# u# l嵌入式开发联盟允许动态创建/删除线程- 我们只做简洁、实用、专业的嵌入式开发技术论坛。5 z& g& z* X, l. ?/ n$ T
支持优先级反转4 J2 Y" m% ^. p! ]& p" J

1 i9 f3 m) n: f2 I3 [5 G8 Larm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,LwIP协议栈支持
* N5 F/ N2 c& X. ]2 \我们只做简洁、专业的嵌入式开发技术论坛。文件系统支持8 d; [; B% A  m
RTGUIarm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,9 w' g! w! q$ Y6 W  r9 r

$ m) k# n" T4 t* q" z# S. C2 ]www.rt-thread.org
, A* S8 ^2 l" W8 ^! O# q我们只做简洁、专业的嵌入式开发技术论坛。我们只做简洁、专业的嵌入式开发技术论坛。* C2 {. [7 Z: T8 z0 `8 G7 s* K# E
大家有兴趣一起把他移植到W90P710来呀

TOP

一定要顶起,下面是RT-Thread的一些介绍,如果对RT-Thread比较熟悉的话,几个小时可以完成移植工作。- 我们只做简洁、实用、专业的嵌入式开发技术论坛。8 A. o1 G% `) C7 F5 @) l8 O

" h7 f$ y  A6 Q% V+ R$ jarm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,RT-Thread RTOS,这是一款由国内RT-Thread工作室开发的开源实时操作系统。起初RT-Thread是一个实时的内核(全抢占优先级调度,调度器时间复杂度O(1)),但在发展过程中,RT-Thread实时操作系统得到了来自全国嵌入式开发工程师的鼎力支持,为RT-Thread添砖加瓦,现在它已慢慢变成一个完善的、全功能的操作系统:文件系统,网络协议栈,图形界面组件。。。只有您想不到,没有您做不到:RT-Thread是一个平台,您可以把您的创意汇聚在一起,小平台大社区,RT-Thread的开发人员就在您的身边。
8 r! J2 q* {' T+ a! L# D嵌入式开发联盟嵌入式开发联盟7 b' W9 ?3 E9 W0 m, _" t
RT-Thread与ucos比较:
% d# R9 Z+ V$ O, w# L& w7 H- 我们只做简洁、实用、专业的嵌入式开发技术论坛。任务管理及调度:
& m* ?$ C; o, z/ w# c) s& D2 r. T我们只做简洁、专业的嵌入式开发技术论坛。RT-Thread 32/256可选优先级抢占式调度,线程数不限,相同优先级线程时间片轮转调度;支持动态创建/销毁线程
+ g* |0 M1 c4 K' bwww.mcuos.comucos 256优先级抢占式调度,不允许相同优先级任务存在www.mcuos.com( r1 X# s4 Y" _, ]( s
$ U" G. L& b: L9 A: N% C
同步/通信机制:
" p' r0 N! w' P9 M, yRT-Thread 支持semaphore, mutex, mailbox, message queue,  event。mailbox可存储多条消息,任务等待可按优先级进行排队。* y4 l2 r% D. E% _
ucos semaphore,mutex, mailbox, message queue, event。mailbox只能存放1条消息
3 s; H& P: D0 w' a0 \1 Iarm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,- 我们只做简洁、实用、专业的嵌入式开发技术论坛。3 \* h5 e7 U" j0 I; n
内存管理:arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,& K6 V3 A8 u/ V8 r+ T
RT-Thread 固定分区内存管理,小内存系统动态内存管理,大内存系统SLAB内存管理
( ]0 e0 a! [" z5 O8 uucos 固定大小内存块管理嵌入式开发联盟# {1 J3 B: A$ X5 ?  o: d3 x
- 我们只做简洁、实用、专业的嵌入式开发技术论坛。% j' O- B- k- k. O' A' S7 Y+ Y
定时器:www.mcuos.com& T; u7 q8 C% _2 g% ], @. I+ b7 s
RT-Thread 挂接到系统OS定时器的硬定时器
) M5 h# C7 `/ _' j/ n6 Xucos 只能使用OSTimeDly进行时间间隔处理
" \, |1 m' e( C% U3 o% s( e' q0 swww.mcuos.com
5 M  Y/ a# J6 y- I" t0 l! K2 x嵌入式开发联盟中断嵌套:
$ L0 ]# c' l9 Z$ H- 我们只做简洁、实用、专业的嵌入式开发技术论坛。RT-Thread 允许嵌入式开发联盟" G( D0 R+ O9 R( {1 @, @
ucos 允许
+ w" y2 P/ ^  g% @我们只做简洁、专业的嵌入式开发技术论坛。
; V4 a1 G6 w$ w" Z; M$ i5 ?/ M& G嵌入式开发联盟源码许可证:www.mcuos.com, ^* L" [! w" n' I' c
RT-Thread GPL + 可用于商业产品(只需要注明使用了RT-Thread)arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,' N: |# i3 U9 \. H( N
ucos 商业收费
; w, l) z9 S5 {1 `- ^arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,: P6 M. U$ K( B: o/ a
体积(典型配置,ARM7TDMI):- 我们只做简洁、实用、专业的嵌入式开发技术论坛。. [0 w% E4 T! y  [) I
RT-Thread 8k ROM, 2K RAM
$ U# B+ h, B/ j- 我们只做简洁、实用、专业的嵌入式开发技术论坛。(RT-Thread/STM32包含完整的STM32固件,体积大些)
/ m5 `! h  V1 X" ^我们只做简洁、专业的嵌入式开发技术论坛。我们只做简洁、专业的嵌入式开发技术论坛。- w6 [1 h$ J4 m  W# d: _: Y/ \
RT-Thread主要支持的平台:arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,. [# L! T7 {% z. w, u
STM32F103VB/STM32F103ZE- 我们只做简洁、实用、专业的嵌入式开发技术论坛。1 C3 J3 ~4 u; F$ b: \  t+ d
AT91SAM7S/7X
0 f% a  M5 v+ k- A5 a4 o: Zarm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,S3C2410www.mcuos.com* x0 f$ ^% p3 ^* o5 Z% R( u! f# h
x86-IA32
8 \/ D$ [2 t9 U9 ]$ O& |. Bwww.mcuos.com
, v( l9 X9 w( N: B/ y  u6 ?; {" [arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,RT-Thread/STM32F103VB 0.3.0 beta3更改记录:arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,, Q( u, s* i& y3 T' D; P
- 内核,添加IAR EWARM 5.x工程,在内核定义中做相应的平台定义;
3 x6 q# A% m9 m2 jarm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,- 添加文件系统组件DFS,DFS是一套虚拟文件系统(类似Linux的VFS,但几乎不占用空间)我们只做简洁、专业的嵌入式开发技术论坛。' y5 s! d6 m* I: K( f' o
- 添加文件系统DFS-EFSL:把著名的FAT文件系统实现EFSL引入到DFS中,同时对它的不足进行修改:重写文件系统缓冲层;添加多扇区读写支持。(我们自己实现的DFS-FAT还在进行压力测试中,测试完毕后也会放出)
8 _7 N, U* ^4 Oarm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,- STM32固件库更新到2.0.3patch1
8 I% {0 g0 P4 |; U; ]$ {- 我们只做简洁、实用、专业的嵌入式开发技术论坛。嵌入式开发联盟+ f3 O/ s& Z+ r" q
RT-Thread/STM32F103VB 0.3.0 beta2更改记录:2 \9 e5 u; ~) Y" h/ ]) v
- 修正message queue创建时内存分配的问题。嵌入式开发联盟8 }/ C* @2 d) ]1 ?" C1 R, A- O3 [
- 修正pendsv异常优先级过高的问题。
7 m+ G7 _/ \4 R0 P4 z" X- 更改rt_console_puts为rt_hw_console_output,并由各个board自行实现,如果设置rt_hw_console_output为空函数,那么rt_kprintf将自动不起作用。
0 {& w2 t# a& a  L$ f' X' K, A- 设备驱动框架中添加两个回调函数,设置回调函数的接口为:
, W% ^$ G% W; Z6 w. r1 Twww.mcuos.com  * rt_device_set_rx_indicate,rx_indicate回调函数在设备驱动收到数据时调用,以通知上层应用有多少字节大小的数据已经接收(上层应用此时可以主动调用rt_device_read进行接收)。
( Z, r7 W0 u% c1 ?* J& j- 我们只做简洁、实用、专业的嵌入式开发技术论坛。  * rt_device_set_tx_complete,tx_complete回调函数在驱动设备完成数据写入时调用,以通知上层应用数据已经写入完成(如果数据是动态申请的,可以在此时释放)。
2 |, y; Q3 k1 M! Y) A% N- 我们只做简洁、实用、专业的嵌入式开发技术论坛。设备驱动框架内部相关调用实现:嵌入式开发联盟. u6 z& F& K8 p# B) I0 j
  * rt_device_open/close,如果驱动设备是DMA接收模式,那么调用open将打开DMA开始进行接收,close则关闭DMA。
/ e* i9 P) U& W8 Z+ w! K. M7 T  ^# m嵌入式开发联盟  * rt_device_read,设备驱动从设备中读取(轮询模式),或从已经接收到的buffer中读取(接收中断模式、DMA接收模式)www.mcuos.com! O7 j, u3 e( S5 o  Q
  * rt_device_write,设备驱动往设备中写入数据(轮询模式),或挂接到链表中,等待DMA传输完成(如果当前DMA没使能,那么使能DMA直接进行发送)。
, }% w( A1 Q: A7 W$ Z& t/ A! z- 我们只做简洁、实用、专业的嵌入式开发技术论坛。- STM32串口设备,实现在libcpu\stm32\serial.c中,发送支持轮询,DMA发送;接收支持轮询,中断接收,DMA接收等方式。- 我们只做简洁、实用、专业的嵌入式开发技术论坛。( T8 X- X. y' l  ~6 J- t' Z2 f! O
  * 串口设备的注册在bsp\stm32f103vb\usart.c中,当前默认注册为
8 h2 Z" C0 K' B: W* m9 f) v9 Lwww.mcuos.com    + uart1, 轮询发送,中断接收, 中断接收通知指向finsh,rt_hw_console_output则轮询发送(不产生中断)。
  ?4 y" }! H) o  m* B. I; j- 我们只做简洁、实用、专业的嵌入式开发技术论坛。    + uart2, DMA接收,轮询发送
! u2 R- c. i0 g* C0 G* h    + uart3, 中断接收,DMA发送
( a# Y. L) Z( a' `' g% s我们只做简洁、专业的嵌入式开发技术论坛。- bsp\stm32f103vb\application.c是几个串口设备的使用例子。
* e5 E1 y! f- \5 O8 @arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,. l6 J0 H; o  _) P6 o$ u$ q
简而言之,RT-Thread/STM32F103VB 0.3.0 beta3是一个RTOS + Shell(finsh) + VFS(DFS + EFSL(FAT16/32)),并且文件系统已在万利STM32开发板SPI SDCard上验证通过(大范围的SD/MMC卡还有待验证)。www.mcuos.com/ j# u0 c1 x' U" g
我们只做简洁、专业的嵌入式开发技术论坛。- N, C8 W7 V6 L* K9 B
有用的链接:
$ A" C1 R+ X: m; `9 r4 K6 [! S- 我们只做简洁、实用、专业的嵌入式开发技术论坛。RT-Thread官方网站:http://www.rt-thread.org嵌入式开发联盟  [& u7 u; {% o$ C- b9 L$ _/ T2 \' L5 ~6 G
RT-Thread官方论坛:http://www.rt-thread.org/phpbb/嵌入式开发联盟/ }- T( C6 l- a+ L
内核API在线文档:http://www.rt-thread.org/rt-thread/rttdoc_0_2_3
2 P5 `/ k7 Q3 Z1 d6 z2 R- 我们只做简洁、实用、专业的嵌入式开发技术论坛。RT-Thread编程指南(未完成):http://www.rt-thread.org/phpbb/viewtopic.php?f=2&t=195嵌入式开发联盟" q0 j* ~+ [$ X) W
嵌入式开发联盟- P" e0 b. S" \; ~9 X
到目前为止,不管您是使用RealView MDK还是IAR EWARM,您都可以尝试使用RT-Thread。

TOP

RT-Thread + LwIP,强大的优化- 我们只做简洁、实用、专业的嵌入式开发技术论坛。/ R: \  O7 J, ^! k
如果要在小型设备上跑TCP/IP协议栈,体积无疑是一个重要的衡量指标。如果<1k RAM,毫无疑问uip是首选。www.mcuos.com7 ]. V. p5 b% q  {5 w. w% |
但uip的功能限制也蛮多的,和RTOS配合不是太好(如果要在2K RAM上跑RTOS,估计也够残废了),实时性也比较低(其中关中断用于做数据保护)
8 M% l/ B* j5 c# I3 D- i4 O! t) pwww.mcuos.com但RAM是32K - 64K的系统呢,似乎LwIP和ucip不错。BSD TCIP/IP协议栈就不要想了,RTEMS就是用的BSD TCP/IP协议栈移植,体积是比较庞大的。ecos选择要好些,有LwIP和BSD TCP/IP协议栈的选择。- 我们只做简洁、实用、专业的嵌入式开发技术论坛。8 ?# `! d; g7 r- S# f
网上的资料显示,LwIP的体积大约在几十K的RAM和40K左右的ROM,这个和RT-Thread/AT91SAM7X256 0.2.4版本给出的指标是比较一致的,64K SRAM用来跑LwIP,剩余的就不多了(10K左右)。而ucip则绑定到了那个收费的ucos-ii。arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,# ^: @' @2 l+ P3 R
RT-Thread 0.3.0版本的协议栈用的依然是LwIP,但做了改进,效果非常明显,而且依然保留了RTOS的特性。RT-Thread 选择LwIP是有原因的,首先是它的功能,其次是它的体积。功能上满足大多数嵌入式设备的需求,同时体积也比较小,在优化的情况下,体积更进一步缩小了。嵌入式开发联盟# F- u$ g1 E4 Y% `8 `) t8 [
RT-Thread 0.3.0 + LwIP指标:(无shell,无文件系统的情况,最大32线程优先级)7 W9 p+ {; V# q+ w  T" o
5K SRAM静态占用,3K RAM动态占用(ping设备时)。
% r3 Y1 m. O6 v3 m8 @% WSTM32F103VB(128K Flash, 20K SRAM)上跑RT-Thread + LwIP + Web Server没问题。

TOP

RT-Thread 成功移植到W90P745上。等把网络和USB驱动般过去就放上来

TOP

这个可以顶!期待你的745-rt code
请不要在短消息里面问我技术性的问题.
请不要把你的问题作为附件,下载是个很糟糕的事情.
我的电子邮件:mcuos.com@gmail.com
我的MSN:zswan0@hotmail.com
我的QQ:82475491

TOP

效率真高啊......

TOP

[文档] RT-Thread实时操作系统编程指南
  ?6 W  e) V1 K0 g. Y. O我们只做简洁、专业的嵌入式开发技术论坛。
# k8 y% g+ l& _$ f1 |www.mcuos.com官方论坛已经发布了 RT-Thread实时操作系统编程指南初稿(v1.0)www.mcuos.com2 ]- v$ A  _" N- M0 I& T1 O: a9 F1 I
嵌入式开发联盟9 O' q* `" p3 E3 h2 l
写文档是一个工程师的基本功,但写一份好的文档对一个工程师是一项非常大的考验,很多人觉得RT-Thread缺少文档,希望这份文档能够弥补RT-Thread这方面的欠缺。有什么建议请提出来,希望书中每个地方都能够做到咬文嚼字。对于RT-Thread实时操作系统中不明白的地方也请提出来,这样可以把这部分迷惑的地方加入到文档中进行详细解析,让后来的人更加容易理解。

TOP

来自RT-Thread的朋友,欢迎欢迎!
我一生中最幸运的两件事
  一件,是时间终于将我对你的爱消耗殆尽
  一件,是很久很久以前有一天,我遇见你……

TOP

呵呵,多谢,跑你们地盘混来了。

TOP

原来酷酷的小苦在这边当主管啊,初来匝道还请多多提携:-)

TOP

回复 10# 的帖子

让你见笑了!^_^
我一生中最幸运的两件事
  一件,是时间终于将我对你的爱消耗殆尽
  一件,是很久很久以前有一天,我遇见你……

TOP

当初想参与RT来着,但是没有时间,mcuos也来的少了。现在混linux社区,作华邦arm的linux maintainer,无论来自哪里,大家多多交流。
请不要在短消息里面问我技术性的问题.
请不要把你的问题作为附件,下载是个很糟糕的事情.
我的电子邮件:mcuos.com@gmail.com
我的MSN:zswan0@hotmail.com
我的QQ:82475491

TOP

[公布]RT-Thread代码仓库地址

[公布]RT-Thread代码仓库地址
1 N  F/ Z) G2 F- F, x: Q我们只做简洁、专业的嵌入式开发技术论坛。www.mcuos.com6 ^* e4 _- n4 i. e! @2 A, I' |
顺从大家的意见,采用google svn来做为RT-Thread的代码管理仓库,google上项目的地址是:3 Y2 w, b6 G! z; F" k
http://code.google.com/p/rt-threadarm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,0 b7 i- }+ N* c  m6 l0 ^  |

4 h+ y  n# x) j2 y4 `2 Larm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,包含数个已经发布的bsp,不过目前只包含Keil ARMCC的工程,Makefile可能会大改,所以暂时没放上,需要代码提交权,请联系我。
1 K9 F' I: X; S5 \官方网站:www.rt-thread.org

TOP

引用:
原帖由 osboy 于 2009-7-1 21:31 发表
2 Q& V' O! |: z0 nwww.mcuos.com当初想参与RT来着,但是没有时间,mcuos也来的少了。现在混linux社区,作华邦arm的linux maintainer,无论来自哪里,大家多多交流。
% l* U, e( O6 G  S% H9 ^& B  iarm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,4 J3 {: m3 X2 f0 D9 M' g  G: k, A% C
原来是这么着的啊,呵呵,以后还有机会!
8 x( E* R/ Z1 x1 `  Q  ?- 我们只做简洁、实用、专业的嵌入式开发技术论坛。
& ?* ]7 ?: s3 {' w0 A我们只做简洁、专业的嵌入式开发技术论坛。初步的了解了一下W90P710,uclinux可能算不上一个很好的配套OS吧,占用资源多,用于做产品很多东西可能还需要自己亲自搭,虽然新唐能够提供配套的uclinux。' T) T! A( Y6 @4 O$ J5 P
我们只做简洁、专业的嵌入式开发技术论坛。& O; l9 I7 w6 H" h' V2 r: m8 c
最近我在慢慢理理RT-Thread针对内存超过1M的系统。前段时间比较忙,后面几周可能会空闲些,因为单位里应用处理器这一块小组内还比较弱,所以有打算也在上面把一个完整的RT-Thread搭建起来,并加入flash文件系统(还得兼容老的应用处理器上的Linux文件系统),增强finsh shell。如果RT-Thread能够比较好的解决flash文件系统的问题,RT-Thread在W90P710上还是很有比较广阔的空间,再加上原本的GUI、LwIP,小型的应用基本上应该足够了。- 我们只做简洁、实用、专业的嵌入式开发技术论坛。2 P' A, [5 T6 ^; ?$ ?2 K4 C
  v" o8 e$ G: `) Y% h) ]
哦,对了,tl590,能透露下你的移植基于什么环境吗?Keil ARMCC 还是 GCC?

TOP

对于RT来说,他应该是和ucos,freertos之类的一个级别的RTOS吧,uclinux对系统的需求就大些,看样子rt对内存的需求还比较大,或者说你们把它定位成和uclinux一个级别?
& N, g+ @6 q/ n& H" a5 T0 u' }www.mcuos.comwww.mcuos.com* Y' f% |- D) k' s- r
对于我们的 710来说,我移植过ucosii,freertos,uclinux,甚至是t-kernel的BSP都跑过,除了tk之外没有成气候,其他的都有客户在用来出产品了,但是就我们目前另一款比较流行的arm7 NUC501来说就rt-thread跑不起来恐怕,因为只有32K的内存,我在上面用的是freertos和ucosii。- 我们只做简洁、实用、专业的嵌入式开发技术论坛。6 z8 X* O( v: C3 F8 K
www.mcuos.com' S! r8 S2 o4 |
号外:大侠们都从哪过来的?看来和兄弟小苦很熟?
- @3 n. B) d& larm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,我也曾经热爱写自己的rtos,也出了几个版本,不过没有坚持下来,因为要作的事情太多。
请不要在短消息里面问我技术性的问题.
请不要把你的问题作为附件,下载是个很糟糕的事情.
我的电子邮件:mcuos.com@gmail.com
我的MSN:zswan0@hotmail.com
我的QQ:82475491

TOP

32k不能跑RT-Thread?呵呵,RT-Thread的资源需求是:8k ROM,2K RAM。
, a- e2 W0 T: z3 tarm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,
7 g0 G9 J* A" W0 q' [- H9 W- 我们只做简洁、实用、专业的嵌入式开发技术论坛。目前已经有用户在STM32上用RT-Thread做产品了,一般是20K RAM,大一些的话是64K RAM。例如上面shaolin说的:- 我们只做简洁、实用、专业的嵌入式开发技术论坛。" i- E8 K5 r) F+ L- ~  J
RT-Thread 0.3.0 + LwIP指标:(无shell,无文件系统的情况,最大32线程优先级)嵌入式开发联盟* y' B  w3 d- Q- c7 e
5K SRAM静态占用,3K RAM动态占用(ping设备时)。
; v6 }3 I) r7 y5 ^5 W2 _, F& ywww.mcuos.comSTM32F103VB(128K Flash, 20K SRAM)上跑RT-Thread + LwIP + Web Server没问题。www.mcuos.com" i. I9 \+ ^7 l

$ l8 W% V* d+ U5 V- 我们只做简洁、实用、专业的嵌入式开发技术论坛。另外,RT-Thread和ucos、ecos技术指标的对比情况:
4 r, s6 R( j# ], [arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,基本任务测试 RTT/ecos 1.40倍,RTT/ucos 1.00倍
* c* D0 U( p. D- d我们只做简洁、专业的嵌入式开发技术论坛。协作调度测试 RTT/ecos 1.20倍,RTT/ucos N/A (ucos不支持协作式调度)
+ a& N* n  B8 E$ [) k' t抢占调度测试 RTT/ecos 1.33倍,RTT/ucos 1.38倍
- B) M, H* s: \同步处理测试 RTT/ecos 1.86倍,RTT/ucos 1.44倍- 我们只做简洁、实用、专业的嵌入式开发技术论坛。* f) a, O* A3 O9 |
中断处理测试 暂时无数据嵌入式开发联盟' S3 a  W2 q" j- z
中断抢占测试 暂时无数据
3 j) B( J' {, a* X/ s6 g: k# c  j- 我们只做简洁、实用、专业的嵌入式开发技术论坛。内存分配测试 RTT/ecos 2.50倍,RTT/ucos 1.28倍嵌入式开发联盟7 J8 i* L5 r+ ?: l
arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,2 r  S3 y( J  q9 \- X
体积上5项测试上,RTT/ecos 0.65倍,RTT/ucos 0.30倍arm,linux,winbond,nuvoton,w90p710,w90n745,开源,嵌入式,操作系统,嵌入式开发,嵌入式联盟,linux,ecos,uclinux,t-kernel,freeos,rtems,ucos,skyeye,- j6 p) V8 y5 W+ g4 o6 E, `6 A# i
即,RTT只有ecos 0.65的体积大小,ucos 0.30的体积大小- 我们只做简洁、实用、专业的嵌入式开发技术论坛。) e* `  S( B8 D% [: b, l" l6 C$ w) O
- 我们只做简洁、实用、专业的嵌入式开发技术论坛。+ g/ ]8 R- I  @0 R2 F& V7 w
结论是在相同环境下运行ThreadX的Benchmark套件得出的,相同的硬件环境,相同的编译器,相同的优化选项,相同Benchmark代码。
  U; A. [' h* a+ a- B+ pwww.mcuos.com
8 `7 C8 A' a9 U) W嵌入式开发联盟这套benchmark基本的设计原则是在相同的时间内做一个计数值递增。例如做切换测试:运行多个线程,让它们做切换,然后在各自的上下文环境中做计数,一定时间后得出计数值的多少。这样比较各个系统的计数值情况得出结果。大体思路是这样,具体代码我没仔细看。嵌入式开发联盟- p  |7 ?9 d' r8 O
www.mcuos.com$ T7 J  a/ B6 O! d
基本任务测试 RTT/ecos 1.40倍,RTT/ucos 1.00倍
7 |0 V! P$ h7 E% mwww.mcuos.com这个意思就是,RTT的计数值是ecos的计数值1.40倍,ucos的1.00倍
" ~, F$ z( d) F! @% A( x, Q4 \& J- 我们只做简洁、实用、专业的嵌入式开发技术论坛。
: C' i$ o/ h4 F/ ^; z) }* kwww.mcuos.com例如相同时间内,RTT的是1400次,ecos是1000次,ucos是1401次。

TOP

RT-Thread是设计成可拆卸可剪裁的,所以也能够支持一些内存比较大的系统。特别是内存大了后,内存管理器将转而使用一个优化过后的slab内存管理器,这个内存管理器的分配速度是非常恐怖的(对linux熟悉应该会知道,源于相类似的算法),速度都快赶过固定内存池分配速度了。嵌入式开发联盟# p6 _* e. I5 D! Y9 z* z
3 ^2 _+ T( F5 e% g1 @1 o9 w, Z7 P- Y
另外就是目前RT-Thread的GUI组件只能支持framebuffer的方式,也只能在内存大一些的系统上使用。, ^: p; ^& Z( j3 }9 v

) r' f9 E( P0 Q$ t% j* o; j嵌入式开发联盟目前针对于内存丰富一些的系统,个人感觉优化还不够,所以才会在上面继续做优化,需要在一些关键的地方使用红黑树、hash表等一类的基本优化算法。不管最终RT-Thread发展成如何,它都会依赖于其中的rtconfig.h配置文件,对各种组件做剪裁,形成一套细粒度、全功能的实时操作系统。

TOP

发新话题