这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 通讯及无线技术 » Jennic ZigBee 协议栈BOS下的任务创建

共1条 1/1 1 跳转至

Jennic ZigBee 协议栈BOS下的任务创建

专家
2009-03-20 08:34:08     打赏
Jennic ZigBee 协议栈BOS下的任务创建

 

使用Jennic的协议栈需要使用BOS系统,该系统基于一种简单调度调度机制,可以在该系统内创建两个用户任务,一个是BOS默认创建的任务,而用户的应用只可以创建一个任务。任务是不可剥夺性的,由BOS系统时间驱动。

 

 

下面是两个关于任务创建的函数:

bool_t bBosCreateTask (const void (*pfvInit)(uint8), const void (*pfvHandler)(void *, uint8, uint8)); 

这个函数是用来在BOS中注册用户任务,参数是两个函数的指针,一个是初始化任务函数的指针,另一个是处理从任务接收到消息和事件的函数的指针。

在BOS中用户任务限制在两个,包括由bBosRun()创建的默认用户任务JZA_AppEventHandler(),该函数只可以用来创建第二个用户任务,如果需要,bBosCreateTask函数由下面的函数调用:

PUBLIC void JZA_vAppDefineTasks(void); 

这个函数用来在BOS中注册用户任务,在应用第一次运行之前由BOS调用一次

 

 

下面是一个示例:

void vAppTask1Init(uint8 u8Handler) 

   gu8AppHandle = u8Handler; 

   bBosSetEvent(gu8AppHandle, EV_START_DEVICE); 

void vAppTask1Handler(void* vTempTaskMsg, uint8 u8TempTaskMsgLen, uint8 u8Event) 

   if(u8Event & EV_START_DEVICE) 

   { 

      vAppSystemInit(); 

      JZS_vStartStack(); 

   } 

 

bool_t JZA_vAppDefineTask(void) 

   if (!bBosCreateTask(vAppTask1Init, vAppTask1Handler)) 

   { 

       vBosPanic(1); 

   } 

   return TRUE; 




关键词: Jennic     ZigBee     协议     任务     创建    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]