Forum: PC-Programmierung V-USB Code Windows 8


von Norbert S. (pianoforte)


Lesenswert?

Ich habe im Internet das Tutorial von 
[[codeandlife.com/.../avr-attiny-usb-tutorial-part-1]] durchgearbeitet 
und einen Attiny2313 erfolgreich mit Atmel Studio 6 Programmiert.
Die usb.h Libary eingebunden und den Attiny2313 zum laufen gebracht. In 
Windows stand dann Unbekanntes Gerät, aber nach erfolgreichem usbwin32 
Wizard wurd das USB Gerät erfolgreich erkannt.

Nun versuche ich mit Visual Studio eine kleine Kommandozeilen C-Code zu 
schreiben und zu komplementieren um die Verbindung auch mal zu testen.
Es soll einfach nur mal eine LED ein und ausgeschaltet werden.
Bekomme aber den C-Code für Windows nicht komplementiert.
Immer massig Fehlermundengen.
Habe auch schon die Beispiele hier im Forum und im Internet 
heruntergeladen. Und da versucht den C-Code für Windows bzw. für die 
Kommandozeile neu zu debuggen. Ohne Erfolg. Auch mit Makefile immer 
wieder Fehler.
Selbst wenn ich aus den Tutorial von oben den Code neu debuge, über die 
Makefile mit make all. Macht er mir nur die main.hex neu bei der 
usbtest.exe kommt ein Fehler. Das er eine Datei nicht findet.
Es steht ja auch dabei das man MinGW benötigt ? aber was davon ?
Ist das so schwer ? Oder hab ich was übersehen ?
Gibt es da keine einfachere Möglichkeit ?

Hat hier jemand von euch schon erfolgreich einen USB Treiber geschrieben 
und Komplementiert ?
Oder hat hier jemand schon eine kleine Anwendung für Windows 
programmiert mit Visual Studio ?
Welche Software dafür ist am besten geeignet ?
Makefile mit MinGW oder was nimmt man am besten dafür ?

Danke im Voraus !

: Verschoben durch User
von Bernd K. (prof7bit)


Lesenswert?

Norbert Sekan schrieb:
> Ist das so schwer ?

Ja.

> Gibt es da keine einfachere Möglichkeit ?

Nein.

von Lothar (Gast)


Lesenswert?

Norbert Sekan schrieb:
> Gibt es da keine einfachere Möglichkeit ?

Wesentlich einfacher wäre USB HID:

https://www.obdev.at/products/vusb/automator.html

Es gibt auch fertige Visual Studio Projekte:

http://janaxelson.com/hidpage.htm

von Tom A. (toma)


Lesenswert?

Hallo Norbert,

du mußt das Rad nicht neu erfinden und einen eigenen Treiber schreiben. 
Es gibt auf SourceForge den LibUsb-treiber zum runterladen. Mit dessen 
Hilfe habe ich die V-USB Anbindung unter BorlandStudio schon gemacht.

HID ist auch eine Lösung.

Gruß. Tom

von Norbert S. (pianoforte)


Lesenswert?

Ich habe mir von SourceForge den LibUsb-treiber schon heruntergeladen 
und versucht ihn im Visual Studio einzubinden. Ohne Erfolg. Auch mit dem 
QT-Creater habe ich es noch nicht geschafft diese Libary einzubinden.

Ich kann aber mit dem BorlandStudio nochmal versuchen.

Selbst wenn ich von 
[[codeandlife.com/.../avr-attiny-usb-tutorial-part-1]] das fertige 
Projekt, wie gesagt, mit der Makefile frisch komplementiere gibt mit GCC 
bei den libus Treibern, den Fehler aus. Das er die Datei nicht finden 
kann.

MFG

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du "komplementierst" nichts. Wie kommst Du auf dieses Wort?

Und wenn es Fehlermeldungen gibt, ist es sinnvoll, sich diese näher 
anzusehen, dafür sind die nämlich da. Man muss nicht hektisch das 
Handtuch bzw. die Entwicklungsumgebung werfen, wenn es einen Fehler 
gibt, und zur nächsten wechseln, in der Hoffnung, daß dann der Fehler 
magisch verschwindet. Lernen tut man von dieser Vorgehensweise sowieso 
nichts.

von Norbert S. (pianoforte)


Lesenswert?

Weiß nicht wie ich darauf komme.
Also eben Debuggen , oder so...

Ich habe in den Visual Studio mich nochmal damit beschäftigt die 
libus-win32 Datein einzubinden.
Ist ja im Internet alles beschrieben. Trotzdem kommt dann der Fehler das 
er die Datei libusb.dll nicht öffnen kann.
Und wenn ich diese USB Libary nicht einbinde kommt Fehler Linker:2019 
mehrfach.
Aber ich werde mich damit noch mal weiter beschäftigen.
Muss ja irgendwie gehn....

Also wenn ich dann auf debuggen drücke (F5).
Ich hoffe das war jetzt richtig erklärt so von mir ?


MFG

von bluppdidupp (Gast)


Lesenswert?

Warum nicht einfach 1:1 die Fehlermeldung nennen?

>Trotzdem kommt dann der Fehler das er die Datei libusb.dll nicht öffnen kann.
Je nachdem, was den Fehler ausspuckt, hast du evtl. die .dll statt der 
.lib eingebunden (siehe readme.txt von libusb)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Norbert Sekan schrieb:
> Trotzdem kommt dann der Fehler das er die Datei libusb.dll nicht öffnen
> kann.

Welches Programm gibt wann diese Fehlermeldung aus?

von Tom A. (toma)


Angehängte Dateien:

Lesenswert?

Hallo Norbert,

ist alles schon länger her, ich versuche mich zu erinnern. Der 
LibUsb-Treiber wird nicht in dein C-Programm eingebunden. Du schließt 
dein USB-Gerät an den Computer und startest den Wizard von LibUsb, 
dieser richtet den Treiber für dein Gerät auf dem PC ein.

Habe mal die wesentlichen Teile eines LibUsb-Programms in der Datei im 
Anhang. Ist kein vollständiges Programm, sondern nur Teile für USB, zur 
Orientierung. Hatte mir die Infos damals aus LibUsb und dem Internet 
zusammengesucht.

Das C-Projekt besteht aus meiner Quelldatei. der LibUsb-Bibliothek 
"libusb.lib" und einer Datei "opendevice.c", die ich aus dem Internet 
geholt hatte.

Die Aufrufe von "SendToDriver" richten sich an Funktionen im USB-Gerät, 
die anderen Aufrufe wenden sich an LibUsb oder opendevice.

Viel Erfolg. Tom

von Norbert S. (pianoforte)


Lesenswert?

So,
ich habe die *.lib Datei nochmal richtig über Proberties->Linker->Input 
->  Additional Dependencies ->"C:\libary\libusb.lib" eingefügt.
Jetzt bindet er auch richtig die Libary ein.
Das geht schon mal !
Danke !

Jetzt kam beim debug die Fehler, jede *.dll Datei ->cannot find or open 
PDB file.
Also mal im Internet gestöbert.
Und siehe da. Wenn ich in Optionen da ein Hacken setze, das er die 
erforderlichen *.dll Dateien vom Microsoft Server sich selber holt.
Geht das auch alles.
Jetzt bleibt nur noch ein Fehler übrig.
Und zwar: beim debuggen steht dann da : 'LED_test.exe' (Win32): Loaded 
'C:\Windows\System32\libusb0.dll'. Cannot find or open the PDB file.

Diese Datei ist aber vorhanden.
Ich habe auch nochmal diese erforderliche Datei gelöscht und die 
passende Datei von libus-win32.zip Archiv herein kopiert.
Der Fehler ist leider noch da.
Bei der Readme von libus-win32 steht ja, das man die richtige Datei für 
das jeweilige System mit Hand rein kopieren soll, und ggf. Umbenennen 
muss.
Hab ich ja gemacht.
Aber der Fehler ist noch nicht weg.
Wie gesagt ich nehme das Beispiel von 
[[codeandlife.com/.../avr-attiny-usb-tutorial-part-3]] und Versuche es 
im Visual Studio 2013 zum laufen zu bekommen.

MFG

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Diese Meldungen des Debuggers kannst Du schlicht und einfach ignorieren. 
Die PDB-Dateien der diversen DLLs brauchst Du nur, wenn Du diese DLLs 
debuggen willst.

Das aber ist gar nicht Dein Ziel, Du willst Dein Programm debuggen. 
Und dafür reicht die PDB-Datei Deines Programmes aus. Wenn Du im 
Single-Step in eine in einer DLL vorhandene Funktion 'reingehst, landest 
Du so oder so in der Assembleransicht, weil Du den Quellcode der DLLs 
sowieso nicht haben wirst (mal abgesehen von libusb selbst, aber die 
wirst Du nicht debuggen wollen, das haben schon andere für Dich 
gemacht).

von Norbert S. (pianoforte)


Lesenswert?

Habe mich nochmal etwas mit VS beschäftigt.

Und das ganze Projekt noch frisch gestartet.
Dann auf make Solution.

Und schon ging es ohne Fehler.
Nur beim debuggen bekommt man Fehler.
Aber die kann man getrost übersehen.

Danke an alle !

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.