| Details | Message |
|---|
Read-Only Author Gerd Emar Posted 11-Dec-2007 05:46 Toolset ARM |  data abort error Gerd Emar What kind of error could it be, if one register gets a address value causing a data abort. Because this value is in the undefinend area. I wrote the code in c and I set a breakpoint befor the part, where the data abort occur. But when I step through this part of code I get the right value for this register and no data abort will occur. So I think the code must be ok, but which side-effect could cause such a error? Gerd |
|
Read-Only Author Gerd Emar Posted 11-Dec-2007 08:32 Toolset ARM |  RE: data abort error Gerd Emar now I installed a additional printf() function, and the error is gone but now I'm not able to start the main.c function at the beginning after the startup code. It always starts the senc_character function for the printf() function. My stack size is large enough. Gerd |
|
Read-Only Author VIKTOR GOTTSCHALD Posted 11-Dec-2007 14:15 Toolset ARM |  RE: data abort error VIKTOR GOTTSCHALD |
|
Read-Only Author Martin Günther Posted 11-Dec-2007 22:56 Toolset ARM |  RE: data abort error Martin Günther Hello Gerd Emar, Please read knowledgebase article http://www.keil.com/support/docs/3080.htm . This article explains how to analyze a Data Abort Exception. Best Regards, Martin Guenther |
|
Read-Only Author Gerd Emar Posted 11-Dec-2007 23:22 Toolset ARM |  RE: data abort error Gerd Emar thanks for the hint, but "Show Source Code for the current address" is not available, when I click right in the assembly window. the current address for the data abort is e.g. 0x2000DD29 in the assembly window:
0x2000DD29 00000000 ANDEQ R0, R0, R0
Gerd
|
|
Read-Only Author Gerd Emar Posted 12-Dec-2007 00:51 Toolset ARM |  RE: data abort error Gerd Emar I think there's a data overflow, because my printf function shows strange values
int fputc(int ch, FILE *f) {
return (COM1_Sendchar(ch));
}
In the stack window I can read that f should have the value / address 0x00000000 and ch is 0xFFFFFFFF Gerd |
|
Read-Only Author Gerd Emar Posted 12-Dec-2007 03:42 Toolset ARM |  RE: data abort error Gerd Emar one question for my better understanding. there's the stack top (at 0x00200588); I write a pattern from this address to lower addresses - to see if the stack size is enough. And the stack is really enough. I check the values and I could see that above the stack top is a area with oxFF( in the internal RAM) following a part of 0x00 and then I could see a few values, stored at the end of the sram. Gerd |
|
Read-Only Author Gerd Emar Posted 12-Dec-2007 03:55 Toolset ARM |  RE: data abort error Gerd Emar When I 'start this pattern from the last address of the sram to the stack top, then I'm not able to start my program, because I got immediately a dara abort. Moreover if I take a look into the call stack window then main is never called. Another function fputc for printf() is called... Gerd |
|
Read-Only Author Gerd Emar Posted 12-Dec-2007 04:29 Toolset ARM |  RE: data abort error Gerd Emar ok now I see that I'm not able to write my pattern at the end of the internal ram - but where could I see which values are stored in this region? I can't see anything in the map file. Gerd |
|