我是靠谱客的博主 甜蜜乌龟,最近开发中收集的这篇文章主要介绍cola_os|cola_os(v1.2.0)版本发布增加国产单片机SWM181例程一、前言二、代码介绍三、os代码四、运行log五、代码下载,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、前言

基于一段时间的优化cola os发布了1.2.0版本。

  1. 增加串口使用例程
  2. 优化任务管理
  3. 增加SWM181国产MCU例程

二、代码介绍

cola os说明

三、os代码

#ifndef _COLA_OS_H_
#define _COLA_OS_H_


#include <stdint.h>
#include <stdbool.h>

#define COLA_VERSION      1 
#define COLA_SUBVERSION   2
#define COLA_REVISION     0


//任务事件
enum EVENT_SIG
{
    SIG_ALARM = 1 << 0,
    SIG_DATA  = 1 << 1,
    SIG_NOTE  = 1 << 2,
    SIG_UART  = 1 << 3,
    SIG_RADIO = 1 << 4,
    SIG_GPRS  = 1 << 5,
    SIG_USR1  = 1 << 8,
    SIG_USR2  = 1 << 9,
    SYS_EVENT_MSG  = 1 << 15,
};


enum
{
    TIMER_ALWAYS     = 0x00,
    TIMER_ONE_SHOT   = 0x01,
};

enum
{
    TASK_IDLE        = 0x00,
    TASK_BUSY        = 0x01,
};

typedef void (*cbFunc)(void *arg,uint32_t event);

typedef struct task_s
{
    uint8_t     timerNum;    //定时编号
    uint32_t    period;      //定时周期
    bool        oneShot;     //true只执行一次
    bool        start;       //开始启动
    uint32_t    timerTick;   //定时计数
    bool        run;         //任务运行标志 
    bool        taskFlag;    //任务标志是主任务还是定时任务
    uint32_t    event;       //驱动事件  
    cbFunc      func;        //回调函数
	bool        isBusy;      //用于低功耗控制
    void*       usr;          //用户接口
    struct task_s *next;
}task_t;

#define stimer    task_t
extern volatile unsigned int jiffies;
/*
    主循环任务创建
*/
int cola_task_create(task_t *task,cbFunc func,void *arg);
/*
    主循环任务删除
*/
int cola_task_delete(task_t *task);
/*
    任务遍历,放到while(1)循环中
*/
void cola_task_loop(void);
/*
    定时任务创建
*/
int cola_timer_create(task_t *timer,cbFunc func,void *arg);
/*
    启动定时任务
    one_shot:TIMER_ALWAYS   循环定时
              TIMER_ONE_SHOT 只运行一次
    time_ms :定时时间
*/
int cola_timer_start(task_t *timer,bool one_shot,uint32_t time_ms);
/*
    停止定时任务
*/
int cola_timer_stop(task_t *timer);

/*
    删除定时任务
*/
int cola_timer_delete(task_t *timer);

/*
    定时任务遍历,放到1ms ticker中
*/
void cola_timer_ticker(void);
/*
    设置任务事件
*/
int  cola_set_event(task_t *task,uint32_t sig_id);
/*
    取消任务事件
*/
int  cola_clear_event(task_t *task,uint32_t sig_id);
/*
    阻塞延时函数
*/
void cola_delay_ms(uint32_t ms);
/*
    设置休眠函数接口
*/
int cola_set_sleep_handel(cbFunc func);
#endif 

四、运行log

在这里插入图片描述

五、代码下载

代码下载

最后

以上就是甜蜜乌龟为你收集整理的cola_os|cola_os(v1.2.0)版本发布增加国产单片机SWM181例程一、前言二、代码介绍三、os代码四、运行log五、代码下载的全部内容,希望文章能够帮你解决cola_os|cola_os(v1.2.0)版本发布增加国产单片机SWM181例程一、前言二、代码介绍三、os代码四、运行log五、代码下载所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部