From 0846e98f0d40365fe04f5b990792bfd674b8d71b Mon Sep 17 00:00:00 2001 From: Terraneo Federico <fede.tft@hotmail.it> Date: Tue, 17 Apr 2012 16:05:09 +0200 Subject: [PATCH] Fixed fault handlers --- main.cpp | 17 +++++------------ miosix/config/Makefile.inc | 4 ++-- miosix/config/miosix_settings.h | 2 +- miosix/kernel/kernel.cpp | 1 + 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/main.cpp b/main.cpp index 74a32a07..1db1b55a 100644 --- a/main.cpp +++ b/main.cpp @@ -7,8 +7,12 @@ using namespace std; using namespace miosix; -void ledThread(void *) +int main() { + getchar(); + + ElfProgram prog(reinterpret_cast<const unsigned int*>(main_elf),main_elf_len); + Process::create(prog); for(;;) { ledOn(); @@ -17,14 +21,3 @@ void ledThread(void *) Thread::sleep(200); } } - -int main() -{ - Thread::create(ledThread,STACK_MIN); - - getchar(); - - ElfProgram prog(reinterpret_cast<const unsigned int*>(main_elf),main_elf_len); - Process::create(prog); - for(;;) Thread::sleep(1000); -} diff --git a/miosix/config/Makefile.inc b/miosix/config/Makefile.inc index 4fdf4fdc..ef5b472f 100644 --- a/miosix/config/Makefile.inc +++ b/miosix/config/Makefile.inc @@ -27,8 +27,8 @@ OPT_BOARD := stm32f207ig_stm3220g-eval ## -O2 is recomended otherwise, as it provides a good balance between code ## size and speed ## -#OPT_OPTIMIZATION := -O0 -OPT_OPTIMIZATION := -O2 +OPT_OPTIMIZATION := -O0 +#OPT_OPTIMIZATION := -O2 #OPT_OPTIMIZATION := -O3 #OPT_OPTIMIZATION := -Os diff --git a/miosix/config/miosix_settings.h b/miosix/config/miosix_settings.h index 42a80ac7..655c5310 100644 --- a/miosix/config/miosix_settings.h +++ b/miosix/config/miosix_settings.h @@ -130,7 +130,7 @@ const unsigned char MAX_OPEN_FILES=8; * mode, so to use debugging it is necessary to disble sleep in the idle thread. * By default it is not defined (idle thread calls sleep). */ -//#define JTAG_DISABLE_SLEEP +#define JTAG_DISABLE_SLEEP /// Minimum stack size (MUST be divisible by 4) const unsigned int STACK_MIN=256; diff --git a/miosix/kernel/kernel.cpp b/miosix/kernel/kernel.cpp index 38efdd53..965d7980 100644 --- a/miosix/kernel/kernel.cpp +++ b/miosix/kernel/kernel.cpp @@ -616,6 +616,7 @@ bool Thread::IRQreportFault(const miosix_private::FaultData& fault) return false; cur->proc->fault=fault; const_cast<Thread*>(cur)->flags.IRQsetUserspace(false); + ::ctxsave=cur->ctxsave; return true; } -- GitLab