Hallo zusammen, nun muss ich mich auch mit bootloadern beschäftigen. Und zwar soll es ein bootloader a la avr231 werden, d.h. das objectfile soll aes encoded an den mega128 übertragen werden. Prinzipiell ist mir das Bootloader-Konzept eigentlich soweit klar. Wie immer steckt die Tücke im Detail (Und darin, dass ich mal wieder keine passende Doku finde). Meine Fragen also: 1. Hat schon jemand die avr231 auf den gcc übertragen? Es sind ja doch einige iar spezifische Sachen drinnen, die man wohl anpassen muss. 2. Prinzipiell: Ist es auch möglich gleichzeitig einen Bootloader und ein erstes Programm auf den avr aufzuspielen? Also nur ein Schritt und nicht 2 wie bei Bootloader aufspielen und dann erst Anwendung? Dazu: 2.1. Wie sag ich es dem Compiler? (Wohl das hauptproblem von mir.) 2.2. Und was macht der mit dem Init-Code? Bzw. Der init-code ist ja dann ja sogar 2x vorhanden; also 1x im Bootloader und dann nochmal im "Vektor 0". 3. Wo (zur Hölle) finde ich Doku zu avr-libc init? Ich habe mir bereits die Bootloader Megaload von Werner B. (leider Teile in ASM) und den usbisp von Mathias Weißer angeschaut. Ich bin aber in der Thematik noch zu wackelig auf den Beinen, als dass ich einfach Konzepte übernehemen will, ohne wirklich zu verstehen was sie tun. Betrifft vor allem das Problem: Wie sag ichs dem gcc, bzw. was macht der gcc darauf. Schoene Gruesse, Scheintod PS: Mathias: Wie schnell ist denn Dein Programmer? Und: In Deinem Readme zum usbisp schreibst Du, dass Platinen von dir gg. Aufwandsentschädigung zu beschaffen sind.
Hi zu 2. Ja das ist möglich. Ich bau mir dazu mittels kleinem Perl-Skript aus zwei HEX-Dateien eine. Geht sicher eleganter, erfüllt aber seinen Zweck. Der Initcode ist dann zweimal drin. Den brauchst du aber immer, denn wenn der der Applikation weg ist und die Programmierung dann schief geht startet auch der Bootloader nicht mehr. zu 3. http://www.google.de/search?hl=de&q=avr+libc+documentation&btnG=Google-Suche&meta= zu USBisp schnell? Wenn ich ihn im Rucksack habe habe und mit dem Mopped unterwegs bin u.U. ganz schön schnell ;-) Ernsthaft: Für einen Mega128 (Flash komplett) braucht der USBisp etwa 21s inkl. Verify. Platinen gibts bei mir für 6 das Stück. Matthias
Man kann das auch händisch machen: Das eine Hexfile nehmen, die letzte Zeile löschen (Enderecord) und das nächste daran klatschen. Ich würde mich aber sicherer fühlen, wenn ich mit dem Laden der Anwendung per Bootloader gleich geprüft habe, daß der Bootloader auch wirklich funktioniert. Der Initcode muß für jeden extra sein, da er unterschiedlich ist ! Die Anwendung würde ziemlich blöd aus der Wäsche gucken, wenn sie die Variablen des Bootloaders initialisiert bekommt bzw. umgekehrt. Peter
Hi, Das mit dem Hex-File ist ja fast zu einfach um wahr zu sein :) @matthias: Danke für den Google-Link. Vielleicht hab ich ihn verdient. Hatte mich ein bischen blöd ausgedrückt. Die avr-libc Doku ansich kenne ich. Die ist allerdings ... nun je ... verbesserungsfähig. Wenn man schon weiss was man braucht, dann bringt sie einen glaube ich auch gut weiter. Wenn man noch nicht weiss, wohin die Reise geht, schaut man besser wo anders nach. Was ich speziell vermisse ist mal eine schöne Beschreibung, was der Init genau macht (Also der Init-"Prozess"). Hab aber inzwischen ein bissl in den Quellen gestöbert aber da auch nicht wirklich weitergekommen. (Irgendwo muss doch der Init im source liegen?) @usbisp: kann ich die beiden chips auch über Dich beziehen? @peter: Das mit dem Prüfen dachte ich mir auch. Andererseits muss vermutlich/hoffentlich ich (persönlich) > 1000 cpus programmieren. Der Test muss dann 'irgendwie' anders & schneller gehen (und eh statfinden wg. der anderen Funktionen). Herzlichen Dank für die Infos & Schoene Gruesse, Scheintod
Es gibt von Atmel auch eine Appnote mit einem DES-bootloader. Ich schätze für Microcontroller sollte das ausreichend sein! Nennt sich AVR230. Warum also das Rad neu erfinden? Gruss Henrik
Hi Henrick. Die kenn ich. avr231 ist die selbe für AES verschlüsselung (moderner, mehr bits, schneller). Große Teile des codes sind auch die selben. Aber meine Probleme dass die apnote für den iar ist und ich mich mit den Details des gcc noch nicht so genau auskenne bleibt leider :(. Schoene Gruesse, Scheintod
P.S.: Habe gerade gesehen, dass es eine neue gibt mit dem AES, namens AVR231. Ist allerdings Assembler glaube ich.
(schon 2 Fehlpostings, naja kann nicht alles glatt gehen heute) Ich bin mal auf eine Internet-Seite von einer Uni gestoßen, wo Studenten AES (128) auf einem AVR in Assembler implementieren mussten. Die besten 3 Lösungen standen zum Download. Eine davon habe ich auf Festplatte. Ich möchte sie hier aber nicht einfach veröffentlichen. Wenn du mal deine Mail angibst kann sie dir schicken. Das sollte sich relativ einfach in einen bestehenden Bootloader einbinden lassen. Gruss Henrik
Hi was macht der init-Prozess: Im großen und ganzen setzt er den Stackpointer auf, initialisiert die globalen Variablen und ruft dann die main-Funktion auf. Den Mega8 und FTDI gibts zur Not auch bei mir dann aber mit etwas aufgerundeten Reicheltpreisen (zusammen 10) da ich die Versandkosten von Reichelt nicht zuschießen will. Matthias
Hi, @Henrik: besten danke für das nette Angebot. Für so heikle Themen wie Verschlüsselung ist es mir allerdings lieber wenn ich genau weiss, woher der code kommt. Ausserdem wäre dann auch noch die Frage nach der Lizenzierung zu klären. Trotzdem aber danke nochmal. @Matthias: Hast du eine Ahnung wo der code dafür herkommt oder wo er dokumentiert ist? Die avr-libc scheint es ja nicht zu sein. Also der gcc. Da habe ich bei mir (WinAVR unter cygwin) aber auch nur object-files gefunden, die so aussehen, als könnten sie die richtigen sein. Wg. den Platinen/Chips rühr ich mich einfach per e-mail wenn ich soweit bin. Muss erst mit dem 'echten' elektroniker reden :) Schoene Gruesse, Scheintod
Deinen Zweifeln kann man Abhilfe schaffen. Lade dir das AES-Sheet von der Homepage der Autoren runter und lass die (zahlreichen) Testvektoren durchlaufen. Wenn diese mit den angegebenen Ergebnissen übereinstimmen, stimmt auch die Implementierung. Das mit der Lizensierung ist nicht meine Sache, ich hätte dir nur die Suche erspart. Ob und wie du den Code verwenden darfst mußt du mit den Autoren selbst ausmachen! Gruss Henrik
P.S.: Ich meinte das AES-Sheet von der Page der AES Entwickler. Nur um Missverständnissen vorzubeugen. Schau doch mal hier: http://www.iaik.tu-graz.ac.at/research/krypto/AES/ http://www.iaik.tu-graz.ac.at/aboutus/people/rijmen/index.php Vincent Rijmen ist einer der Entwickler von AES
@Henrik: Cool. Danke für die Links. Schoene Gruesse, Scheintod
eine kleine Verständnisfrage vom Anfänger auf dem Gebiet: Wenn ich nach ap231 einen Bootloader auf dem Chip erstellt habe, kann ich dann mein hex/obj/bin/wasauchimmer-File nachträglich verschlüsseln und dann raufspielen? Oder muß schon während des Quelltext-Compilen diese Verschlüsselung eingebunden werden?
Hi Micha, Prinzipiell funktioniert das so: 1. Bootloader kompilieren und incl. Key auf avr installieren 2. Programm kompilieren 3. Programm mit Key verschlüsseln 4. Programm auf avr installieren 5. goto 2 Das installieren läuft dabei soweit ich es verstanden habe mit einem eigenen tool. In der Application Note aber gut & ausführlich erklärt. Schoene Gruesse, Scheintod
Hallo, hab da ein Problem mit dem AES Bootloader von Atmel. Benutze den ATmega2560. Die Daten aus dem File liegen alle korrekt vor, allerdings schreibt er nichts ins Flash, alls Einträge bleiben auf leer (0xFF). Habt ihr eine Idee ?
Hallo Andreas, ich habe das gleiche Problem seit 2 Tagen. Vermutlich haben wir die gleichen Fehler gemacht. Falls du das Problem gelöst hast, wäre ein Hinweis sehr hilfreich. Gruß Martin
Hallo Ihr zwei, ich gehe mal davon aus dass ihr das Problem schon längst gelöst habt. Für alle anderen findet sich ein guter Hinweis/die Lösung hier: Beitrag "Einstellungen unter Assembler und Linker" Grüße Michael
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.