This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: problem with memory allcoation
- From: "Mayank Sharma" <mayanks at mindtree dot com>
- To: "Andrew Lunn" <andrew dot lunn at ascom dot ch>
- Cc: <ecos-discuss at sources dot redhat dot com>
- Date: Tue, 6 Aug 2002 15:31:51 +0530
- Subject: RE: [ECOS] problem with memory allcoation
ok after creating the pool mentioned earlier i do the following
> int *a;
> a = (int *)cyg_mempool_var_alloc(pool,sizeof(int));
> *a = 32;
> <some_instruction>;
when i am running the above code thru GDB, after the <some_instruction> the
value of *a is not 32 but some corrupted value.
remember the above code is running in a thread and not in the
cyg_user_start(), the memory pool was created in cyg_user_start().
any clues ?
Rgds,
Mayank
> -----Original Message-----
> From: Andrew Lunn [mailto:andrew.lunn@ascom.ch]
> Sent: Tuesday, August 06, 2002 3:31 PM
> To: Mayank Sharma
> Cc: ecos-discuss@sources.redhat.com
> Subject: Re: [ECOS] problem with memory allcoation
>
>
> On Tue, Aug 06, 2002 at 03:21:49PM +0530, Mayank Sharma wrote:
> > Hi Listers,
> > I am facing a peculiar problem with respent to
> allocating memory. I
> > am creating a memory pool using the following code
> >
> > > static cyg_mempool_var memobj;
> > > static cyg_uint8 mem[4096];
> > > cyg_mempool_var_create(mem, 4096,
> &(rtosPool.memHandle), &memobj);
>
> This looks OK.
>
> >
> > Then i start a thread (allocate the stack memory from the above
> > pool). In the thread i am allocating memory to a variable.
>
> How do you allocate the memory?
>
> We need more details. My guess is that your stack is on top of *a.
>
> Andrew
>
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss