Gast
#236882
Hallo Leute,
ich hab ein kleines Problem mit der Erzeugung von Debuginformationen.
Hier ist zunächst mal mein erstes Testprogramm.
Bei dem Programm handelt es sich um ein einfaches Beispiel zur
Erzeugung von einem Zeiger auf eine Funktion. Die "main" ruft die
Funktion über den Zeiger auf. Wenn ich dieses Programm mit dem .cof
file oder dem .hex file debugge funktioniert alles wie gewohnt.
#include "ATmega128.h"
volatile unsigned char Fkt (volatile unsigned char);
int main (void)
{
wert;
volatile unsigned char ergebnis;
volatile unsigned char (*ptr)(volatile unsigned char) = Fkt;
wert = 4;
while (1)
{
ergebnis = ptr(wert);
}
}
volatile unsigned char Fkt (volatile unsigned char wert)
{
return (wert);
}
Mein zweites Programm ist ähnlich. Jedoch besteht dieses aus 4
Funktionen (+ main) und einem Array aus Zeigern auf diese 4 Funktionen.
Und auch hier ruft die main eine der Funktionen auf. Allerdings diesmal
über das array mit index - <logisch>.
Wenn ich dieses Programm debugge über den .cof file dann springt er
ständig willkürlich hin und her. Debugge ich dagegen den .hex file des
Programms stimmt es wieder. Nur das mir der .hex file eben keine debug
infos gibt.
Liegt das an den Einstellungen des Compilers oder daran dass das AVR
Studio das mit dem Sprung-Array nicht auf die Reihe bekommt?
Gruß
Philipp