void_c 发表于 2009-5-28 14:10:17

单片机学用什么OS好?

单片机学用什么OS好?

small rtos,avrx,usmartx,prothreads,是用价值不大,
ucos,收费,
freertos,变量函数名太长,

aozima 发表于 2009-5-28 14:12:21

你自己写一个好了...

我觉得RAM几KROM十几K的东东还是不要用OS了.裸着舒服...

chuyu111 发表于 2009-5-28 14:21:44

ucos很多人没交费照样用的欢   
ucos3快出了

void_c 发表于 2009-5-28 15:17:05

我觉得RAM几KROM十几K的东东还是不要用OS了.裸着舒服...

-------------------------------------------------------------

得准备几套衣服试穿。
哪天天气变冷了,没衣服穿,或者有衣服,但穿不上就不好了。

idodi 发表于 2009-5-28 17:03:35

我觉得RAM几KROM十几K的东东还是不要用OS了.裸着舒服...
-------------------------------------------------------------

得准备几套衣服试穿。
哪天天气变冷了,没衣服穿,或者有衣服,但穿不上就不好了。

---------------------------------------------------------------

哎,穿与不穿,是个问题……

rube 发表于 2009-5-28 18:49:57

上官先生是个高人,我认为8位的单片机在多数情况下无需OS

yqing81 发表于 2009-5-28 19:53:40

陈明计的SMALL RTOS51适合8位单片机,准备研究学习!!

liujt_7 发表于 2009-5-29 19:13:19

学单片机的 还是要学习操作系统 好啊

void_c 发表于 2009-5-30 20:39:54

初步选用FreeRTOS了。

liujt_7 发表于 2009-5-31 09:24:07

UCOS2 用的人还是挺多的 我学习UCOS2

bbandpp 发表于 2009-5-31 09:30:04

我也打算学学操作系统,但还是觉得ucos看着比较舒服,资料也多。
像那时候学BCB感觉资料就太少点,自己学比较费劲。

weiyongwill 发表于 2009-5-31 09:50:34

【6楼】 yqing81
陈明计的SMALL RTOS51适合8位单片机,准备研究学习!!

————————————————————————————————
这个系统还是比较容易入门的,可以看看。

void_c 发表于 2009-5-31 12:16:36

【10楼】 bbandpp
我也打算学学操作系统,但还是觉得ucos看着比较舒服,资料也多。
------------------------------------------------------------------

学是一回事,用是一回事。

学OS可以用small rtos,ucos,

但用OS未必要用这个。

个人最不喜UCOS的地方时他的中断处理,

最喜上下文切换方法是chibios,

最喜的临界段写法是usmartx,

bbandpp 发表于 2009-5-31 12:18:31

上官先生研究的比较透彻。以后多指教。

xz6000 发表于 2009-5-31 14:25:57

Chibios/RT似乎挺强的,72MHz的STM32上,上下文切换做到了1.41微秒,获取/释放信号量做到了1.21微秒,值得国内一些RTOS学习。

usmartx的临界区处理似乎没什么特别啊。

void_c 发表于 2009-5-31 14:44:26

传统临界段写法(freertos):
void vPortEnterCritical( void )
{
        portDISABLE_INTERRUPTS();
        uxCriticalNesting++;
}

void vPortExitCritical( void )
{
        uxCriticalNesting--;
        if( uxCriticalNesting == portNO_CRITICAL_NESTING )
        {
                portENABLE_INTERRUPTS();
        }
}

vPortEnterCritical();
…………………………   //临界段
vPortExitCritical();





usmartx临界段临界段写法:

size_t flags;
flags = INT_Disable();
……………………   //临界段
INT_Restore( flags );






usmartx临界段写法变通一下:

typedef unsigned char critical_flag_t;

static __always_inline__ critical_flag_t CriticalEnter(void)
{   
      critical_flag_t flags=SREG;
      cli();
      return flags;
}

static __always_inline__ void CriticalExit(critical_flag_t flags)
{
      SREG=flags;
}


CRITICAL()
   {
         …………………… //临界段
   }

不仅写法方便,上下文切换也少了一个全局变量(临界段嵌套层数),

还有另外很重要一点,这种临界段写法,传递了一个参数,这个参数是很有意义的(可由程序解释为多个中断允许标志位)。

比如说,进临界段只是关闭操作系统管理中断,出临界段恢复操作系统管理中断,其他中断不受影响,
传统的临界段写法很难实现,而采用usmartx临界段写法(或者变通写法),就很容易实现了。

ralfak 发表于 2009-5-31 19:18:43

函数名太长也是借口,这是第一次见到。
哈哈,手边放一个API手册,用的时候查一下即可

ralfak 发表于 2009-5-31 19:19:51

freertos+gcc 不要想别的了。
这个真是好用

loopzhong 发表于 2009-6-1 11:56:06

上官先生:自己做套衣服啦。呵呵~~

20052049 发表于 2009-6-30 09:56:32

如果是51系列的话,最实在的还是RTX51, 有tiny(非抢占) 和 fully(抢占)两个版本.而且这个RTX51内核是Keil官方的产品,有人维护。使用也简单。不过好像不好搞到源码.

void_c 发表于 2009-7-1 10:23:42

现在尝试自己写OS,voidtask.
页: [1]
查看完整版本: 单片机学用什么OS好?