[BACK]Return to kern_main.c CVS log [TXT][DIR] Up to [local] / funnyos / kern

File: [local] / funnyos / kern / kern_main.c (download)

Revision 1.9, Wed Jan 2 02:38:44 2008 UTC (16 years, 4 months ago) by nbrk
Branch: MAIN
Changes since 1.8: +21 -1 lines

do not want to commit it, but it's damn cool.
- after all initialisation has been completed, cyclically display 0..F digits
on the LED if we are ARCH_SAM7S64.

/*
 * $Id: kern_main.c,v 1.9 2008/01/02 02:38:44 nbrk Exp $
 */
#include <sys/types.h>
#include <sys/kern_devconfig.h>
#include <sys/mem.h>
#include <sys/kern_time.h>
#include <sys/kern_sched.h>

#include <sys/devctl.h> /* XXX */
#include <arch/sam7s64/dev/gpio7segvar.h> /* XXX */

#include <libkern/printf.h>

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

	while(1)
			;
}