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