Add missing assert.
[bertos.git] / app / demo / demo.c
index 2853f01a16b50c46416fb23137dee761af15963d..9c2169ccef7e1236b2c464016341906a902468de 100644 (file)
  * invalidate any other reasons why the executable file might be covered by
  * the GNU General Public License.
  *
- * Copyright 2006 Develer S.r.l. (http://www.develer.com/)
- *
+ * Copyright 2006, 2008 Develer S.r.l. (http://www.develer.com/)
  * -->
  *
- * \version $Id: demo.c 18242 2007-10-08 17:35:23Z marco $
+ * \brief Multifunction system test for BeRTOS modules.
  *
+ * \version $Id: demo.c 18242 2007-10-08 17:35:23Z marco $
  * \author Bernie Innocenti <bernie@codewiz.org>
- *
- * \brief Windowing system test.
  */
 
 #include <cfg/macros.h>
 
 #include <emul/emul.h>
 
+#include <kern/irq.h>
 #include <kern/proc.h>
+#include <kern/monitor.h>
 #include <kern/msg.h>
 
 #include <drv/timer.h>
@@ -59,6 +59,9 @@
 
 /**
  * Draw a pentacle in the provided bitmap.
+ *
+ * This is invoked by the keyboard polling routine, as a poor man's surrogate
+ * of true task switching.
  */
 void schedule(void)
 {
@@ -291,17 +294,22 @@ static struct MenuItem main_items[] =
 static struct Menu main_menu = { main_items, "Main Menu", MF_STICKY, &lcd_bitmap, 0 };
 
 
+static cpu_stack_t monitor_stack[CONFIG_KERN_MINSTACKSIZE / sizeof(cpu_stack_t)];
+
 int main(int argc, char *argv[])
 {
        emul_init(&argc, argv);
+       irq_init();
        timer_init();
        buz_init();
        kbd_init();
        lcd_init();
        proc_init();
+       monitor_start(sizeof(monitor_stack), monitor_stack);
 
        menu_handle(&main_menu);
 
+       timer_cleanup();
        emul_cleanup();
        return 0;
 }