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 application problem


Hi Sergei;
Sorry for making a hasty conclusion before. As you said, there is no relation
between setting of the compiler flags and the mangled output.
The problem is located in my ecos configuration to build the library for
application (e.g HelloWorld.c).
Thank you for your attention and support.

Regards;
Albert P

On 9/3/07, Sergei Gavrikov <w3sg@softhome.net> wrote:
> albert prasetyo writes:
> > Hi Sergei;
> > Thank you very much! Now everything just works.
> > It is arguable that the cause of my problem (i.e. mangled output) is the cflags.
>
> It seems, this is a wrong conclusion. I known no one GCC flag which
> occurs mangled output. You set type of diag output when you configure
> ecos.ecc. I just did limit CFLAGS sequence because I did demo how to
> build a _minimalist_ eCos application.
>
> I sure that CFLAGS='-Iinstall/include -O0 -g' in my 1-2-3 example will
> be work too.
>
> Look closely at your build defaults (ecos.ecc): CYGBLD_GLOBAL_CFLAGS,
> CYGBLD_GLOBAL_LDFLAGS. You can just quite overwrite those before the
> making of the eCos libraries just edited the ecos.ecc. Those flags to
> include itself (install/include/pkgconf/ecos.mak) in your final build.
> Try to replace -O2 by -O0 optimization flag there when you build debug
> image.
>
>        Sergei
>
> > The original compiler flags that i used is '-I$(INSTALL_DIR)/include'
> > replace it with your recommended cflags and my application runs properly.
> > Allow me to reproduce what I did earlier:
> > ROM mode
> > Using cygwin and hyperterminal in Windows environment:
> > 1) Compile redboot using AT91RM9200 template with redboot packages.
> > 2) Using ROM mode and without any Ethernet package, I modify nothing
> > else and start building the library.
> > 3) put the redboot on the board
> > 4) For building application library, repeat step 1 and 2 (only mode used is RAM)
> > 5) start cygwin, go to ecos example folder, and open makefile
> > 6) change the CFLAGS variable to '-O0 -g'
> > 7) compile the application (e.g. hello.c from the ecos example, havent
> > tried Sergei's hello.c)
> > 8) As Sergei advised, start gdb (only now from cygwin)
> > arm-elf-gdb -nw -nx -q hello
> > (gdb) set remotebaud 115200
> > (gdb) target remote /dev/com1
> > ......//some characters printed (in my case "0x100054b4 in ?? ()")
> > (gdb) load
> > loading section .rom_vectors, size xxx lma yyy
> > loading section .text, size xxx lma yyy
> > loading section .rodata, size xxx lma yyy
> > loading section .data, size xxx lma yyy
> > start address xxx, load size yyy
> > transfer rate: xxx bits/sec, yyy bytes/write.
> > (gdb) cont
> > continuing.
> >
> > Hello ecos World!
> >
> > Hope this will help anyone that encounter same problem as me.
> >
> > On 9/2/07, Sergei Gavrikov <w3sg@softhome.net> wrote:
> > > On Sat, Sep 01, 2007 at 05:35:47PM +0800, albert prasetyo wrote:
> > > > Hi Sergey;
> > > > Thank you for your info. It provides me further understanding on how
> > > > redboot and ecos work.  Actually, my board (AT91RM9200) is designed to
> > > > communicate through PC using 1 serial port only (DBGU port). Is there
> > > > any way to print "Hello World" (i.e. Application message) using only
> > > > one port?  Moreover, my board does not have spare LED, the LEDs are
> > > > only used to signal whether the board is turned on or not and Ethernet
> > > > connection.  Thank you for your attention.
> > >
> > > Be sure! I don't know your hardware, sorry. But, If I remember, you ran
> > > that eCos application using the RedBoot 'go' command and saw a mangled
> > > output, is it right? So, your eCos application works! Did you try to use
> > > GDB to download and run any eCos test? If you have a working RedBoot for
> > > your target and it (RedBoot) contains the GDB interface (cdl_interface
> > > CYGINT_HAL_DEBUG_GDB_STUBS), try to use even GDB 5.3 from eCosCentric.
> > >
> > > Just a conspectus (1-2-3), if you did install eCos stuff on Linux box...
> > >
> > > 1. Build eCos
> > >
> > > ecosconfig new "your_target_name" minimal \
> > > && ecosconfig tree \
> > > && make -s
> > >
> > > 2. Build a minimalist 'hello'
> > >
> > > cat <<_EOF>hello.c
> > > cyg_start(){diag_printf("hello, world!\n");}
> > > _EOF
> > >
> > > make hello CFLAGS='-O0 -g' LDFLAGS='-Linstall/lib -Ttarget.ld -nostdlib'
> > >
> > > 3. Run that 'hello' using GDB
> > >
> > > arm-elf-gdb -nw -nx -q hello
> > >
> > > Note: at the least, it's needed to connect itself using the GDB remote
> > > protocol (suppose, /dev/ttyS0 is your port), reset a board before to do
> > > this.
> > >
> > > On GDB promp (gdb) just try to enter commands (again, it's 1-2-3)
> > >
> > > target remote /dev/ttyS0
> > > load
> > > cont
> > >
> > > Are you seeing something now?
> > >
> > > If you aren't... Sorry. They talk that M$ + Cygwin + Insight + Java +
> > > Eclipse IDE + ... are good things for beginners. Sorry, I don't believe
> > > them.  They cannot say you, Let's do '1-2-3' and get the result. They
> > > offer a tour is containing a lot of screenshots...
> > >
> > > But, it's pretty simple just to grab and unpack ONE gnutools tarball for
> > > Linux (ftp://ecos.sourceware.org/pub/ecos/gnutools/i386linux) and get
> > > the result in a few minutes.
> > >
> > >
> > >        Sergei
> > >
> > >
> >
> > PS: Sergei, when will you come to Singapore? I owe you a treat! =>
> >
> > Regards;
> > Albert P
> >
>
>

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