[ECOS] again ROMRAM startup on SA1100
Andrew Lunn
andrew.lunn@ascom.ch
Mon Jun 11 06:58:00 GMT 2001
On Mon, Jun 11, 2001 at 03:36:18PM +0200, Andreas Bürgel wrote:
> Hi folks,
>
> I may have a working version now, but I found it far too easy to do.
> So I suppose it's wrong somewhere. Here's what I did:
[..]
> My application now starts from ROM and seems to run in RAM, but there
> *must* be a trap waiting for me (?).
Where do you jump from ROM to RAM. I could not see it in your code. My
relocation code does..
#if defined(CYG_HAL_STARTUP_ROMRAM)
#define RELOCATE_TEXT_SEGMENT ;\
ldr r2,=__exception_handlers ;\
ldr r3,=CYGMEM_REGION_rom ;\
cmp r2,r3 ;\
beq 20f ;\
ldr r4,=__rom_data_end
;\
15: ;\
ldr r0, [r3], #4 ;\
str r0, [r2], #4 ;\
cmp r2, r4 ;\
bne 15b ;\
b __new_pc ;\
__new_pc: ;\
20:
The b __new_pc is important. This is where is jumps from ROM to
RAM. Do you have an equivelent somewhere? You have to be carefull
about the address you are branching to. You dont want to make a
relative jump of 1 instruction, since you still end up on ROM. You
have to make big jump down into RAM. I just copied this code from Dave
Airlie.
Andrew
More information about the Ecos-discuss
mailing list