[ECOS] The 640k barrier

Leandro Fanzone leandro@hasar.com
Mon Dec 29 19:05:00 GMT 2003

I already wrote about this in another thread, but as I didn't receive an 
answer, I try to create a dedicated thread for this. I'm doing some 
testing on eCos, and I'm trying to figure out if it fits our needs. I 
wanted to quickly find out how much heap I have, so I made a floppy test 
that mallocs memory until malloc returns NULL: some 140k of heap, and 
that's it. We're planning a 2M i386 board, and though I declare through 
the mlt_i386_pc_floppy files such thing, malloc always stops when the 
pointer reaches the 640k barrier. It's also a concern for us that the 
code can't be moved to the upper meg, because the linker complains 
"relocation truncated to fit", something related to vectors.o, so I 
assume that the interrupt vectors drag the code to the lower meg, and 
therefore can't be moved that high. Our code will be large enough to 
exceed the 640k, so the best for us would be to map the code in the 
upper meg, and let data and heap in the lower 640k. Can someone help me 
with this? I already modified the mlt_i386_pc_floppy.* files, but with 
no success so far. Either I have linker errors, or it doesn't boot at 
all. The documentation isn't much explicit about the this.
Thank you in advance,

Leandro Fanzone.

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