This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
The 640k barrier
- From: Leandro Fanzone <leandro at hasar dot com>
- To: ecos-discuss at sources dot redhat dot com
- Date: Mon, 29 Dec 2003 15:49:59 -0300
- Subject: [ECOS] The 640k barrier
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