Forum: PC-Programmierung Python (PySerial) bringt Atmel Studio debugger zum "absturz"


von Kaj G. (Firma: RUB) (bloody)


Angehängte Dateien:

Lesenswert?

Hallo Leute.

Ich hab hier ein "interessantes" Problem in Verbindung mit 
Python(PySerial) und Atmel Studio 6.2.

Das Bild zeigt den Aufbau.

mC: Atmel SAM3X8E (Arduino Due Board)
USB-Seriellwandler: ATmega16U2 (auf dem Arduino Board verbaut)
IDE: Atmel Studio 6.2
Programmer/Debugger: Atmel ICE
OS: Win7 - 64bit
Python: 3.4.2
PySerial: 2.7

Das Arduino Board ist ueber den "Arduino Due Programming Port" an den PC 
(COM2) angeschlossen, zur Spannungsversorgung und zum Datenaustausch.
Gleichzeitig ist das Board ueber JTAG mit dem Atmel ICE verbunden, zum 
programmieren und debuggen.

Wenn ich jetzt einen Debugvorgang starte (F5/der gruene Pfeil in der 
IDE), und jetzt mit PySerial den Port COM2 oeffne (das Oeffnen reicht, 
es muessen nicht mal Daten gesendet werden!), um Daten an den Controller 
zu schicken, "stuerzt" der Atmel Studio Debugger ab.

Der Absturz laesst sich so beschreiben:
Der Debugvorgang laeuft, das heisst ich kann auf Pause druecken 
(Ctrl+F5/das Pausezeichen in der IDE) und... es passiert nichts. Das 
Pausezeichen wird ausgegraut, der gruene Pfeil bleibt ausgegraut, 
und es passiert nichts weiter, Breakpoints werden ebefalls nicht 
angesprungen. Das Programm auf demm Controller wird nicht angehalten. 
Ich kann nur noch auf Stop Debugging (Ctrl+Ahift+F5) druecken. Tue ich 
das, so braucht es mehrere Sekunden (>=10 sek.) bis die IDE wieder 
benutzbar ist, was auch nicht normal ist.

Das die Breakpoints und das Programm auf dem Controller einwandfrei 
funktionieren kann ich ueber ein Terminalprogramm (hTerm) feststellen.
Ebenso kann ich den COM-Port auch problemlos mit einem C/C++-Programm 
(http://msdn.microsoft.com/en-us/library/ff802693.aspx) oeffnen, ohne 
das Atmel Studio da ein Problem bekommt. Benutze ich hTerm/das 
C/C++-Programm funktionieren die Breakpoints, ich kann Pause und Weiter 
klicken, alles so, wie es sein soll.

Lediglich das "Zusammenspiel" von PySerial und Atmel Studio scheint da 
irgendwie nicht so ganz einwandfrei zu funktionieren.

Pythoncode fuer die Serielleschnittstelle:
1
import serial
2
ser = serial.Serial( port='COM2', baudrate=115200, \
3
      bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, \
4
      stopbits=serial.STOPBITS_ONE)
5
6
#ser.flush()
7
#ser.write(b'Hier beliebigen String einfuegen...')
8
ser.close()

Nicht falsch verstehen: Die serielle Verbindung mit PySerial 
funktioniert, ich kann Daten senden und empfangen, lediglich Atmel 
Studio spinnt.

Habt Ihr da vielleicht eine Idee, wie man da naeher rausbekommen 
koennte, was da wo klemmt? :-/

Gruesse

: Bearbeitet durch User
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.