#error "You need to select USB Type: 'MTP Disk (Experimental)'"

OP #5455906
Lesenswert?

Hallo

Ich experimentiere gerade mit:
Software: Arduino 1.8.5 und Teensy 3.5

Ich habe erfolgreich die Demos USB RAW HID und USB MTP getestet.
Nun möchte ich gerne meine Anwendung mit USB RAW HID steuern und später 
über USB MTP Files übertragen. Also nicht gleichzeitig. Einmal nutze ich 
HID das andere Mal MTP.

Ich habe den Code von beiden Demos in eine Sourcecode Datei vereint.
Problem:
Weil man sich vor dem Compilieren im Pull Down-Menü: Werkzeuge-USB Typ, 
…
für einen Typ entscheiden muss, kommt es zu dem Fehler in der 
Betreff-Zeile.

Was kann ich tun, dass ich beide Typen in einem Programm übersetzt 
bekomme?
Das sind jetzt wohl die Grenzen in der Arduino IDE ?

Grüße Markus
#5455947
Lesenswert?

markus c. schrieb:
> Also nicht gleichzeitig. Einmal nutze ich
> HID das andere Mal MTP.

Das ist aber deutlich schwieriger zu Lösen als gleichzeitig.

Ohne große und komplexe Änderungen würde das auf 2 verschiedene 
Programme hinauslaufen, die an unterschiedliche Stellen im Flash gelinkt 
werden.
Passt z.B. für den Anwendungsfall Booloader vs. main Firmware.

markus c. schrieb:
> Das sind jetzt wohl die Grenzen in der Arduino IDE ?

Nö. Das sind die Grenzen des Programmierers, der den fremden Code nicht 
versteht.

Die Programme zu kombinieren erfordert Änderungen an den Deskriptoren 
(z.B. IAD), und i.d.R. auch die Anpassung einiger Endpoints (weil man 
andere Nummern vergeben muss).

Nicht übermäßig schwer bei Erfahrung mit USB - aber auch keine 
Anfängerübung.
OP #5456020
Lesenswert?

Jim M. schrieb:
> Die Programme zu kombinieren erfordert Änderungen an den Deskriptoren
> (z.B. IAD), und i.d.R. auch die Anpassung einiger Endpoints (weil man
> andere Nummern vergeben muss).
>
> Nicht übermäßig schwer bei Erfahrung mit USB - aber auch keine
> Anfängerübung.

hmmm?
Ich möchte schon, dass beide Protokolle gleichzeitig laufen. Ich werde 
sie nur nicht gleichzeitig nutzen. Das wollte ich damit ausdrücken.

Änderungen an den Deskriptoren?
Wie steigt man da am schnellsten ein, wenn man noch gar keine Ahnung 
davon hat?

Grüße Markus
#5456864
Lesenswert?

markus c. schrieb:
> Wie steigt man da am schnellsten ein, wenn man noch gar keine Ahnung
> davon hat?

Man kauft sich ein Buch und liesst es. Ja ist oldschool, ich weiss.

Es ist übrigens alles[1] haarklein auf USB.org dokumentiert - aber ehe 
man da wirklich durchsieht hat man das o.g. Buch gelesen. Jemand hatte 
mal den guten Tipp die 1.1 Spec zuerst durchzugehen, da in 2.0 viel 
Zeuchs für High Speed dazu kam das man im µC oft nicht braucht.

Probleme macht u.U. dass die Herstelle ihr USB Peripherial nach 
Gutdünken bauen - die sind also subtil verschieden. Dadurch läuft 
Beispielcode immer nur auf einer konkrenten µC Familie - das sollte man 
eventuell bei der Auswahl der Literatur beachten.





[1] Allerdings werden oft Verweise benutzt, z.B. verweist die Mass 
Storage Doku auf die nicht-öffentliche SCSI Spec.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren