This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: arm7 lpc2xxx abort data exception
- From: Andrew Lunn <andrew at lunn dot ch>
- To: Jean-David Vuillemain <jdvuillemain at gmail dot com>
- Cc: ecos-discuss at sourceware dot org
- Date: Fri, 25 Jan 2008 08:53:07 +0100
- Subject: Re: [ECOS] arm7 lpc2xxx abort data exception
- References: <d9d367f0801241535wb8f95b3x30dbfbbd9f97e7b2@mail.gmail.com> <d9d367f0801241538v2a3dbdb7o3057d65798a9cccd@mail.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.
> 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]
What is the value of r0? You should be able to look at the exception
bank of registers and see a value. Is it legal, does RAM/FLASH/IO
exist there etc.
The fact you are in exception handlers is not good anything. It
suggests something else has gone wrong. Have you checked your stacks
are big enough. It seems like 75% of random crashes are stack
overflows.
Andrew
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss