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]

Problems booting from FLASH on ARM7/AT91


Hi,

I am using a custom board with an ARM7/AT91FR4081 and I have used the EB01
port as a starting point for my platform port.

When building for RAM, I have no problems and  eCos and the applications are
running perfectly. But when I build for ROM, things start to get bad...

At first I had problems booting from FLASH, which lead to that I had to set
the reset vector manually in vectors.S to point at the start of the text
segment. This worked out fine, even though it is an ugly approach.

eCos boots up and executes hal_platform_setup.h which initializes all Chip
Selects and performs a remap. The data segment is copied to it's final
destination in RAM. cyg_start.cpp executes and starts the driver for the LCD
display that we have on the board. The first thread that displays a welcome
message on the LCD also starts. But right after that, it seems like
everything just locks up. And I just can't understand why.

Unfortunately, the design is so compact that it is very hard to get access
to the data and address bus. My debugger won't give me much support either
(Wiggler with OCDemon). 

I appreciate all input. 

Regards,

/Karl-Magnus Möller

I have mapped the memory like this:
0x0000 0000 - 0x1001 FFFF (128kb External RAM at 10000000-1001FFFF+8kb )
and 
0x8000 0000 - 0x800F FFFF (1Mb internal FLASH connected to CS0)

This is my mlt_arm_eb01_rom.mlt:

version 0
region ram 0 10020000 0 !
region rom 80000000 100000 1 !
section fixed_vectors 0 1 1 1 1 0 1 0 20 80000020 !
section data 0 1 1 1 1 1 1 0 10000100 80040000 bss !
section bss 0 4 0 1 0 0 0 0 !
section rom_vectors 0 1 0 1 1 0 1 0 80000000 80000000 !
section text 0 1 0 1 1 1 1 1 80000100 80000100 fini fini !
section fini 0 4 0 1 0 1 0 1 rodata rodata !
section rodata 0 4 0 1 0 1 0 1 rodata1 rodata1 !
section rodata1 0 4 0 1 0 1 0 1 fixup fixup !
section fixup 0 4 0 1 0 1 0 1 gcc_except_table gcc_except_table !
section gcc_except_table 0 4 0 1 0 0 0 0 !




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