[En-Nut-Discussion] arm expection handler (data abort)

Ole Reinhardt ole.reinhardt at embedded-it.de
Fri Dec 19 18:30:53 CET 2008


Hi Tim,

> I had a similar problem.  I couldn't get the printf or a fputs to work.  
> I ended up saving the data in high memory, rebooting, and then reading 
> the data out of high memory in the main program.  Works like a charm.

You mean the value of lr is influenced by the printf routine?

Indeed printf will only work on the debug UART as you'r operating in
interrupt / abort mode and all IRQs will be disabled at that time.

Another problem I found is, that value of lr points to an invalid
address, so reading the value of this memory address (the instruction
that caused the exception) will fail and itself call another exception.
So you must first check if the calculated lr value is located in the
ram, before dereferencinv the pointer.

So far so good, what I'm confused about is the fact that the value of lr
is always the same for me. Regardless of of the place in code where the
exception is thrown.

Could you send me a piece of your code please?

Regards,

Ole Reinhardt

-- 
 _____________________________________________________________
|                                                             |
| Embedded-IT          Hard- und Softwarelösungen             |
|                                                             |
| Ole Reinhardt        Tel. / Fax:        +49 (0)271  7420433 |
| Luisenstraße 29      Mobil:             +49 (0)177  7420433 |
| 57076 Siegen         eMail:    ole.reinhardt at embedded-it.de |
| Germany              Web:         http://www.embedded-it.de |
|                      UstID / VAT:       DE198944716         |
|_____________________________________________________________|




More information about the En-Nut-Discussion mailing list