00001 #ifndef OS_CORE_H 00002 #define OS_CORE_H 00003 00004 #define TASK_CSW_TIME 2 00005 00006 typedef struct OS_CORE_CTRL{ 00007 INT8U Status; // Flag of operation system 00008 INT8U TaskCswTimer; 00009 INT8U TaskSwitch; 00010 }; 00011 #define cStartRun 0x01 00012 #define OS_ENTER_CRITICAL() EA=0 00013 #define OS_EXIT_CRITICAL() EA=1 00014 extern INT8U data OSRunning; 00015 extern struct OS_CORE_CTRL OsCoreCtrl; 00016 extern void OsCorePowerOnInit(void) LargeReentrant; 00017 extern void OsCoreStart(void) LargeReentrant; // wait for first timer 0 interrupt to switch into task 00018 extern void OsCoreScheduler(void) LargeReentrant; 00019 extern void OsCoreSchedulerIsr(void) LargeReentrant; 00020 #endif