07 在ZStack里创建自己的task

打开SampleApp工程后:
因在ZStack里有些资源只能供一个任务使用,所以先把原SampleApp任务的功能去掉(不是删除掉,而是让它不执行起来).

在OSAL_SampleApp.c 里:

const pTaskEventHandlerFn tasksArr[] = {
    ...
  // SampleApp_ProcessEvent 备注掉SampleApp任务的事件处理函数
};

void osalInitTasks( void )
{
    ...
  // SampleApp_Init( taskID ); 备注掉SampleApp任务的初始化函数
}

//完成上面工作后,SampleApp就处于荒弃状态,不会与我们的任务抢资源了.

///
一个任务有任务号,初始化函数,事件处理函数.
自定义的任务由MyApp.h来声明MyApp.c源文件里的函数(不用头文件声明会报错)

MyApp.h


#ifndef MYAPP_H
#define MYAPP_H

void MyApp_Init(uint8 task_id );
uint16 MyApp_ProcessEvent(uint8 task_id, uint16 events );


#endif /* MYAPP_H */

MyApp.c

#include "OnBoard.h"
#include "MyApp.h"

uint8  mytask_id; //用于存放本身的任务号

void MyApp_Init(uint8 task_id )
{
   mytask_id = task_id; 

}



uint16 MyApp_ProcessEvent(uint8 task_id, uint16 events )
{


   return 0;
}

增加MyApp.h, MyApp.c源文件到工程时,先选中App目录,再Add, 如图下:
这里写图片描述

//
完成上面工作后,还需要把我们的任务加入系统里:
在OSAL_SampleApp.c里:

#include "MyApp.h"

const pTaskEventHandlerFn tasksArr[] = {
    ...
   MyApp_ProcessEvent, //在数组最后加上我们的任务事件处理函数
};

void osalInitTasks( void )
{
    ...
   MyApp_Init(taskID); //在最后加入调用我们任务的初始化函数
}

完成上面的工作后,我们的任务就加入了系统的调度里了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值