This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]