Forum: Mikrocontroller und Digitale Elektronik Atmel Fehler beim Debuggen


von debugger (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen!

Ich benutze ein STK 600 und ein JTAG ICE mk3 um meinen AT90PWM3B zu
debuggen.

Die Software wird in den uC geladen und sobald ich den ersten
Debuggschritt ausführen möchte, springt er in den Disassembly-Code.

Gelber Pfeil steht auf scopeband und sobald ich diese auslöse, springt
er an die gezeigte Stelle im Disassembly.

Weis zufällig jemand, was hier nicht korrekt läuft?

Vielen DANK!

Gruss



int main(void)
{
  unsigned int resolution = 1024;//10_bit_ADC
  unsigned int Vref = 5000; // 1/1000V (mV)

  scopeband = (float)Vref/resolution;

  init_pwm_value();
  init_psc2();
  init_ramp_mode();
  init_adc();
  //init_pwm_out();

  while(1)
  {
  ADC_average = ADC_average_read();
  ADC_Vin = (unsigned int)ADC_average*scopeband;
  LEM_current = (unsigned
int)(((((float)ADC_Vin*5)/(float)Vc_LEM)-2.5)/0.00222);
  e = target_current - LEM_current; //Sollwert_Istwert_Abgleich
  PI_regulator();
  DAC_PWM_output();
  }

  return 0;

von Vlad T. (vlad_tepesch)


Lesenswert?

was genau ist jetzt der Fehler?

von debugger (Gast)


Lesenswert?

Der Fehler ist, dass ich das Programm nicht "Durch-Debuggen" kann, da er 
mir gleich in das Disassembly-Fenster springt.

Ich weis aber nicht warum er das macht.


DANKE!

von debugger (Gast)


Lesenswert?

Kann es sein, dass eine Einstellung falsch ist.

Ich möchte im C-Code debuggen.

Gruss

von Vlad T. (vlad_tepesch)


Lesenswert?

was für einen Debug-Step hast du denn gemacht? "Step Over" oder "Step 
Into".
Die Beschreibung hört sich nach letzteren an, versuchs doch mal mit dem 
anderen.
Falls das auch nix hilft, setz halt den Brechpunkt hinter die 
float(Pfui)-Division und benutze den klicke auf "Run".

warum willst du überhaupt mit Float rechnen?

von debugger (Gast)


Lesenswert?

Hallo!

Ich habe jetzt mal die float Berechnung in eine reine int Berechnung 
gewandelt.

Mir scheint es jedoch so, als würde sich der Debugger an der Berechnung 
aufhängen.

Aber warum?

von Vlad T. (vlad_tepesch)


Lesenswert?

der debugger hängt sich nicht auf, du steppst halt in den 
Funktionsaufruf für eine Float- oder Integer Division rein.

von debugger (Gast)


Lesenswert?

Ich stepp mit F10, dann müsste er aber doch darüber springen.

Habe vorher mit eine ice mk II getestet und da ging alles ohne Problem.

k.A. was hier los ist.

Kann das was mit BSD-Files zu tun haben, die von Atmel zum download 
bereitgestellt werden?

DANKE

Gruss

von Vlad T. (vlad_tepesch)


Lesenswert?

hast du mal dahinter einen breakpoint gesetzt?
alternativ drück halt, wenn du ins assembly steppst shift+F11 um aus der 
Funktion wieder rauszuspringen.

BSD Files sagt mir nix

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Vlad Tepesch schrieb:
> BSD Files sagt mir nix

BSDL-files, nein, damit hat es gewiss nichts zu tun. ;-)

Btw., Bildformate  Screenshots bitte als PNG und nicht als
JPEG.  Auch das große weiße Rechteck auf der rechten Seite
interessiert uns wenig, das hättest du ruhig vorher abschneiden
dürfen.

Setz' einfach Breakpoints weiter hinten, wenn die Einzelschritte
nicht so recht gehen.

von debugger (Gast)


Angehängte Dateien:

Lesenswert?

Ich hab jetzt eine Fehlermeldung bekommen (siehe Bild).

_divsf3 line 998 hat er mir auch im Disassembly oben rechts ständig 
angezeigt.

Neuinstallation vom Studio?

Gruss

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

debugger schrieb:
> Ich hab jetzt eine Fehlermeldung bekommen (siehe Bild).
>
> _divsf3 line 998 hat er mir auch im Disassembly oben rechts ständig
> angezeigt.

Eine Divisionsroutine aus der libgcc.a.  Du bist also mitten in
der Division drin.

> Neuinstallation vom Studio?

Was genau sollte das helfen?  Der Sourcecode der libgcc.a wird auch
dann noch nicht mit dabei sein (den willst du sicher auch nicht
sehen).

Setz' doch einen Breakpoint dahinter und mach' dort weiter.

von debugger (Gast)


Lesenswert?

>Setz' doch einen Breakpoint dahinter und mach' dort weiter.

wo dahinter?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.