Forum: Compiler & IDEs FreeRTOS und vUSB


von B. H. (bluehazzard)


Lesenswert?

Hallo,

Hat schon jemand mal probiert FreeRTOS und vUSB auf einen ATmega oder 
ATiny gemeinsam zu nutzen? Bin gerade dabei hänge aber bei der usbPoll 
Funktion, denke ich mal, mein Gerät wird halt nicht erkannt, wenn man es 
am PC einstöpselt... Ohne FreeRTOS funktioniert es aber...

Also, meine Frage: Hat das schon jemand mal mit Erfolg probiert?

mfg.

von Ulli (Gast)


Lesenswert?

Hallo B. H.,

ich bin gerade auf deinen Beitrag gestoßen. Leider kann ich dir dabei 
nicht helfen, aber ich bin derzeit dabei das FreeRTOS ebenfalls auf 
einen Mikrocontroller zum laufen zu bringen. Mich würde mal 
interessieren wie das mit den Queue's und Semaphroen unter FreeRTOS 
funktioniert.
Hast du dazu eventuell eine kleine Beispielapplikation?
Das wäre echt super von dir.

Bye

von Bernhard M. (boregard)


Lesenswert?

Hi,

ich habe Zweifel, daß das geht.
vUSB ist sehr zeitkritisch, wenn ich es richtig verstanden habe, müssen 
Interrupts sehr schnell bedient werden, d.h. eine "Applikation" darf 
keine Interrupts sperren, da sonst der USB Bus nicht schnell genug 
bedient werden kann.
RTOS hingegen muß öfter mal Interrupts sperren...

Ich lasse mich aber gerne eines Besseren belehren...

Gruß,
Boregard

von B. H. (bluehazzard)


Lesenswert?

Hallo,

@Bernhard M.:
Habe jetzt noch ein bisschen weiter experimentiert, und es doch zum 
laufen gebracht. Mit einer relativ niedrigen Tick Rate des OS hat es auf 
Anhieb funktioniert. Aber da ich doch einen Tick von ca. 10kHz benötige 
musste ich nur ein bisschen probieren, und auch die Taskverwaltung durch 
einen Interrupt unterbrechen lassen (nachdem er die gesamten Register 
auf dem Stack gespeichert hat) so geht mir zwar das RT von RTOS 
verloren, aber mir kommt es mehr auf das OS an ;).
Das Funktionieren bezieht sich imo aber nur auf das erkennen am PC, ob 
ich nun Daten empfangen und Senden kann, muss ich erst noch 
ausprobieren...


@Ulli:
Damit habe ich mich noch nicht genauer beschäftigt, dürfte aber kein so 
großes Problem sein oder? Ich finde die API und Manual recht gut... Wenn 
ich aber USB fertig habe, werde ich mich daran machen. Dies ist für mein 
Projekt aber nicht so wichtig, bzw. ich denke, dass ich ohne Semaphroen 
auskomme. Queue's werde ich aber für die Kommunikation brauchen. Mal 
schaun...

mfg.

von zOttel (Gast)


Lesenswert?

Guck mal hier: http://forums.obdev.at/viewtopic.php?f=8&t=3778 da 
versagte vUSB, wenn andere Interrupts länger als 1µs (bei 12MHz) 
gesperrt wurden..

von B. H. (bluehazzard)


Lesenswert?

Hallo zusammen.
Habe es inzwischen aufgegeben... Der Interrupt muss einfach zu schnell 
ab serviert werden, und wenn ich nicht die SFR speichern kann, dann 
bringt mir das die ganzen Tasks durcheinander...
Vielleicht probiere ich es Später noch mal...

mfg.

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.