【 Nucleo深度评测】Nucleo-L053加入CoOS。。。

水清波   2014-11-24 23:51 楼主
Nucleo-L053加入CoOS操作系统,对于CoOS,详情可见http://www.coocox.org
CooCox CoOS  CooCox CoOS 是一款针对ARM Cortex-M系列芯片而设计的实时系统内核。
CoOS特征:
■免费并开源
■ARM Cortex M3及M0定制操作系统
■高度可裁剪性,最小系统内核仅974Byte
■支持优先级抢占和时间片轮转
■自适应任务调度算法
■零中断延时时间
■堆栈溢出检测
■信号量、邮箱、队列、事件标志、互斥等同步通信方式
■支持多种编译器:ICCARM、ARMCC、GCC

技术数据:
时间特性:
功能 时间 (无时间片轮转/有时间片轮转)
创建已定义的任务(无任务切换) 5.3us / 5.8us
创建已定义的任务(有任务切换) 7.5us / 8.6us
删除任务 (退出任务) 4.8us / 5.2us
任务切换 (切换内容) 1.5us / 1.5 us
任务切换 (在设置事件标志的情况下) 7.5us / 8.1us
任务切换 (在发送信号量的情况下) 6.3us / 7.0us
任务切换 (在发送邮件的情况下) 6.1us / 7.1us
任务切换 (在发送队列的情况下) 7.0us / 7.6us
设置事件标志(无任务切换) 1.3us / 1.3us
发送信号量(无任务切换) 1.6us / 1.6us
发送邮件(无任务切换) 1.5us / 1.5us
发送队列(无任务切换) 1.8us / 1.8us
IRQ中断服务程序的最大中断延迟时间 0 / 0


空间特性:
描述 空间
内核占RAM空间 168 Bytes
内核占代码空间 974 Bytes
一个任务占RAM空间 TaskStackSize + 24 Bytes(MIN)
TaskStackSize + 48 Bytes(MAX)
一个邮箱占RAM空间 16 Bytes
一个信号量占RAM空间 16 Bytes
一个队列占RAM空间 32 Bytes
一个互斥体占RAM空间 8   Bytes
一个用户定时器占RAM空间 24 Bytes


#include "mbed.h"
#include "CoOS.h"
//------------------------------------
// Hyperterminal configuration
// 9600 bauds, 8-bit data, no parity
//------------------------------------
OS_STK task1_stk[256];
OS_STK task2_stk[256];


Serial pc(SERIAL_TX, SERIAL_RX);

DigitalOut myled(LED1);

OS_FlagID Flag;

void task2(void* Pdata)
{
         int i = 1;
   while(1)
         {
                 CoWaitForSingleFlag (Flag,0);
     pc.printf("This program runs since %d seconds.\n", i++);
           }
}


void task1(void* Pdata)
{
   Flag =  CoCreateFlag(1,0);
   while(1)
         {
           CoTickDelay(100);
                 CoSetFlag(Flag);
                 myled = !myled;
           }
}


int main() {
  CoInitOS();
  
        CoCreateTask(task1,0,10,&task1_stk[255],256);
        CoCreateTask(task2,0,10,&task2_stk[255],256);
        
        CoStartOS();
}

创建了两个任务和一个事件标志,详情见工程。

回复评论 (1)

很不错,赞一个。
点赞  2014-11-25 20:29
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复