#include "common.h" #include "nu/nusys.h" extern OSThread nuThreadIdle; extern DECLARE_STACK(nuStackIdle, NU_IDLE_STACK_SIZE); extern OSThread obThreadMain; extern DECLARE_STACK(obStackMain, NU_MAIN_STACK_SIZE); void nuIdle(void* arg); void nuBoot(void) { osInitialize(); osCreateThread(&nuThreadIdle, NU_IDLE_THREAD_ID, nuIdle, NULL, STACK_START(nuStackIdle), NU_MAIN_THREAD_PRI); osStartThread(&nuThreadIdle); } void nuIdle(void* arg) { nuIdleFunc = NULL; nuPiInit(); nuScCreateScheduler(OS_VI_NTSC_LAN1, 1); osViSetSpecialFeatures(OS_VI_DIVOT_ON | OS_VI_DITHER_FILTER_ON | OS_VI_GAMMA_OFF | OS_VI_GAMMA_DITHER_OFF); osCreateThread(&obThreadMain, NU_MAIN_THREAD_ID, obMain, NULL, STACK_START(obStackMain), NU_MAIN_THREAD_PRI); osStartThread(&obThreadMain); osSetThreadPri(&nuThreadIdle, NU_IDLE_THREAD_PRI); while(1) { if (nuIdleFunc != NULL) nuIdleFunc(); } }