This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Port problem
- To: Cristiano Ligieri Pereira <cpereira at ics dot uci dot edu>
- Subject: Re: [ECOS] Port problem
- From: Gary Thomas <gthomas at redhat dot com>
- Date: Fri, 17 Aug 2001 06:37:16 -0600 (MDT)
- Cc: ecos-discuss at sourceware dot cygnus dot com
- Organization: Red Hat, Inc.
On 17-Aug-2001 Cristiano Ligieri Pereira wrote:
>
> Hi again!
>
> I don't know whether my previous question made no sense or if it was too
> simple... since I've got no answer. :-|
>
> I'm working on the port of an XScale based platform. So far I have done a
> reasonable progress (in my opinion...) but now I'm kind of stuck. :(
>
> I started the port copying the IQ80310 and modifying it's files since both
> platforms are quite different (except the processor, obviously). Then the
> next thing I did was to clean up the macro PLATFORM_SETUP1 so that the
> specific IQ80310 initializations were removed and the specific
> initializations of my platform were inserted (those I got from CygMon
> source code). After this I've changed the memory map (that I actually sent
> to this list yesterday) so that I have RAM at 0x0.
>
You built this CygMon yourself? If so, what was the source code base?
Note: we really only support RedBoot on the XScale, not CygMon.
> After this I've been trying two things: load a Hello World eCos
> application configured to execute on RAM (by means of GDB/Cygmon) and load
> RedBoot configured to execute at RAM as well. For both I load the
> application at the original RAM address (since for cygmon this is still
> the RAM memory address) and for both I'm executing the code in
> PLATFORM_SETUP1, which remaps the memory.
>
> When I try to execute the Hello World application the code crashes when
> calling diag_printf function in the main body. For the RAM/RedBoot code it
> is crashing when cleaning the BSS (I've checked the addresses I'm hitting
> and they fall within the original memory addresses 0xC0000000).
>
This tells me that you may have a memory mapping problem.
eCos programs expect the memory map to be somewhat different than the hardware
map. Most particularly, DRAM gets moved to 0x00000000 and the FLASH at 0
gets moved around as well. On some XScale platforms, this is even trickier,
but the basic idea is the same.
> how should I do about the serial communication with the host? Can I reuse
> the communication already established with CygMon? Do I need to break it
> and restart a new connection?
>
No.
> Am I on the right track? I was feeling good about it till two days
> ago. But now that I'm stuck I getting frustrated instead. :-|
>
I think you should look into getting RedBoot working as your base debug
environment.
> Thanks again,
> Cristiano.
>
>> Hi all,
>>
>> I'm porting eCos to a XScale based platform. The board have Cygmon in its
>> Flash memory, which is invoked at reset time. I can load an eCos
>> application in it (I'm modifying the port to IQ80310). So far I have
>> modified the file PLATFORM_SETUP1, in which I change the memory map and
>> initialize (or re-initialize since cygmon initialize them already) all the
>> necessary components (caches, BTB, MMU, etc...). All this seems to work
>> fine. The memory mapping is changed so that I have SDRAM at address 0x0.
>>
>> Now I'm a little confused on how to make the serial communication work. I
>> can download an application using GDB. So obviously there is a connection
>> between the target and the GDB in the host. What should I do to keep using
>> this connection to send debugging messages to the host? Or should I break
>> this connection and restart it somehow?
>>
>> Thanks in advance,
>> Cristiano.
>>
>> ------------------------------------------------------------
>> Cristiano Ligieri Pereira - http://www.ics.uci.edu/~cpereira