www.mikrocontroller.net

Forum: PC-Programmierung LPC210x Bootloader Interface mit Anwendung (.NET) kombinieren?


Autor: Be Mi (bemi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe nun meine eigene Programmiersoftware für die NXP LPC2xxx MCUs 
fertig.

Nun ist es mir wichtig, dass ich den UART, der für den Bootloader 
verwendet wird auch gleichzeitig für die PC (Windows) Kommunikation 
genutzt werden kann.

Um zu Programmieren öffnet die Programmiersoftware die Schnittstelle, 
programmiert den LPC2xxx und gibt die serielle Schnittstelle (FTDI 
FT232) wieder frei.

Problem: Die PC Anwendung weiß natürlich nichts davon, dass ich (während 
der Entwicklung) öfter mal "so eben" neue Firmware in die MCU laden 
möchte. Ich unterstelle dabei, dass PC Anwendung und die MCU permanent 
miteinander kommunizieren. Also wird die serielle Schnittstelle 
dauerhaft offengehalten. Nun ist es mir zu aufwendig jedes mal vor dem 
Firmware Update die PC Anwendung zu beenden. Schön wäre es nun, wenn die 
Programmiersoftware die PC-Anwendung hierzu darüber informieren würde, 
dass ein MCU Update ansteht, damit diese die Kommunikation vorübergehend 
abbricht und nach dem Programmieren wieder neu initialisiert.

Ideal wäre es natürlich, wenn sich die Programmieranwendung "virtuell" 
zwischen die PC Anwendung und die serielle Schnittstelle schalten liese. 
Dann könnte ein Kommunikationsabbruch durch Unterterbrechung des 
Datenflusses erfolgen (virtuelle Stecker ziehen).

Nun 3 Fragen:
Ist es schwierig einen virtuellen COM-Port unter Windows anzulegen?
Gibt es unter Windows Möglichkeiten einen seriellen Kommunikationskanal 
zwischen 2 Anwendungen aufzubauen, ähnlich, als wenn die beiden 
Anwendungen über einen COM-Port kommunizieren würden?
Was wäre die einfachste Möglichkeit einer anderen Windowsanwenung eine 
Nachricht zu schicken.

Ich programmiere mit C++/CLI und dem .NET-Framework 2.0.

Autor: Willivonbienemaya .. (willivonbienemaya)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd M. wrote:
> Problem: Die PC Anwendung weiß natürlich nichts davon, dass ich (während
> der Entwicklung) öfter mal "so eben" neue Firmware in die MCU laden
> möchte.

Die PC Anwendung ist auch von dir geschrieben?
Wenn ja:
Kannst du nicht die Programmiersoftware über die Anwendung starten, dann 
weiss die Anwendung davon?


> Ideal wäre es natürlich, wenn sich die Programmieranwendung "virtuell"
> zwischen die PC Anwendung und die serielle Schnittstelle schalten liese.
> Dann könnte ein Kommunikationsabbruch durch Unterterbrechung des
> Datenflusses erfolgen (virtuelle Stecker ziehen).

Du kannst mal versuchen über den D2XX Treiber den USB zu resetten 
(Stichwort: Cycle), aber ich befürchte dass wird nicht funktionieren 
wenn die Anwendung den Port geöffnet hat.


> Nun 3 Fragen:
> Ist es schwierig einen virtuellen COM-Port unter Windows anzulegen?

Alles wo man tiefer ins Windows rein muss ist von Windows verbaut 
worden. Das wird sicher schwierig.

> Gibt es unter Windows Möglichkeiten einen seriellen Kommunikationskanal
> zwischen 2 Anwendungen aufzubauen, ähnlich, als wenn die beiden
> Anwendungen über einen COM-Port kommunizieren würden?

Keine Ahnung. Das .net Framework machts dir da aber nicht leichter, 
sondern versperrt dir noch mehr den Weg.

> Was wäre die einfachste Möglichkeit einer anderen Windowsanwenung eine
> Nachricht zu schicken.

Einfach, sicher, aber langsam ist es eine Nachricht in eine Datei zu 
schreiben, die von der anderen Anwendung gepollt wird.

Autor: Be Mi (bemi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grundsätzlich ist beides von mir. Es ging mir nur darum, eine möglichst 
komfortable Lösung zu finden.

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd M. wrote:
> Grundsätzlich ist beides von mir. Es ging mir nur darum, eine möglichst
> komfortable Lösung zu finden.

Auf
http://www.gmbsg.com/works/index.php?title=Remote_...
wird auf einige Möglichkeiten eingegangen...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.