Forum: Mikrocontroller und Digitale Elektronik Frage zu AT90USB1287 und Virt.Com Optimierungen


von Marian (Gast)


Lesenswert?

Hallo.
Ich habe es nun endlich geschafft den 90USB1287 über USB als VirtalCom 
zu identifizieren und der Datenaustausch mit dem PC funktioniert auch.

Mein Programm auf dem AT90 ist aber knapp 80kb groß, davon gehen 70kb 
nur für den USB-Kram drauf (ohne Optimierungen des Compilers aber wegen 
Debugfähigkeit möchte ich noch keine Optimierungen aktivieren).

Geht das irgendwie noch kleiner? Kann man da noch was weg lassen?
Immerhin frisst so viel Code ja auch Rechenleistung und meine 
eigentliche Anwendung muss nahezu echtzeitfähig laufen.

Zweite Frage:
Ich habe meine Anwendung auf Basis des Atmel-Demoprogramms gemacht und 
da ist ein Scheduler enthalten, der die Tasks (den USB-Task und mein 
Prgramm) verwaltet.
Gibt es eine Möglichkeit den weg zu lassen, so dass ich einmal in meiner 
Main InitUSB(); schreibe und alles zu USB gehörige dann läuft?
Durch den Enumerationprozess wahrscheinlich nicht, da der priorität hat, 
oder?

...hach, wäre es doch nur so schön einfach wie bei RS232 :-)

Jödel-di-dü und Danke
Marian

von Erwin R. (er-tronik)


Lesenswert?

Na klar geht das alles viel kleiner, wenn man die Atmel-Library wegläßt 
und alles selber programmiert.
Ein komplettes CDC-Bios (also als Virtual-Com) ist spielend in weniger 
als 4 Kilobyte zu bekommen (mit WinAvr kompiliert). Ich hab das hier auf 
einem AT90USB162 laufen.

Der Enumerierungsprozess muß schon separat abgearbeitet werden, aber 
danach reicht eigentlich der regelmäßige Aufruf einer Routine um 
abzufragen, ob Daten über den Out-Endpoint eingetroffen sind. Man kanns 
natürlich auch mit Interrupts programmieren.

Erwin

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.