Zigbee----初识OSAL,协议栈运行机制
OSAL通过轮询的方式查找任务是否执行:
函数指针,执行任务处理函数:
找到系统启动函数
进入系统处理函数
以SampleApp.c→uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )为例
:应用层事件返回值:return (events ^ SYS_EVENT_MSG);
#define SYS_EVENT_MSG 0x8000 // A message is waiting event
与SYS_EVENT_MSG取异或
eg:0x8001与events(0x0001异或)剩下0x8000
也就是说当前任务执行完成后返回的是剩余任务,并返回到任务表中接着轮询执行。