_Internal_error_Occurred() in _Thread_Handler()

Joel Sherrill Joel.Sherrill at OARcorp.com
Thu Mar 28 14:03:10 UTC 2013


Just to directly answer the question about the idle thread. It is perfectly normal to have a system where that is the only ready thread. Even ticker spends most of its execution time in this state.

POSIX threads implicitly delete themselves when they return.

It is a fatal error for Classic API tasks to do so.

This is just one example of the differing philosophies behind the two APIs.

--joel

Sebastian Huber <sebastian.huber at embedded-brains.de> wrote:


On 03/28/2013 01:26 PM, Matthew J Fletcher wrote:
> Hi,
>
> I am getting the above and presume i've made a mistake in some part of my setup.
>
> I know task switching works, i switch between the idle task and my Init() task
> fine, this error seems to occur in the task switch that occurs after i
> rtems_task_suspend() the Init() task. That in itself i guess is fine, most of
> the examples do it.
>
> Would the above happen if there were no ready to be scheduled tasks except the
> idle task ?

The only internal error in _Thread_Handler() is INTERNAL_ERROR_THREAD_EXITTED.
  The classic API tasks must not return.  You have to delete them, e.g. with
rtems_task_delete(RTEMS_SELF);

--
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.
_______________________________________________
rtems-users mailing list
rtems-users at rtems.org
http://www.rtems.org/mailman/listinfo/rtems-users




More information about the users mailing list