Forum: PC-Programmierung Probleme serielle Schnittstelle WinXP mit Keil (Mon51)


von hosch (Gast)


Lesenswert?

Hallo zusammen,

ich habe Verbindungsprobleme mit der seriellen Schnittstelle unter
Windows XP professional.
Ich benutze das Programm mon51 von Keil um eine Verbindung zu einem
8051-Entwicklungsboard aufzubauen (9600 baud).
Die Verbindung kommt zwar zustande, einzelne kleinere Übertragungen
gehen auch, aber sobald ich eine etwas größere hex-Datei auf das Board
laden will bricht die Verbindung zusammen (Fehlermeldung: "Bad serial
transmisson").
Genau der gleiche Vorgang mit dem gleichen PC funktioniert unter
Windows 98 ohne Probleme.
Da ich das Entwicklungsboard aber bei ein paar Kollegen auch unter
Windows XP einsetzen muss, bin ich auf XP angewiesen.
Mit der Entwicklungsumgebung von Keil (µVision 2) geht es auch nur
unter Windows 98, ist auch klar, da µVision eben auch mon51 benutzt.

Ich hoffe jemand hat eine Idee.

Danke und Gruß

von andi (Gast)


Lesenswert?

das muß an xp liegen. habe ein ähnliches problem seit umstieg von 98 auf
xp wenn ich den epromsinulator mit der alten DOS-exe laden will. trotz
aller möglichen einstellungsversuche (speicherzuweisungsoptionen,
win95-komp-modus etc) war ich noch nicht erfolgreich. vielleicht kriegt
man kehr in PC-foren heraus?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ist dieses Programm "mon51" etwa ein DOS-Programm*?

Dann kann ich keinen Optimismus verbreiten und auf
http://www.mikrocontroller.net/forum/read-7-209253.html#new verweisen.



*) und keine Win32-Konsolapplikation, also tatsächlich unter
"nacktem" DOS lauffähig

von hosch (Gast)


Lesenswert?

Hallo Rufus,

erstmal danke. Sorry, bisschen Text:

mon51 ist ziemlich sicher ein reines DOS-Programm.
So sieht es nach dem Start unter der MSDOS-Eingabeaufforderung unter
Win98 aus:

MS-DOS MON51 V1.09
COPYRIGHT KEIL ELEKTRONIK GmbH 1991 - 1996

INSTALLED FOR PC/XT/AT (COM LINE 1) USING HARDWARE INTERRUPT SERVICE

BAUDRATE: 9600 (DEFAULT)


*** TERMINAL MODE ***



Unter WinXP kann ich es über start->ausführen->cmd im Konsolenfenster
auch starten, aber dann gibt es wie gesagt bei der Datenübertragung
Fehler.

Nun gibt es ja noch die Keil µVision-Entwicklungsumgebung, die einen
Debugger enthält, der ebenso auf das 8051-Entwicklungsboard zugreifen
kann über ein in µVision integriertes "mon51". Nun weis ich nicht
genau ob das µVision mon51 ein anderes ist als das mon51-DOSProgramm
das ich hab. Im Installationsverzeichnis von µVision gibt es keine
ausführbare mon51.exe sondern eine mon51.dll. Ich schätze mal das
µVision über die dll mit dem 8051 kommuniziert. Aber auch µVision
bekommt keine stabile Verbindung unter XP zustande.

µVision von Keil ist ein gängiges IDE-Werkzeug für verschiedene
Mikrocontroller (auch in der Industrie) und der darin enthaltene
C-Compiler auch nicht ganz billig. Ich kann mir nicht vorstellen, dass
Keil es sich leisten kann, dass das ganze unter XP nicht richtig
läuft.

Da fällt mir noch ein: Ich hatte das ganze unter Win2000 soweit ich
mich erinnern kann auch bestens am laufen. Es geht also seit XP nicht
mehr.

Ich versuche jetzt noch folgendes:
1) Test bei einem Bekannten unter XP Home Edition (ich hab ja XP pro)
2) Monitorprogramm auf 8051 erneut aufspielen, wobei ich mir da nichts
erhoffe
3) Den Keil-Support anmailen

Falls jemand noch was einfällt gerne posten.
Achso, sollte ich, falls ich immer noch nicht weiter komme, besser im
"µC & Elektronik"-Forum schreiben?

Danke und Gruß

von hosch (Gast)


Lesenswert?

Noch ein Nachtrag:

Ich kenn mich ja mit dll nicht aus. Aber wenn ich die mon51.dll im
Installationsverzeichnis von µVision mit einem Editor öffne steht in
der 1. Zeile: This program cannot be run in DOS mode.
Wäre doch ein Hinweis darauf, dass µVision über Windows die serielle
Schnittstelle anspricht.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ja, DOS kennt keine DLLs. Also wird die DLL mon51.dll in der Tat für
Windows-Programme gedacht sein, womit auch sichergestellt ist, daß das
die Windows-Debug-Umgebung nicht das DOS-Programm verwendet.

Wie gelingt Dir aber

  "Unter WinXP kann ich es über start->ausführen->cmd im
  Konsolenfenster auch starten,"

wenn doch

  "Im Installationsverzeichnis von µVision gibt es
  keine ausführbare mon51.exe sondern eine mon51.dll."

Was rufst Du denn da auf?


Warum das DOS-Programm unter XP nicht funktionieren muss, das dürfte
geklärt sein (s. mein erstes Posting bzw. der Link darin).

Äußerst rätselhaft ist allerdings der von Dir geschilderte Sachverhalt,
daß µVision unter Windows 2000 korrekt mit dem µC kommunizieren kann,
und das unter XP plötzlich nicht mehr geht.
XP ist einfach nur eine etwas neuere Auführung von Windows 2000
(genauer: beide sind verschiedene Versionen von Windows NT, 5.0 und
5.1).

Den Test mit "XP Home" kannst Du Dir sparen, abgesehen von einigen
Kastrationen ist es exakt dasselbe wie XP Professional.

Ich denke, daß der Keil-Support für dieses Problem zuständig ist.

von yves Richard (Gast)


Lesenswert?

kann ich mal dein code sehen?!

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.