Zigbee----初识OSAL,协议栈运行机制

 

OSAL通过轮询的方式查找任务是否执行:

函数指针,执行任务处理函数:

Zigbee----初识OSAL,协议栈运行机制

找到系统启动函数 

Zigbee----初识OSAL,协议栈运行机制

进入系统处理函数 

 

Zigbee----初识OSAL,协议栈运行机制

 Zigbee----初识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

也就是说当前任务执行完成后返回的是剩余任务,并返回到任务表中接着轮询执行。