[ECOS] arm7 lpc2xxx abort data exception

Tom Deconinck t.deconinck@gmail.com
Mon Jan 28 07:39:00 GMT 2008


Hi,

Could it be that you need to do some memory remapping to get the
exception vectors at the right address (they have to be located at
address 0)? I have no idea if the LPC requires this, so just a quick
thought.

I had a similar issue trying to run a RAM image on the Atmel ARM7
(AT91SAM7SE)  based cpu, in my case the problem was caused because the
SRAM-Flash remap code that wasn't in the RAM image startup sequence.

Tom

On Jan 25, 2008 11:06 PM, Sergei Gavrikov <sergei.gavrikov@gmail.com> wrote:
> On Fri, Jan 25, 2008 at 01:55:06PM -0800, Jean-David Vuillemain wrote:
> > Yes i use a mixture of tool in fact...
> >
> > "Can you undo for GCC-3.2.1 and rebuild new CVS eCos with original tools?"
> > Could you be more explicit please.
>
> I wonder, will you get a hang on a startup stage when you'll build eCos
> with GNU toolchain from public FTP (a.k.a eCosCentric tools)? And what
> about behaviors of built application for ROM startup? Does that hang
> too?
>
> Sergei
>
>
> > JD
> > 2008/1/25, Sergei Gavrikov <sergei.gavrikov@gmail.com>:
> > > On Fri, Jan 25, 2008 at 10:21:39AM -0800, Jean-David Vuillemain wrote:
> > > > I can run my application with GDB but the breakpoints you point out
> > > > are not reachable. The program goes straight to the data abort at
> > > > 0x00000010 after a few instructions.
> > > > I didn't get any assertion message.
> > >
> > > I have another question, Is it possible that you use a mixture of tools?
> > > Is your GNU toolchain a home-cooked stuff? Does the error occur with
> > > GCC-3.2.1? If you build eCos with a recent tolchain, it could be that
> > > you did modify CYGBLD_GLOBAL_CFLAGS and your startup become a broken...
> > > Can you undo for GCC-3.2.1 and rebuild new CVS eCos with original tools?
> > >
> > > Sergei
> > >
> > > > 2008/1/25, Sergei Gavrikov <sergei.gavrikov@gmail.com>:
> > > > > On Thu, Jan 24, 2008 at 03:38:14PM -0800, Jean-David Vuillemain wrote:
> > > > > > hi,
> > > > > >
> > > > > > i have been working with ecos for a couple of months now. I had no
> > > > > > problem at all with a 8 months old repository source files and my own
> > > > > > port for my target board. After some problem with my working
> > > > > > environment  and updating the ecos source files, i can't have my old
> > > > > > work and my new  code running on the board.
> > > > >
> > > > > Working with lpc2xxx targets I update eCos repository every week.  Did
> > > > > you try to build eCos with a tracing support? Import 2 lines the below
> > > > > with ecosconfig and rebuild eCos
> > > > >
> > > > > cdl_option CYGPKG_INFRA_DEBUG {user_value 1};
> > > > > cdl_option CYGDBG_USE_TRACING {user_value 1};
> > > > >
> > > > > Can you run your application in GDB as
> > > > >
> > > > > b cyg_start
> > > > > b cyg_assert_fail
> > > > > c
> > > > > c
> > > > >
> > > > > I wonder, Did you get same assertion?
> > > > >
> > > > > ASSERT FAIL: <1>lpc2xxx_misc.c[359]hal_interrupt_configure() Invalid vector
> > > > >
> > > > >
> > > > > Sergei
> > > > >
> > > > > > It seems that my code always go through the same steps and finishes by
> > > > > >  an exception abort data.
> > > > > >
> > > > > > Here is the code where it fails:
> > > > > > 0x80020070 <start>:    ldr r0, [pc, #1020]    ; 0x80020474 <.init_flag>
> > > > > > 0x80020074 <start+4>:  ldr r1, [r0]
> > > > > > 0x80020078 <start+8>:  cmp r1, #0    ; 0x0
> > > > > > 0x8002007c <start+12>: bne 0x80020078 <start+8>
> > > > > > 0x80020080 <start+16>: ldr r1, [pc, #196]    ; 0x8002014c <init_done>
> > > > > > 0x80020084 <start+20>: str r1, [r0]
> > > > > > 0x80020088 <start+24>: mov r0, #0    ; 0x0
> > > > > > 0x8002008c <start+28>: ldr r1, [pc, #988]    ; 0x80020470
> > > > > > <.__exception_handlers>
> > > > > > 0x80020090 <start+32>: cmp r7, #19    ; 0x13
> > > > > > 0x80020094 <start+36>: beq 0x800200a0 <start+48>
> > > > > > 0x80020098 <start+40>: ldr r2, [r1, #40]
> > > > > > 0x8002009c <start+44>: str r2, [r0, #40]
> > > > > > 0x800200a0 <start+48>: ldr r2, [r1, #24]
> > > > > > 0x800200a4 <start+52>: str r2, [r0, #24]    <-- this line fails on my
> > > > > > old and new programs
> > > > > > It ends up in an abort data:
> > > > > > 0x00000010 swp             r1, r3, [r2]
> > > > > >
> > > > > > Someone has a hint to solve this problem??
> > > > > >
> > > > > > Thanks in advance.
> > > > > >
> > > > > > Jean-David
> > > > > >
> > > > > > --
> > > > > > Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
> > > > > > and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
> > > > >
> > > >
> > > >
> > > > --
> > > > Jean-David Vuillemain
> > > > jdvuillemain@gmail.com
> > >
> >
> >
> > --
> > Jean-David Vuillemain
> > jdvuillemain@gmail.com
>
> --
> Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
> and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
>
>

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



More information about the Ecos-discuss mailing list