[ECOS] Synthetic Linux Target App Startup Problem

Joel Hansen JHANSEN7@cfl.rr.com
Thu Dec 12 14:39:00 GMT 2002


I've run into a problem I'm not sure where to look to fix.   I'm porting a
fairly complex program to eCos under the Linux synthetic target.  The
program compiles fine however when I start it under GDB it hangs.  I know
it's using malloc to request some sizeable blocks of memory. Initially
(under doug lea's memory mgt ) it hangs at :

In CYG_HAL_NEWSELECT () at heaps.cxx:19
CYG_MEMPOOL_DAMALLOC CYGMEM_POOL_HEAP1 ((CYG_UNIT8 *) CYGMEM_SECTION_HEAP1,
CYGMEM_SECTION_HEAP!_SIZE) CYGBID_ATTRIB_INIT_PRI(CYG_INIT_MEMALLOC)
then stepping through the code it loops through hal_idle_thread_action......

Thinking it might be a memory limitation under the standard synthetic
configuration, I increased RAM using prior posting guidance modifying the
mlt_synth_i386_rom.ldi and .h files.
I increased memory and received the same error until I hit a limitation
where synth_entry.c errored when calling cyg_hal_sys_brk().

I changed to using the block memory implementation and receive the error in
CYG_HAL_NEWSELECT() at mbox.cxx:165. and another loop.

I've run the basic tests for the synthetic target compiled under eCos
configure and they all work great. The program runs on Linux directly
(without eCos) without errors.

Are there limits in eCos on how much memory can be allocated for/within a
program or are limits based on the actual system memory?

Any help is greatly appreciated.
Joel Hansen




-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss



More information about the Ecos-discuss mailing list