Workspace usage trouble
Cedric Aubert
cedric_aubert at yahoo.fr
Fri Jan 16 14:25:34 UTC 2004
Thanks a lot, I will try this but
I take a look in the libc_start_hook() function and
I have the reent structure allocated with calloc, so
it should be in heap, no ?
In fact, I have just look at the CVS, this feature is
true since rtems-4.6.0-pre5 and rtems-4.6.0-branch but
I use the rtems-4.6.0-pre4 so, reent struct still
allocate
in my heap.
Any idea ?
Cedric
> -----Original Message-----
> From: Joel Sherrill
[mailto:joel.sherrill at oarcorp.com]
> Sent: Friday, January 16, 2004 1:08 PM
> To: cedric_aubert at yahoo.fr
> Cc: RTEMS-USERS
> Subject: Re: Workspace usage trouble
>
>
> Cedric Aubert wrote:
>
> >Hi all,
> >
> >I have some trouble with my workspace size. All
work
> >fine when I put some
> >wrong number of task or semaphore or file
dexcriptors
> >but when I put the
> >real number (with some upper number for task
semaphore
> >and file descriptor)
> >that's don't work, it can't open allocate some task
or
> >other object in the
> >workspace.
> >
> >So how can I see the available memory left in
> >workspace ?
> >
> >
> I have worked up a routine to get information and
free space left in the
> heap but it has not been tested.
>
> >How can I known witch object use the workspace ?
> >
> >What I missed to specifie ?
> >
> >I take a look in the condefs but it seem to have
> >nothing forgotten.
> >
> >
> >
> Given the inquiry yesterday on the list and a
night's, I think I
> remembered it:
>
>
> /*
> * reent struct allocation moved here from
libc_start_hook() to avoid
> * mutual exclusion problems when memory is
allocated from the start hook.
> *
> * Memory is also now allocated from the workspace
rather than the heap.
> * -- ptorre 9/30/03
> */
>
> The newlib C library reent extension was in the heap
and is now in the
> workspace.
> That needs to be accounted for in confdefs.h on a
per task basis.
> Try this
> hack/patch and see if it helps:
>
> $ cvs diff -u confdefs.h
> Index: confdefs.h
>
===================================================================
> RCS file:
/usr1/CVS/rtems/cpukit/sapi/include/confdefs.h,v
> retrieving revision 1.55.2.1
> diff -u -r1.55.2.1 confdefs.h
> --- confdefs.h 4 Sep 2003 18:47:20 -0000
1.55.2.1
> +++ confdefs.h 16 Jan 2004 12:05:46 -0000
> @@ -805,12 +805,15 @@
> #define CONFIGURE_OBJECT_TABLE_STUFF \
> ( sizeof(Objects_Control *) + sizeof(rtems_name
*) +
> sizeof(rtems_name) )
>
> +#include <reent.h>
> +
> #define CONFIGURE_MEMORY_FOR_TASKS(_tasks) \
> (((_tasks) + 1 ) * \
> ((sizeof(Thread_Control) + CONTEXT_FP_SIZE + \
> STACK_MINIMUM_SIZE + sizeof(
RTEMS_API_Control ) + \
> CONFIGURE_MEMORY_PER_TASK_FOR_POSIX_API + \
> CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API + \
> + sizeof(struct reent) + \
> CONFIGURE_OBJECT_TABLE_STUFF)) \
> )
>
>
>
>
> >Thanks a lot
> >
> >Cedric
> >
> >
> >/* configuration information */
> >
> >#include <bsp.h>
> >#include <rtems.h>
> >#include <stdlib.h>
> >#include <stdio.h>
> >#include <string.h>
> >#include <Task.h>
> >
> >#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER //
Use
> >console
> >
> >#define CONFIGURE_RTEMS_INIT_TASKS_TABLE //
Utiliser
> >la table Init Task
> >plus bas
> >
> >#define CONFIGURE_MAXIMUM_TASKS
> 53 // 32 SDEL
> >Task and 1 RTEMS Init
> >Task
> >#define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES 10
> >// Nombre de MailBox
> >#define CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS 3
> >// Signal
> >#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
300
> > // Nombre Max de
> >File Descriptor
> >#define CONFIGURE_MAXIMUM_SEMAPHORES
> 500 //
> >Nombre Max de Semaphore
> >#define CONFIGURE_NUMBER_OF_TERMIOS_PORTS 12
> //
> >Nombre Max de Port
> >Serie
> >
> >#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM // A
la
> >place de MiniIMFS pour
> >avoir le support des link
> >
> >// #define CONFIGURE_MEMORY_OVERHEAD
500
> >// Ko suplementaire
> >
> >#define STACK_CHECKER_ON
> 1 // Activation du
> >Stach Check
> >
> >#define CONFIGURE_INIT
> >
> >
> >rtems_task Init(rtems_task_argument)
> >{
> > /* Starting Application */
> >}
> >
> >/*
> > * The user is defining their own table
information
> >and setting the
> > * appropriate variables.
> > */
> >
>
>/****************************************************************
> ***********
> >******************/
> >
> >#define CONFIGURE_HAS_OWN_INIT_TASK_TABLE
> >
> >#ifdef CONFIGURE_HAS_OWN_INIT_TASK_TABLE
> >
> >#undef CONFIGURE_INIT_TASK_NAME
> >#define CONFIGURE_INIT_TASK_NAME
> >rtems_build_name( 'm', 'a', 'i',
> >'n' )
> >
> >#undef CONFIGURE_INIT_TASK_STACK_SIZE
> >#define CONFIGURE_INIT_TASK_STACK_SIZE
> >RTEMS_MINIMUM_STACK_SIZE // 0x6000
> >de place laissé par FBUG
> >
> >#undef CONFIGURE_INIT_TASK_PRIORITY
> >#define CONFIGURE_INIT_TASK_PRIORITY 1
> >
> >#undef CONFIGURE_INIT_TASK_ATTRIBUTES
> >#define CONFIGURE_INIT_TASK_ATTRIBUTES
> >RTEMS_DEFAULT_ATTRIBUTES
> >
> >#undef CONFIGURE_INIT_TASK_ENTRY_POINT
> >#define CONFIGURE_INIT_TASK_ENTRY_POINT Init
> >
> >#undef CONFIGURE_INIT_TASK_INITIAL_MODES
> >#define CONFIGURE_INIT_TASK_INITIAL_MODES
> >RTEMS_PREEMPT
> >
> >#undef CONFIGURE_INIT_TASK_ARGUMENTS
> >#define CONFIGURE_INIT_TASK_ARGUMENTS 0
> >
> >#ifdef CONFIGURE_INIT
> >
> >rtems_initialization_tasks_table
> >Initialization_tasks[] = {
> > { CONFIGURE_INIT_TASK_NAME,
> > CONFIGURE_INIT_TASK_STACK_SIZE,
> > CONFIGURE_INIT_TASK_PRIORITY,
> > CONFIGURE_INIT_TASK_ATTRIBUTES,
> > CONFIGURE_INIT_TASK_ENTRY_POINT,
> > CONFIGURE_INIT_TASK_INITIAL_MODES,
> > CONFIGURE_INIT_TASK_ARGUMENTS
> > }
> >};
> >
> >#endif
> >
> >#define CONFIGURE_INIT_TASK_TABLE
Initialization_tasks
> >
> >#define CONFIGURE_INIT_TASK_TABLE_SIZE \
> > sizeof(CONFIGURE_INIT_TASK_TABLE) /
> >sizeof(rtems_initialization_tasks_table)
> >
> >#endif /* CONFIGURE_HAS_OWN_INIT_TASK_TABLE */
> >
>
>/****************************************************************
> ***********
> >******************/
> >
> >#include <confdefs.h>
> >
> >--
> >Cedric AUBERT
> >Ingenieur Recherche et Developpement
> >SDEL Controle Commande
> >D2A - Rue Nungesser et Coli
> >44860 Saint Aignan de Grand Lieu
> >FRANCE
> >
> >Tel : +33 (0)2 40 84 50 00
> >Poste : 5109
> >Fax : +33 (0)2 40 84 51 10
> >
> >E-mail : cedric_aubert at yahoo.fr
> >Web : http://www.sdelcc.com
> >
__________________________________
Do you Yahoo!?
Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus
More information about the users
mailing list