From 558bf072fff36ae9f09e332cf8aa536db8ef17c0 Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Sat, 30 Aug 2014 19:20:30 +0200 Subject: minor fixes --- kernel/kernel.c | 6 +++--- kernel/task.c | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'kernel') diff --git a/kernel/kernel.c b/kernel/kernel.c index eee66d7..9e8108f 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -158,9 +158,6 @@ void kernel_main(uint32_t initial_stack) int_install_ir(17, 0b10001110, 0x08,&int_irq17); int_install_ir(18, 0b10001110, 0x08,&int_irq18); - // multitasking - task_init(); - // now we can enable interrupts back again int_enable(); @@ -175,6 +172,9 @@ void kernel_main(uint32_t initial_stack) //init shell shell_init(); + + // multitasking + task_init(); /* log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"test mem"); diff --git a/kernel/task.c b/kernel/task.c index fb71640..8884079 100644 --- a/kernel/task.c +++ b/kernel/task.c @@ -5,6 +5,8 @@ #include "../lib/logger/log.h" // logger facilities #define FOOLOS_MODULE_NAME "task" +int started; + void task_test1() { uint8_t c1; @@ -88,6 +90,8 @@ void task_create(int pid,void(*thread)()) uint32_t task_switch_next(uint32_t oldesp) { + + if(started!=0xabcde) return oldesp; if(CurrentTask != -1){ //Were we even running a task? @@ -119,6 +123,7 @@ void stack_trace(uint32_t *stack,int size) void task_init() { + started=0xabcde; log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"init multitasking."); task_create(0,task_test1); task_create(1,task_test2); -- cgit v1.2.3