//===========================================================================
//文件名称：app_inc.h
//功能概要：应用任务公共头文件，供任务函数及ISR使用
//         包含其他头文件、声明全局变量、登记任务模板编号、声明任务函数及ISR
//版权所有：苏州大学飞思卡尔嵌入式中心(sumcu.suda.edu.cn)
//版本更新：2013-10-30  V1.0,2014-05-09 V2.1
//===========================================================================
#ifndef __APP_INC_H
#define __APP_INC_H
//---------------------------------------------------------------------------

//1.包含头文件
#include <mqx.h>
#include <bsp.h>
#include <light.h>
#include "lwmsgq.h"

//2.声明全局变量
uint_32 server_queue[];//服务器消息队列
uint_32 client_queue[];//客户消息队列
//客户数目
#define NUM_CLIENTS            3
//轻量级消息队列中能容纳的最大消息数目
#define NUM_MESSAGES           3
//轻量级消息队列中单个消息的大小，
//以_mqx_max_type类型（在本芯片中即uint32_t）的大小为单位
#define MSG_SIZE               1
//定义全局消息池
//轻量级消息结构体所需数组元素（32位）个数+一个消息队所需数组元素个数 
uint_32 server_queue[sizeof(LWMSGQ_STRUCT)/sizeof(uint_32) +
   NUM_MESSAGES * MSG_SIZE];//NUM_MESSAGES消息块个数，MSG_SIZE消息块的大小
uint_32 client_queue[sizeof(LWMSGQ_STRUCT)/sizeof(uint_32) +
   NUM_MESSAGES * MSG_SIZE];

//3.登记任务模板编号
#define TASK_MAIN    1
#define TASK_A       2
#define TASK_B       3
#define TASK_SERVER  4
#define TASK_CLIENT  5

//4.声明任务函数
void task_main(uint32_t initial_data);
void task_A(uint32_t initial_data);
void task_B(uint32_t initial_data);
void task_client(uint_32 index);
void task_server(uint32_t param);

//5.声明中断服务例程ISR


//---------------------------------------------------------------------------
#endif
