/* * $Id: kern_main.c,v 1.10 2008/01/11 10:54:50 nbrk Exp $ */ #include #include #include #include #include #ifdef ARCH_SAM7S64 #include /* XXX */ #include /* XXX */ #endif #include extern void config_consinit(void); void main(void) { uint8_t digit; uint32_t i; /* set up critical devices */ config_machineinit(); printf("Welcome to FunnyOS!\n"); /* initialize kmalloc */ kmem_init(); /* attach all devices described in arch/${ARCH}/config.c */ devconfig_recurse(); #ifndef ARCH_SAM7S64 /* initialize scheduler before enabling system ticks */ sched_init(); /* initialize system clock; this will start interrupts from timer */ sysclock_init(); #endif #ifdef ARCH_SAM7S64 loop: for(digit = 0; digit < 16; digit++) { printf("kern_main: LED output: %d\n", digit); devctl("gpio7seg", 0, DCGPIO7SEG_SETDIGIT, &digit); /* dummy timeout */ for (i = 0; i < 5000000; i++) ; } goto loop; #endif printf("Autoconfiguration completed.\n"); while(1) ; }