00001 /*************************************************************************/ 00015 #ifndef _TASKMANAGER_H 00016 #define _TASKMANAGER_H 00017 #include <inttypes.h> 00018 #include <types.h> 00019 #include <atomic.h> 00020 00022 typedef enum 00023 { 00024 MAC_PHY_HWD_TASK_ID = 1 << 0, 00025 HAL_TASK_ID = 1 << 1, 00026 MAC_HWI_TASK_ID = 1 << 2, 00027 NWK_TASK_ID = 1 << 3, 00028 ZDO_TASK_ID = 1 << 4, 00029 APS_TASK_ID = 1 << 5, 00030 SSP_TASK_ID = 1 << 6, 00031 TC_TASK_ID = 1 << 7, 00032 BSP_TASK_ID = 1 << 8, 00033 APL_TASK_ID = 1 << 9 00034 } SYS_TaskId_t; 00035 00037 extern void HAL_TaskHandler(void); 00039 extern void BSP_TaskHandler(void); 00041 extern void MAC_PHY_HWD_TaskHandler(void); 00043 extern void MAC_HWI_TaskHandler(void); 00045 extern void NWK_TaskHandler(void); 00047 extern void ZDO_TaskHandler(void); 00049 extern void APS_TaskHandler(void); 00054 extern void APL_TaskHandler(void); 00056 extern void SSP_TaskHandler(void); 00058 extern void TC_TaskHandler(void); 00059 00060 extern volatile uint16_t SYS_taskFlag; 00061 00062 /**************************************************************************************/ 00079 static inline void SYS_PostTask(SYS_TaskId_t taskId) 00080 { 00081 ATOMIC_SECTION_ENTER 00082 SYS_taskFlag |= taskId; 00083 ATOMIC_SECTION_LEAVE 00084 } 00085 00086 /**************************************************************************************/ 00089 bool SYS_RunTask(); 00090 00091 #endif