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]

Initialised RAM data and AXD/Multi-ICE on ARM targets


Hi all,
I've got a problem which I'll try to describe here:
I'm porting the eCOS kernel onto an ARM board. I use AXD and MultiICE
in order to load the eCOS elf image onto the board (I'm not using
Redboot and therefore the eCOS HAL is my bootloader).

When I load the ELF image with AXD it initialises the RAM data from
__ram_data_start to __ram_data_end before the program starts. So there
would be no need to relocate those data from ROM to RAM in vectors.S.
Worse than that, AXD doesn't actually set the data from
__rom_data_start. Therefore, unless I comment out the piece of code in
vector.S that copies data, correct values in RAM are overwritten with
random values after reset.
If I comment it out, it works fine. eCOS runs and I can start threads
and so on.

However, I run into troubles when I want to reset the board and start
the program again without reloading the image with AXD. I really need
to be able to reset the board without loading the image again so I'm
looking for advice on how to do that?

How do you people using AXD and MultiIce usually handle initialised
data? Is there a way of telling AXD that it should let the program do
data initialisation ?

Thanks in advance for your help,
I'm a bit stuck there,
Cheers,
Greg.

--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


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