Problem with rtems_event_send crashing from interrupt routine

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Jun 16 16:30:36 UTC 2015


Hello Andrei,

since this is probably a timing dependent bug it can disappear with every change in the system.  What happens if you run the latest version with --disable-rtems-debug and the following patch:

diff --git a/cpukit/score/include/rtems/score/watchdogimpl.h b/cpukit/score/include/rtems/score/watchdogimpl.h
index 0e04f64..0ef97bc 100644
--- a/cpukit/score/include/rtems/score/watchdogimpl.h
+++ b/cpukit/score/include/rtems/score/watchdogimpl.h
@@ -303,7 +303,11 @@ RTEMS_INLINE_ROUTINE void _Watchdog_Initialize(
   void                           *user_data
 )
 {
-  _Assert( the_watchdog->state == WATCHDOG_INACTIVE );
+  if ( the_watchdog->state != WATCHDOG_INACTIVE ) {
+    volatile int i = 1;
+    printk("oops");
+    while (i);
+  }
   the_watchdog->routine   = routine;
   the_watchdog->id        = id;
   the_watchdog->user_data = user_data;

----- Mr. Andrei Chichak <groups at chichak.ca> schrieb:
> Hello Sebastian,
> 
> Since your change, I have not been able to reproduce this error. Does that make any sense?
> 
> Andrei
-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.



More information about the users mailing list