Hallo zusammen, vorweg ich habe schon die Suchfunze benutzt aber bin nicht zum gewünschten Ergebnis gekommen. Folgende Problematik: Ich habe ein Steuerprogramm für einen ATmega 32 Entwickelt und würde dieses gerne "im Chip" weitergeben. Das mit dem Ausleseschutz ist mir soweit klar. Ich hoffe ihr haltet mich nicht für einen Egoisten aber in das Programm habe ich mehr als 100h Arbeit hineingehängt und möchte dieses somit natürlich vor dem Kopieren schützen. Das Problem ist daß ich ein Programmupdate über einen Bootloader machen möchte. Der Bootloader ist in C geschrieben und unterstützt kein Verify da dies ja eine möglichkeit zum Auslesen wäre. Die Firmware wird verschlüsselt zum AVR übertragen und vom Bootloader entschlüsselt und im Flash abgelegt. Was mir nicht klar ist: Wie muß ich die Lockbits einstellen, daß das auslesen der Firmware aus dem uC mit normalen Mitteln unmöglich ist (also kein ISP usw...) der Bootloader aber trotzdem in den Speicherbereich reinschreiben kann? Es sollte (muß aber nicht) auch möglich sein große Datenfelder die im Flash abgelegt werden in der Firmware auszulesen. Wie gehe ich vor? Falls was unklar ist, bitte posten ich versuche es dann zu erklären.. MfG Müller
Das Bootloader-Schreiben in den Flash hat nichts mit den Lock-Bits für den Modus 1-3 zu tun. Wenn Du diese so setzt, daß das Flash über die Programminterfaces nicht gelesen werden kann (Mode3: Further programming and verification disabled), dann kann der Bootloader trotzdem schreiben und lesen. Die Firmware kann nicht ausgelesen werden, es sei denn, Dein Bootloader kann a) lesend auf des Flash zugreifen und b) Du erlaubst ihm, diese Daten nach außen zu übermitteln. Tust Du dies nicht, ist Dein Programm im Chip und auch der Bootloader selbst sicher. Erlauben mußt Du SPM in der Applikations-Sektion; wenn Dein Programm Konstanten aus dem Flash lesen soll, mußt Du auch LPM in der Applikations-Sektion erlauben. Verhindern mußt Du SPM in der Bootloader-Sektion, damit der Bootloader durch einen Codefehler nicht selbst abgeschossen werden kann. Braucht der Bootloader Konstanten aus dem Flash, muß in der Bootloader-Sektion LPM erlaubt werden.
Du musst unterscheiden zwischen den Lockbits und den Boot-Lock-Bits. Das sind zwei völlig unterschiedliche Dinge. Die Lockbits regeln den Zugriff von außen (also über die Programmierschnittstellen ISP und JTAG/dW) und die Boot-Lock-Bits den Zugriff über den Bootloader. Du kannst über die Lock-Bits einstellen, dass keine Programmierung und Verification über die Standard-Programmierschnittstellen möglich sind. Das hat aber keinen Einfluss auf die Zugriffsrechte des Bootloaders, die über die Boot-Lock-Bits konfiguriert werden können. Schau Dir einfach im Datenblatt unter "Memory Programming" die Tabelle an. Die sollte eigentlich keinerlei Fragen offen lassen.
Du setzt die Fuse für JTAG Disable und die Hardware-Lockbits. Die Bootloaderlockbits setzt du auf Schreibschutz und die Applikationslockbits auf ungeschützt. Damit ist JTAG, ISP und Parallel ausgesperrt und nur der Bootloader darf schreiben. Peter
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.