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]

Stand-alone application working from RAM


Hi!

I have an custom MIPS board equipped with flash (at reset vector) and RAM
and here is boot procedure I would like to have:

1. What I have at power on:
-Small code for decompression of an eCos application from flash to RAM is
placed at the start of flash (reset vector)
-The compressed eCos application is ‘somewhere’ in the flash.

2. Code for decompression copies the eCos application to appropriate
location in RAM (of course, it is where the application is linked).

3. Decompression code starts application (jumps to its entry point).

4. The application works... :-)

In fact, I am worried only about point 4 since first three points are
working correctly. Namely, until now I worked with the application
configured for RAM linked at 0x80008000 and started/executed properly with
help of gdb (and gdb stubs in flash, of course). This configuration also had
CYGSEM_HAL_USE_ROM_MONITOR set to GDB_stubs. To get the described boot
procedure I disabled option CYGSEM_HAL_USE_ROM_MONITOR, recompiled
everything, but it does not work...
Of course, this is probably because I forgot to check exception vectors. My
application (eCos HAL) forces use of RAM exception vectors so I looked at
the HAL code for MIPS/my_platform and didn’t find any procedure/macro for
copying exception vectors to appropriate RAM location (maybe I forgot to
write it?). So, now I am going to link my application to 0x80000000 (my
rom_vectors section is at the beginning of code) and hope that it will work.
Otherwise, I will have to go deeper into HAL...
Anyway, I wonder is there maybe anything else that I should care about?


Thanks and best regards,
Jura



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