嵌入式RTOS软件新架构: 模式 + 状态机:
一,定义接口函数以及消息数据结构:
#ifndef NULL
#define NULL ( OS_NULL )
#endif
#define sys_ticks() OSGetTickCount()
#define tick_timeout(x) ((int)(sys_ticks() - x) > 0)
#define PEND_FOREVER OSPEND_FOREVER_VALUE
// 任务 接口函数
typedef OSTaskHandle_t TaskHandle_t;
#define task_sleep(ms) OSTaskSleep(ms) //任务睡眠
#define task_suspend(h) OSTaskSuspend(h) //任务延缓
#define task_resume(h) OSTaskResume(h) //任务恢复
//#define isr_disable() FitEnterCritical()
//#define isr_enable() FitExitCritical()
#define task_create(func,para,stack,priority,name) OSTaskCreate(func,para,stack,priority,name) //任务创建
// 内存 接口函数
#define mem_malloc(size) OSMemMalloc(size)
#define mem_free(ptr) OSMemFree(ptr)
//#define mem_free(ptr); {dbg("free:%P",ptr);OSMemFree(ptr);}
// 互斥 接口函数
typedef OSMutexHandle_t MutexHandle_t;
#define mutex_create() OSMutexCreate()
#define mutex_lock(h) OSMutexLock(h,PEND_FOREVER)
#define mutex_unlock(h) OSMutexUnlock(h)
// 信号量 接口函数
typedef OSSemHandle_t SemHandle_t;
#define sem_pend(h) OSSemPend(h,PEND_FOREVER)
#define sem_post(h) OSSemPost(h)
#define sem_postIsr(h) OSSemPostFromISR(h)
#define sem_create(xC,iC) OSSemCreateCount(xC,iC)
//定时器接口函数
typedef OSTimerHandle_t TimerHandle_t;
OSTimerHandle_t TimerCreate(u32 Ticks,OST