[ECOS] Signals not being Delivered

Brian D. Bolinger bbolinger@logikos.com
Wed Nov 15 13:34:00 GMT 2000


I'm using POSIX calls (timer_create and timer_settime) to create a timer
that expires every 10 milliseconds and delivers one of the real-time
signals to the process upon expiration.

It works great on the on the Linux synthetic target platform.  When I
move to a SH3 development board, the signal is only being delivered
once.

Debugging the software showed me the following things:
1.  If you put a break point in the signal handler, and continue when it
hits the break point, signals will continue to be delivered
indefinitely.
2.  If the timer is set up in a thread that repeatedly calls sleep(1) in
an infinite loop, between 5 and 7 signals will be delivered before they
mysteriously stop.
3.  If the timer interval is increased to 100 milliseconds, everything
operates correctly.  clock_getres returned 10 milliseconds.
4.  The clock_gettime function indicated that CLOCK_REALTIME was still
running.

Are there known problems with signal delivery on certain targets?
Anyone know of any clever workarounds other than increase the timer
interval?

Thanks,
Brian Bolinger.



More information about the Ecos-discuss mailing list