Ich entwickle eine Anwendung für Mikrocontroller mit integriertem USB. Die Anwendung soll so portabel wie möglich sein, daher kann ich nicht nur auf eine Familie hinweisen.
Ich bin dabei, den Konfigurationsdeskriptor eines Geräts zu lesen, aber er ist zu lang, um in meinen internen Puffer zu passen. Ich kann dafür keinen dynamischen Speicher verwenden, daher muss ein Puffer für Steuerübertragungen statisch zugewiesen werden, und ich möchte seine Größe wirklich minimieren, da er nicht viel verwendet wird. Es ist also keine Option, ihm nur für diesen cfg-Deskriptor ein paar Kb zuzuweisen.
Ich habe es nicht im Standard gefunden, aber vielleicht habe ich einfach nicht gut genug gesucht ... ist es möglich, Steueranforderungen in mehrere aufzuteilen ? Fordern Sie zum Beispiel 128 (oder was auch immer) Bytes der cfg desc an, fordern Sie dann weitere 128 Bytes desselben Deskriptors an, diese müssten natürlich mit einem 128-Offset zurückgegeben werden, um die bereits gelesenen zu berücksichtigen, und so weiter.
Ist das möglich?
Vielen Dank für Ihre Zeit.
Anstatt den Konfigurationsdeskriptor anzufordern und alle Schnittstellen- und Endpunktdeskriptoren zusammenzustellen, könnten Sie die Deskriptoren einzeln anfordern. Ein Gerätedeskriptor ist 18 Bytes lang, und die anderen Standarddeskriptoren sind sogar noch kleiner. (Klassendeskriptoren können größer sein, wählen Sie also den größten, den Sie als Puffergröße benötigen.) Sie müssen die Deskriptoren parsen, um herauszufinden, was Sie sonst noch anfordern müssen, aber das ist nicht viel zusätzliche Arbeit. Der Gerätedeskriptor gibt die Anzahl der Konfigurationen an, config gibt die Anzahl der Schnittstellen an und interface gibt die Anzahl der Endpunkte und die Klasse an.
AaronD
AaronD
elpato
AaronD
elpato
AaronD
elpato