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]

Re: ecos start in ram


>>>>> "James" == james chen <james_ch1@sina.com> writes:

    James>         now I am porting eCos to my test board (based
    James> ARM7TDMI), the ROM address is 0x0 and the RAM address is
    James> 0xc000000, but in ecos the RAM address is 0x0, so how to
    James> config memory layout to run Redboot and eCos? I also think
    James> the vectors.S file should be changed, will you tell any?

IIRC on some ARM processors you normally need RAM at location 0x0,
because that is where interrupt vectors etc. are held. You also need
ROM at location 0x0 because bootstraps happen from that address. In
the absence of an MMU, the normal way to resolve this is to have a
memory remap facility: on power up there is ROM at location 0x0, so
bootstrap can proceed; early on during the bootstrap, the remap switch
is toggled and the memory map changes; the ROM moves somewhere else in
memory, and there is now RAM at location 0x0 so that the interrupt
vectors etc. can be updated.

So for a typical eCos application, the RAM might be at 0xC0000000
immediately after power-up but it will be remapped to 0x0 early on.
Hence the eCos memory map will have RAM at 0x0.

The exact details are of course hardware-specific, and will have to be
addressed by your platform port.

Bart


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