This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: boot ecos from Assabet
- To: Robert Lee <rlee_1900 at yahoo dot com>
- Subject: Re: [ECOS] boot ecos from Assabet
- From: Gary Thomas <gthomas at redhat dot com>
- Date: 18 Oct 2001 10:44:28 +0900
- Cc: ecos-discuss at sourceware dot cygnus dot com
- References: <20011018013600.34874.qmail@web9003.mail.yahoo.com>
On Thu, 2001-10-18 at 10:36, Robert Lee wrote:
> Let me see whether we are "synchronized". In
> ecos.ecc,
> the default value of CYG_HAL_STARTUP is "ROM":
>
> cdl_component CYG_HAL_STARTUP {
> # Flavor: data
> # No user value, uncomment the following line to
> provide one.
> # user_value ROM
> # The inferred value should not be edited
> directly.
> inferred_value ROM
> # value_source inferred
> # Default value: ROM <-------
> # Legal values: "RAM" "ROM"
>
> I guess this is good.
>
> > ecosconfig tree
> > make
>
> Then, I change directory to example and type
> > make hello
>
> An executable "hello" is created but it is ELF (by
> "file hell"). I suspect it is still a program to
> execute in RAM; I haven't created a program that can
> run from ROM. Is this right? What am I missing?
>
You need to convert that image into something which can be
programmed into the ROM/FLASH.
% arm-elf-objcopy -O binary hello hello.bin
Then program the file hello.bin into the FLASH.
You can tell something about the program by it's memory map.
% arm-elf-objdump -h hello
This will tell you the "virtual" address of each section. In
particular, on the Assabet, ROM programs will have their TEXT
segment in the range 0x50000000. Notice that this is _not_
the physical address of the ROM/FLASH. The eCos startup code
(which will be present in the image) will use the MMU to map
the ROM to the appropriate address.