diff options
| author | mbbill <[email protected]> | 2009-12-29 08:13:45 +0000 |
|---|---|---|
| committer | mbbill <[email protected]> | 2009-12-29 08:13:45 +0000 |
| commit | 54453a0748bbf6b6c5764f6becb81f8557b9e87f (patch) | |
| tree | 3b644404bd856233e1cabdc3d6766ed9dc9ff6ec /libcpu | |
| parent | 8a590215b66ac780c9d5a168146b945b8071dcf6 (diff) | |
FIX: Revert thread.c and rtthread.h to previous version.
FIX: Abort handler will suspend current thread instead of terminate it.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@260 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'libcpu')
| -rw-r--r-- | libcpu/arm/AT91SAM7X/trap.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/libcpu/arm/AT91SAM7X/trap.c b/libcpu/arm/AT91SAM7X/trap.c index 513871a462..8bc0559d23 100644 --- a/libcpu/arm/AT91SAM7X/trap.c +++ b/libcpu/arm/AT91SAM7X/trap.c @@ -36,11 +36,13 @@ void rt_hw_trap_fiq() { rt_kprintf("fast interrupt request\n"); } - -extern void rt_thread_exit(void); +
+extern struct rt_thread* rt_current_thread; void rt_hw_trap_abort() -{ - rt_thread_exit(); - rt_kprintf("Abort occured, thread terminated.\n"); +{
+ rt_kprintf("Abort occured!!! Thread [%s] suspended.\n",rt_current_thread->name);
+ rt_thread_suspend(rt_current_thread);
+ rt_schedule(); + } /*@}*/ |
