Creation of initial task fails with RTEMS_UNSATISFIED

Chris Johns chrisj at rtems.org
Tue Aug 22 09:27:22 UTC 2006


Ingolf Steinbach wrote:
> 
> in my application, the creation of the initial task
> (rtems_task_create() within _RTEMS_task_Initialize_user_tasks()
> in cpukit/rtems/src/taskinitusers.c) fails with error
> RTEMS_UNSATISFIED.
> 
> What configuration needs to be modified in order to
> avoid the error?
> 

You should increase the number of tasks. Driver can contain tasks and 
this would consume the single task resource you have allocated.

> A bit of additional information:
> 
> RTEMS configuration:
> #include <rtems.h>
> #define CONFIGURE_INIT
> #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
> #define CONFIGURE_INIT_TASK_ENTRY_POINT InitBoot
> #define CONFIGURE_MAXIMUM_TASKS       1

Increase this number.

> #define CONFIGURE_MAXIMUM_TIMERS     1
> #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
> #define CONFIGURE_INIT_TASK_ATTRIBUTES (RTEMS_DEFAULT_ATTRIBUTES | 
> RTEMS_FLOATING_POINT)
> #include <confdefs.h>
> 
> 
> 
> GDB trace:
> (gdb) where
> #0  0x400054f8 in _Internal_error_Occurred (the_source=4064288736,
>     is_internal=1, the_error=13)
>     at /opt/rtems-4.6/src/rtems/cpukit/score/src/interr.c:57
> #1  0x4000dd40 in _RTEMS_tasks_Initialize_user_tasks ()
>     at /opt/rtems-4.6/src/rtems/cpukit/rtems/src/taskinitusers.c:72
> #2  0x4000a9cc in _API_extensions_Run_postdriver ()
>     at /opt/rtems-4.6/src/rtems/cpukit/score/src/apiext.c:79
> #3  0x40005390 in rtems_initialize_executive_early (
>     configuration_table=0x4001a7dc, cpu_table=0x4001a7b4)
>     at /opt/rtems-4.6/src/rtems/cpukit/sapi/src/exinit.c:280
> #4  0x40003740 in boot_card (argc=0, argv=0x0, envp=0x0)
>     at 
> ./../../../../../../../../rtems-4.6.1/c/src/lib/libbsp/shared/bootcard.c:115 
> 
> #5  0x400010dc in zerobss ()
> 
> (gdb) print BSP_Configuration
> $1 = {work_space_start = 0x40078e40, work_space_size = 28672,
>   maximum_extensions = 1, microseconds_per_tick = 500,
>   ticks_per_timeslice = 50, maximum_devices = 20, maximum_drivers = 1,
>   number_of_device_drivers = 1, Device_driver_table = 0x40018af4,
>   number_of_initial_extensions = 0, User_extension_table = 0x0,
>   User_multiprocessing_table = 0x0, RTEMS_api_configuration = 0x4001a788,
>   POSIX_api_configuration = 0x4001a760, ITRON_api_configuration = 0x0}
> 
> (gdb) print maximum
> $2 = 1
> 
> (gdb) print user_tasks[0]
> $6 = {name = 1430860064, stack_size = 4096, initial_priority = 1,
>   attribute_set = 1, entry_point = 0x400011f4 <InitBoot>, mode_set = 256,
>   argument = 0}
> 
> I have 512kB of RAM at location 0x40000000. The "end" symbol
> is at 0x4001b268.
> 
> 
> This is on RTEMS-4.6.5 on leon2.
> 
> Cheers
>     Ingolf



More information about the users mailing list