wirebed添加一个任务时,任务的框架代码自动产生。下图为新建一个任务,并查看其自动生成的代码。
默认添加的空白任务代码如下
#include "globaltype.h"
#include "task.h"
#define xprintf(fmt, x) sysTrace(__wb_id, #x, fmt, x)
static const uint8_t __wb_id = 0;
/**********************************************************************
** task event define **
**********************************************************************/
/**********************************************************************
** task signal define **
**********************************************************************/
/**********************************************************************
** User Include, Variable and function Define **
**********************************************************************/
/**********************************************************************
** task slot define **
**********************************************************************/
/**********************************************************************
** task timer service (auto generate)**
**********************************************************************/
static void __wb_timer_service(void)
{
}
/**********************************************************************
** task init proc (auto generate)**
**********************************************************************/
static void __wb_task_init(void)
{
}
代码包括以下几部分
1. 头文件
#include "globaltype.h"
#include "task.h"
#define xprintf(fmt, x) sysTrace(__wb_id, #x, fmt, x)
1.1 globaltype.h
是一个用户自定义的全局头文件,方便任务间共享数据结构。在code view视图中点击globaltype.h 即可编辑。导出代码的时候,会自动生成globaltype.h 头文件。
1.2 task.h
wirebed核心的头文件,用户不能修改只能引用
1.3 xprintf 宏
打印变量或者任务状态,和C语言标准printf函数一样的参数,不过xprintf必须有且一个参数。
xprintf("stuats","ok");
xprintf("%d\n",var);
2 任务id
static const uint8_t __wb_id = 0;
每个任务都有一个id在内部使用,用户无需直接使用。
3 事件定义
默认的任务没有定义任何事件。一个任务可以有0-32个事件。
/**********************************************************************
** task event define **
**********************************************************************/
4 信号定义
/**********************************************************************
** task signal define **
**********************************************************************/
5 用户定义
用户定义数据部分,可以引用头文件,定义变量 和 static 或者全局变量
/**********************************************************************
** User Include, Variable and function Define **
**********************************************************************/
6 槽定义
/**********************************************************************
** task slot define **
**********************************************************************/
7 定时器超时回调函数
任务的定时回调函数名字是固定的,用户不能修改。
/**********************************************************************
** task timer service (auto generate)**
**********************************************************************/
static void __wb_timer_service(void)
{
}
8 任务初始化函数
任务的初始化函数,wirebed框架启动的时候,首先调用任务的初始化函数 __wb_task_init, 如果有初始状态则调用初始状态的entry action函数。
/**********************************************************************
** task init proc (auto generate)**
**********************************************************************/
static void __wb_task_init(void)
{
}