[ECOS] eCos memory layout: other RAM Position than 0x0

Robert Meiche rmeiche@gmx.de
Tue Sep 15 16:46:00 GMT 2009

I have the problem, that i need to position eCos at another RAM position.

I'm doing a diploma thesis which  includes a multicore environment on an Virtex-II(XUP-BOARD). In this environment, the sections are located as following:
.boot 0xfffffffc
.boot0 0xffffe000

all the other sections are located in RAM beginning at position 0x0.

Now I need the position 0x0 for the PC of the microblaze CPU. So I wanted to position eCos at 0x100.
I modified the files
mlt_powerpc_virtex4_romram.h   and

The eCos configuration is set to romram startup-type. After building eCos, everything seems fine when I look at the linkerscript. 
Running a single threaded app works fine. But running a multithreaded app gives me the following error message:
Sorting data...ASSERT FAIL: <1>mlqueue.cxx[281]void Cyg_Scheduler_Implementation::rem_thread() Idle thread trying to sleep!
ASSERT FAIL: <1>mlqueue.cxx         [ 281] void Cyg_Scheduler_Implementation::rem_thread()                                                      I!TRACE: <1>thread.cxx          [ 224] Cyg_Thread::Cyg_Thread()                                                                             }}returdTRACE: <1>thread.cxx          [ 597] void Cyg_Thread::resume()              

The other Problem is, that the eCos configuration includes the POSIX compatibility layer. But after Changing the memory layout files, apps, which includes a main() function don't start until I rename them to cyg_user_start.

Does anyone ever changed the RAM Postion of eCos and can give me some hints?

GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01

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

More information about the Ecos-discuss mailing list