This is the mail archive of the ecos-discuss@sourceware.org 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]

Re: eCos 3.0 and TS2750


On 8/3/2011 12:38 AM, John Dallaway wrote:
JJ

gmail wrote:

I think that I am making progress as at least I've been able to build
the library and the tests.

Though I am not able to load the tests either via the 'Run Tests' or the
Redboot 'load' command.

The 'load' command appears to indicate that the file is not linked
correctly as I get the error message:

     Abort! Attempt to load ELF data to address: 0x00008000 which is not
in RAM.

I've tried configuring the Startup type: to RAM but I get a build error
that the mlt_arm_arm9_ts7250_ram.ldi does not exist.

I am trying build  and load via the Redboot monitor, is this the right
method for building for that scenario?
I have not looked at the sources, but you would generally build eCos for
RAM startup if you wish to download to RAM via the RedBoot "load"
command or RedBoot's GDB stub. It would appear that the TS7250 RedBoot
port does not include a linker script for RAM startup, hence the build
error. Perhaps the TS7250 RedBoot port was developed primarily for
launching non-eCos executables?

Compare your TS7250 platform HAL package with other platform HAL
packages to see how mlt_arm_arm9_ts7250_ram.ldi and
mlt_arm_arm9_ts7250_ram.h could be implemented. These files are usually
located in the include/pkgconf/ directory of the various eCos platform
HAL packages.

I hope this helps.

John Dallaway
eCos maintainer
http://www.dallaway.org.uk/john

I did implement a mlt_arm_arm9_ts7250_ram.ldi and .h file but it still looks like all of the test programs are getting linked at the 0x8000 starting point.

Running the arm-eabi-size program on one of the test programs (i.e. bin_sem0) yields:

bin_sem0  :
section              size      addr
.debug_aranges     0x2318       0x0
.debug_pubnames    0x73b0       0x0
.debug_info       0x469e8       0x0
.debug_abbrev      0x92be       0x0
.debug_line        0xa811       0x0
.debug_frame       0x7d1c       0x0
.debug_str         0x873b       0x0
.debug_loc         0xa020       0x0
.fixed_vectors      0x140      0x20
.rom_vectors         0x40    0x8000
.text              0xc824    0x9000
.rodata             0x3cc   0x15824
.data               0x434   0x15bf0
.bss               0x42b0   0x16024
.ARM.attributes      0x2c       0x0
.debug_ranges      0x2180       0x0
.comment            0x8f7       0x0
Total             0x91eed

Looking at the tree in the configtool, this base appears to come from the 'Configuration | Redboot for ARM options | Provides the exec command in RedBoot | Default physical base address of linux kernel'.

The property info for this value indicates: "This is the physical address of the base of the Linux kernel image. This option gets set by the platform CDL."

I guess at this point I am totally confused as to how to change this, or if I am on the right path.

All I am trying to do is build an executable that can be loaded via the onboard RedBoot.

"Clueless at this point"

Thanks for any pointers!

--JJ--

--
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]