--- In lpc2000@yahoogroups.com, "Jenish" <jenish@g...> wrote: > > I am new to this group and arm processor also.Has anyone ever faces > the deadly data abort error.I have gone through a length document by > David Seal but to no good use.Still have problem with data abort. A data abort occurs when you try to access a non-existant chunk of memory as data. > > implemented simple stuff like SUBS PC,LR,#8 > adjusts link register by 8 places(considering the pipelined > architecture)and loading the Program counter with the same. It does not help to have a data abort handler unless you do something to fix up the aborting reason. In "larger" ARM processors you can do this by using the MMU (ie. change the MMU to handle the aborting address properly). THis is how you do things like grow the stack on demand. ie. 1) Attempt to access address xxx. THis fails and causes a data abort. 2) Data abort handler kicks in and maps the appropriate memory to xxx. 3) Same instruction as in (1) is tried again and works this time. On smaller CPUs like the LPC2xxx with no MMU this makes no sense. If you just implement the return then you get. 1) Attempt to access address xxx. THis fails and causes a data abort. 2) Data abort handler does nothing. 3) Same instuction as in (1), fails again because nothing hase been changed. 4) Data abort handler does nothing. Forever... There are only really two meaningful things to do: 1) If you're running a debugger, then just make an infinite loop DataAbortHandler: b DataAbortHandler Now you can detect DataAbortHandlers and find where they happened. 2) Write some exception processing code that outputs the registers etc. > > My data abort occurs at STR R12,[R14,#RVCT_AicEoicr] > > It seems that this has something to do with Base Update Abort Model. > > which is the instruction I use to acknowledge the end of interrupt > at the end of the interrupt subsroutine. The coding of this instruction looks slightly wierd, depending on how it was set up. Make sure that (R14+ RVCT_AicEoicr) is a valid address. > > Please let me know if any one as faced this problem before. Sure. Data aborts happen to everybody :-). It is the ARM's way of telling you that you have not set up your pointers properly.
Message
Re: Problem with Data Aborts
2004-10-31 by embeddedjanitor
Attachments
- No local attachments were found for this message.