Hallo, ich suche einen Bootloader für die AVR-Prozessoren, der folgende zwei Kriterien erfüllt: 1. Es gibt nur eine serielle Leitung, der AVR kann also nur empfangen und nichts zurücksenden. 2. Als Initialisierungsbefehl für den Bootloader können nur Befehle an den AVR geschickt werden, eine Aktivierung über einen Taster soll es nicht werden. Gibt es da bereits etwas fertiges? Alle Bootloader, die ich bislang gefunden habe, senden auch irgendwas zurück. Gruß Christian
Du willst die Daten "einfach" an den mc schicken, ohne ein Programm, was ein Boot-Protokoll fährt, verstehe ich Dich richtig? Damit das funktioniert, müssen ein paar Bedingungen erfüllt sein: Entweder der PC, von dem Du das schicken willst, kann Dein Boot-Timing einhalten. Dann schickt er die Daten für eine Page, gibt das Programmier-Kommando, und wartet dann, bis der ATmega worstcase fertig ist (ca. 10ms). Dann das Spiel für die nächste Page von neuem. Oder der PC schickt die Daten komplett am Stück an den ATmega. Da Du nur eine Ltg und damit keine Handshake-Möglichkeit hast, musst Du die Baudrate so niedrig halten, dass der ATmega mit dem Programmieren hinterherkommt. Ausserdem muss der UART-Empfang interruptgesteuert sein und einen Eingangspuffer füllen, damit während den Programmierphasen keine Daten verloren gehen. Je nach AVR und damit nach Pagegröße sind aber 115200 Baud oder mehr möglich). Ausserdem kann der Bootloader NUR die NRWW-Sektion programmieren: Beim Schreibzugriff auf die RWW-Sektion würde der AVR "Pause" machen -> Datenverlust. Sinnvollerweise wählst Du als Bootloadergröße gleich die Maximal-Bootloadergröße, dann deckt der Bootloader die RWW-Sektion komplett ab. Einen Bootloader zu programmieren ist auch nicht wesentlich aufwändiger als ein "normales" Programm, wenn man einige Besonderheiten beachtet. Die AVR-libc unterstützt einen Bootloader schon ganz prima. Gruß, Stefan
Bei langsamen Uebertragungsraten ist sogar eine bidirektionale Kommunikation (halbduplex) moeglich: http://de.wikipedia.org/wiki/1-Wire Gruss, SIGINT
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.