Hallo zusammen, ich habe ein relativ großes Projekt mit Atmel AVR (AT90S4433) gemacht und möchte den Code jetzt natürlich davor schützen, dass ihn irgendwer ausließt und einfach die Controller klont. Beim PIC ist das ja kein Problem - den setzt man beim Programmieren einfach auf "Code Protect". In der Software AVR-Studio 3.54 mit angeschlossenem STK500 habe ich schon die Fusebits auf "Mode 3: Further programming and verification disabled" gestellt. Ja schön, ich kann den Controller zwar nicht mehr neu beschreiben - den Code kann man aber trotzdem auslesen und damit bei Bedarf so viele Controller klonen wie man will. Kennt jemand eine Möglichkeit das Teil zu sichern? ...muss doch irgendwie gehen, oder? Danke schon mal Gruß Andreas
Ja, mit den Lockbits kann man den Controller vor neuem Beschreiben schützen. Ist zwar auch irgendwie sinnlos, da die durch ein "Erase Device" auch gelöscht werden und das fröhliche Beschreiben weitergehen kann, aber naja. Ich kann mir einfach nicht vorstellen, das die AVR-Controller sich auf dem Markt so verbreiten konnten, wenn man ihren Code noch nicht mal schützen kann. Gruß Andreas
Haste mal probiert ihn wieder auszulesen? Weil, wenn verification disabled iss, iss auch kein Auslesen möglich. MNG
Hallo MNG, das ist ja gerade das Problem. Die Lock-Bits stehen auf "Mode3:Further programming and verification disabled" - auch nach dem Abschalten des Controllers und Neustart von AVR-Studio, sie sind also wirklich gesetzt. Wenn ich dann auf Flash-Read oder EEProm-Read gehe, kann ich das Teil aber trotzdem auslesen - ich verstehe es nicht. Gruß Andreas
Auslesen kann man sie, aber es steht nur Unsinn im Speicher (FF EE DD CC BB usw.), wenn die Lock-bits gesetzt sind.
Hallo Erwin, Du hast Recht. Es steht wirklich nur Unsinn im Speicher und das neue Beschreiben geht auch viel schneller, als der normale Flash-Zyklus. Ist aber auch ziemlich verwirrend, das die Software so tut, als würde sie den Code auslesen/schreiben, obwohl sie das gar nicht tut. Das hat Microchip ausnahmsweise mal besser gelöst, da steht dann eben: "Device is unreadeble, Device is Code-Protected". Also vielen Dank für Eure Antworten... Gruß Andreas
Die ganze Sache ist relativ einfach. Wenn die Lockbits gesetzt sind, kann man den Flash nicht auslesen, bzw. man bekommt nur unsinn. Der Erasebefehl löscht zwar die Lockbits aber auch gleichzeitig den internen EEProm und den Flash. Der Baustein ist dann für widerbescheiben verfügbar. Gruß MarkusS
Hi nochmal, also so unsinnig sind die Daten, die man zurückgelesen bekommt beim genauen Hinsehen garnicht. Es handelt sich nämlich um das Lowbyte der jeweiligen Adresse der Programmspeicherzelle: 0x01,0x02,0x02,...,0xFE,0xFF. Finde ich zwar trotzdem blöd aber Hauptsache niemand kann den Programmcode auslesen. Gruß Andreas
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.