Moin!
Den Bootloader "merkt" man im normalen Betriebs-Modul überhaupt nicht
... er ist nur das allererste, was an Programm-Code abgearbeitet wird,
wenn der uC des Reset-Zustand verlässt.
Du kannst Ihn für die ersten Geh-Versuche getrost überschreiben.
Den brauchst Du also nicht, um USB-Verbindung zu bekommen.
Wenn Du das Applikationsveispiel von Atmel genommen hast ... die haben
da eins, das gibt die USB-Daten auf dem UART aus und umgekehrt.
Das hat bei mir relativ schnell funktioniert.
Nutzt Du Windows oder Linux als Host-PC?
Unter Windows musst Du noch eine *Inf-Datei an Win weitergeben, damit
dieses weiß, dass es den Standard-CDC-Treiber für dieses USB-Device
verwenden soll.
Linux erkennt sofort unter /dev ein neues Gerät. Hier kann man auch mit
lsusb anzeigen lassen, was gerade alles an USB-Geräten gefunden wird -
selbst wenn dafür keine Treiber installiert sind.
Ansonsten geht die App-Note von Atmel davon aus, dass Du einen
12MHz-Quartz verbaut hast und stellt die PLL entsprechend ein ... wenn
das bei Dir nicht so ist, bau einen 12 oder 16MHz Quartz ein. Bei 16
musst natürlich nochmal das PLL-Verhältnis einstellen.
Atmel liefert zu seiner App-Note so eine Art Mini-Betriebssystem, bei
dem der Reihe nach Tasks Rechenzeit bekommen. Das musst Du nicht
unbedingt übernehmen, es reicht, die jeweiligen USB Watchdog etc.
Routinen immer mal zyklisch aus Deinem Hauptpogramm aufzurufen.
Für die ersten Schritte würd ich es aber einfach so machen:
- App-Note 1:1 übernehmen
- eventuell alles, was nicht STK500-kompatibel ist, auskommentieren
(z.B. LED-Ansteuerung an IO-Ports)
- und draufspielen
Wie sieht denn Deine Hardware aus? Selbst gebaut oder ein Eval-Board?