Workspace usage trouble

Cedric Aubert cedric_aubert at yahoo.fr
Fri Jan 16 16:33:15 UTC 2004


Thanks a lot

Great idea to do a macro, I will do it Monday !!! :-)
Yes in France Friday is finished (or near to be :-))

I will post my result later :-)

Thanks, and have a nice week end !

Cedric

> -----Original Message-----
> From: Joel Sherrill [mailto:joel at OARcorp.com]
> Sent: Friday, January 16, 2004 5:12 PM
> To: cedric_aubert at yahoo.fr
> Cc: Joel Sherrill; RTEMS-USERS
> Subject: Re: Workspace usage trouble
>
>
> Cedric Aubert wrote:
>
> > 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 ?
>
> Not off the cuff.  If you have printk, you could
> augment workspace_allocate to print out what size
> blocks it is allocating.
>
> Or .. even better.. define workspace_allocate as
> a macro that calls the real workspace_allocate
> (slightly renamed).  Then the macro could print
> the file, line number and arguments as strings.
> Do you have a working printk?
>
> > 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
>
>
> --
> Joel Sherrill, Ph.D.             Director of
Research & Development
> joel at OARcorp.com                 On-Line
Applications Research
> Ask me about RTEMS: a free RTOS  Huntsville AL 35805
> Support Available                (256) 722-9985
>


__________________________________
Do you Yahoo!?
Yahoo! Hotjobs: Enter the "Signing Bonus" Sweepstakes
http://hotjobs.sweepstakes.yahoo.com/signingbonus



More information about the users mailing list