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]
Other format: [Raw text]

Re: AT91EB40 and RedBoot


In response to my own problem, I think redboot.elf got built using 
arm code and not thumb.  When I decompile redboot using 
'arm-elf-nm -DS redboot.elf' I see the code is using 32-bit
arm instructions (which match up to the vectors.S file where
the SIGTRAP is caught).  These instructions should be 16-bit
thumb instructions.  In contrast, if I do 'arm-elf-nm -DS -Mforce-thumb
redboot.elf' the results do not match vectors.S, so I'm very
sure I'm not getting thumb code out of my cross compiler.

I build gcc-3.0.4 by doing the following:

1) symlink newlib-1.10.0/newlib and newlib-1.10.0/libgloss into
the gcc-3.0.4 directory
2) from build dir I did: ../gcc-3.0.4/configure --target=arm-elf
--prefix=/usr/local/crossgcc-arm --exec-prefix=/usr/local/crossgcc-arm/
H-i686-pc-linux-gnu --with-gnu-as --with-gnu-ld --with-newlib
--with-libgloss --enable-multilib --enable-languages=c,c++,java
-v 2>&1 | tee configure.out
3) make -w all install 2>&1 |tee make.out

When redboot gets built, the makefile runs gcc using the following:

arm-elf-gcc -c  -I/usr/local/ecos/build-redboot/install/include 
-I/usr/local/ecos/cvs/ecos/packages/redboot/current 
-I/usr/local/ecos/cvs/ecos/packages/redboot/current/src 
-I/usr/local/ecos/cvs/ecos/packages/redboot/current/tests -I. -mcpu=arm7tdmi 
-mno-short-load-words -Wall -Wpointer-arith -Wstrict-prototypes -Winline 
-Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections 
-fno-rtti -fno-exceptions -fvtable-gc -finit-priority -o 
/usr/local/ecos/build-redboot/install/lib/version.o 
/usr/local/ecos/cvs/ecos/packages/redboot/current/src/version.c

doesn't -mcpu=arm7tdmi cause thumb code to get built or should there
be a -mthumb in there?  If -mthumb is supposed to be there, how do I
get it in there (other than editing the makefile)?

Thanks,

-tim



On Monday 10 June 2002 10:25 pm, Tim Drury wrote:
> I couldn't get RedBoot to run on my EB40A/AT91.  Here is my setup:
>
> binutils-2.12.1
> gcc-2.95.2 + ecos patch
> gdb-5.2
> ecos - latest cvs as of 6/10/2002
>
> I built redboot according to the instructions and run 'arm-elf-gdb -nw
> redboot.elf' and do the following:
>
> (gdb) tar rdi s=/dev/ttyS0
> Angel Debug Monitor (serial) 1.04 (Advanced RISC Machines SDT 2.5) for
> AT91EB40A (1.00)
> Angel Debug Monitor rebuilt on Feb 03 2002 at 16:09:59
> Serial Rate:   9600
> Connected to ARM RDI target.
> (gdb) set $ps=0xd3
>
> //NOTE: the following configures the CS1 register to turn the onboard SRAM
> on. //without it, the 'lo' command would fail saying it couldn't write to
> //address 0x0200000.
>
> (gdb) set *(0xffe00004)=0x02002001
> (gdb) lo
> Loading section .rom_vectors, size 0x40 lma 0x2020000
> Loading section .text, size 0xb174 lma 0x2020040
> Loading section .rodata, size 0x1f18 lma 0x202b1b4
> Loading section .data, size 0x3e0 lma 0x202d0cc
> Start address 0x2020040, load size 54444
> Transfer rate: 6405 bits/sec, 504 bytes/write.
> (gdb) c
> Continuing.
> RDI_execute: SWI trapped
>
> Program received signal SIGTRAP, Trace/breakpoint trap.
> 0x020201f4 in call_exception_handler ()
> (gdb)
>
> I'm not really sure how to proceed from here.  Any suggestions?
>
> -tim
>
> On Monday 10 June 2002 07:42 pm, Scott Dattalo wrote:
> > On Mon, 10 Jun 2002, Scott Dattalo wrote:
> > > Now the symptom I have is that minicom spews garbage as I type
> > > characters. The obvious problem is that the baud rate is wrong.
> > > Unfortunately, I tried *every* baud rate in addition to the 38.4K 8N1.
> > > It almost suggests that the Evaluation board is using a non-standard
> > > baud rate. Hmm. It's time to hook up the scope... (unless of course,
> > > someone can point out what's obviously wrong!).
> >
> > Just to follow up on my own message...
> >
> > I added my RS232 break-out box to the comm line and looked at the timing
> > between my Linux box and the AT91EB40. The gibberish I reported seeing
> > with minicom is what's being sent by the evaluation board. The bit times
> > are perfectly timed 38.4k baud bits, but the data is, well, wrong. So the
> > next likely explanation is that somehow the strings being referenced by
> > the RedBoot Binary are not getting accessed properly.
> >
> > Here's what I've tried:
> >
> > gcc version 2.95.2
> > binutils 2.12.1
> > ecos - latest from cvs
> > ecosconfig 1.3.net
> >
> > If I change binutils to 2.10.1, then the redboot.bin image doesn't run at
> > all. Or, If I use binutils-2.12.1 and gcc-3.1, the redboot.bin is bad
> > too. Or if I use binutils-2.10.1 and ecosconfig 1.3.1.4, redboot is still
> > bad.
> >
> > I'm quickly running out of combinations of things to try! Does anyone
> > know of a proper combination of the tools? Does anyone know if the
> > at91eb40 *ever* worked?
> >
> > Scott


-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss


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