nanosleep blocks inifinity (internal rtems deathlock?) even CPU is in idle Task
sebastian.huber at embedded-brains.de
Fri Nov 16 08:42:30 UTC 2012
On 11/16/2012 08:48 AM, Matthias Goldhoorn wrote:
> On 15.11.2012 19:45, Chris Johns wrote:
>> Matthias Goldhoorn wrote:
>>> On 15.11.2012 14:52, Sebastian Huber wrote:
>>>> On 11/15/2012 01:26 PM, Matthias Goldhoorn wrote:
>>>>> On 15.11.2012 11:52, Sebastian Huber wrote:
>>>>>> On 11/15/2012 10:44 AM, Matthias Goldhoorn wrote:
>>>>> Yeah it's both defined.
>>>>> The nanosleep sometimes (mostly) works.
>>>>> Only if some interrupts during the sleep i got this non-awaking
>>>>> behavior it seems strange.
>> Which interrupts are happening that cause the sleep to not wake up, ie the
>> timer to not fire ?
>> What concerns me with the 'rtems_posix_threads' list you posted is no IDLE
>> task which leads me to think any classic threads are not listed. Is there
>> something else loading the CPU ? Maybe a classic thread created by the BSP.
> First of all:
> Questions to _Watchdog_Ticks_since_boot
> the _Watchdog_Ticks_since_boot is incrementing after watch interrupt that
> results of the br to rtems_clock_tick()
The _Watchdog_Ticks_since_boot value is incremented with each call to
rtems_clock_tick(). The rtems_clock_tick() is called normally by the clock
driver interrupt handler.
> Question regarding to an simple example or my current setup:
> i attached the RTEMS initialization classes for my base-system. The whole rest
> is rock standard, but i don't have an out of the box bootstrap or simple
> example because i glued rock and rtems together.
> I currently working by side of this problem to integrate the whole RTEMs think
> into ROCK itself as an clean bootstrap. If i finished this (hopefully in the
> next days) i could send you the link howto bootstrap this.
> This might then also be interesting for RTEMs users that to Robot control in
> general. But i got offtopic...
If you don't know the exact stack requirements, then it my help to use the
stack checker (for <rtems/confdefs.h>).
You can also use the "stackuse" RTEMS shell command.
> Questions to another bsp:
> Not yet
> Regarding to the missing idle thread:
> I think this idle function is only directly called from the scheduler and not
> an "real" rtems thread or thread?!
The idle thread is a normal thread. The only restriction is that it must not
call a potentially blocking function.
> To the point no source lines available:
> I dont know why GDB could not figure out the code inside of the clock interrupt
> function for everything expect this function i have code lines...
Particular easy to use simulators are the built-in GDB simulators for the
"sis", "psim", or "jmr3904" BSPs.
Sebastian Huber, embedded brains GmbH
Address : Obere Lagerstr. 30, D-82178 Puchheim, Germany
Phone : +49 89 18 90 80 79-6
Fax : +49 89 18 90 80 79-9
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