打印
[uCOS/RTOS]

适用于Cortex-M系列单片机的开源操作系统内核

[复制链接]
1448|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
446252221|  楼主 | 2016-11-2 14:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这里有一个开源的小型单片机操作系统内核!
使用起来非常简单,应付大多数应用没有问题。
代码通俗易懂,编程风格类似于linux,可以学习一下。
比如linux创建线程的API是pthread_create
这个操作系创建线程的API是kthread_create
还有mutex和sem都非常类似.

开源中国主页:wwwoschina.net/p/klite

相关帖子

沙发
446252221|  楼主 | 2016-11-2 14:52 | 只看该作者
附上一段使用KLite的演示代码。

/*
* KLite DEMO
* STM32F407,XTAL=16MHz
*/
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include "kernel.h"
#include "board.h"
#include "nvic.h"
#include "uart.h"

#define MAX_DEBUG_LEN        1024
static kmutex_t debug_mutex;
static char*    debug_buff;

void debug(const char* fmt, ...)
{
        va_list va;
        kmutex_lock(debug_mutex);
        va_start(va,fmt);
        vsnprintf(debug_buff,MAX_DEBUG_LEN,fmt,va);
        va_end(va);
        uart_write(1,debug_buff,strlen(debug_buff));
        kmutex_unlock(debug_mutex);
}

void debug_init(void)
{
        debug_buff = malloc(MAX_DEBUG_LEN);
        debug_mutex = kmutex_create();
        uart_init(1,1024);
        uart_open(1,115200,0);
}

void demo_main(void* arg)
{
        debug("demo thread start.\r\n");
        debug("thread pid=%p, arg=%p\r\n",kthread_self(),arg);
        while(1)
        {
                sleep(2000);
                debug("thread<%p> running.kernel time=%d\r\n",kthread_self(),kernel_time());
        }
}

void demo_init(void)
{
        uint32_t ver;
        uint32_t total;
        uint32_t used;
        ver = kernel_version();
        debug("\r\nklite version:%d.%d.%d\r\n",(ver>>24)&0xFF,(ver>>16)&0xFF,ver&0xFFFF);
        kthread_create(demo_main,0,0);
        kthread_create(demo_main,0,0);
        kmem_info(&total,&used);
        debug("memory usage: %d/%d byte\r\n",used,total);
}

void init(void* arg)
{
        board_init();
        nvic_init();
        debug_init();
        demo_init();
        debug("init thread exit!\r\n");
}

int main(void)
{
        kernel_init(0x10000000,0x10000);
        kthread_create(init,0,0);
        kernel_start();
}


使用特权

评论回复
板凳
helezh| | 2016-11-6 22:23 | 只看该作者
RTT

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

1

粉丝