Leseschutz bietet bei
Microcontrollern und PLD-Bausteinen Schutz vor nicht
autorisierten Kopien der Software. Bei
MCS51-Microcontrollern wird dieser mehrstufige Schutz
Lockbits" genannt. PLD-Bausteine haben zu
diesem Zweck eine Securityfuse.
Viele elektrisch löschbare
Speicherbausteine (FLASH, EEPROM) haben einen
Schreibschutz. Damit kann verhindert werden, dass ein
abgestürzter Prozessor unbeabsichtigt den Inhalt des
Speicherbausteins verändert. Je nach Typ können
Teile des Bausteins oder der gesamte Baustein
geschützt werden. Einige Formen des Schreibschutzes
sind irreversibel, andere können wieder aufgehoben
bzw. deaktiviert werden.
Die Schutzmöglichkeiten sind bei
verschiedenen Bausteinen sehr unterschiedlich.
Beschreibungen finden sich bei den jeweiligen
Bausteinen.
Grundsätzlich wird für die
Programmierung des Schreib-/Leseschutzes der
Parameter /s verwendet. Dieser Parameter kann bei der
Programmierung mit angegeben werden. Dabei wird der
gewünschte Schutzlevel als Zahl mit angegeben.
Einige Beispiele:
hedchip /gl22v10 /p /v /e /s1
myapp.jed
; Lattice
GAL22V10 löschen, programmieren,
verifizieren und schützen.
hedchip /ga89c5x /p /v /e /s7
myapp.hex
; Atmel
Controller löschen, programmieren,
verifizieren und alle 3 Lockbits
programmieren.
Lesegeschützte Bausteine können
natürlich auch vom hed.chip weder
ausgelesen noch kopiert werden. Je nach Typ passiert
folgendes:
- Der Baustein wird erkannt und
auch der aktivierte Schutz wird festgestellt.
hed.chip erzeugt dann entsprechende
Meldungen.
- Der Baustein wird erkannt und
ist scheinbar leer. Vor der Programmierung
müssen solche Bausteine durch einen
separaten Aufruf von HEDCHIP.EXE nur mit dem
Parameter /e gelöscht werden.
- Der Baustein kann nicht
identifiziert werden. Bei solchen Bausteinen
fragt HEDCHIP.EXE den Benutzer, ob trotzdem
fortgefahren werden soll. Dies gilt bisher
nur für Atmel AT89C5x Controller.
Einige Speicherbausteine verfügen
über mehrere Schreibschutzmöglichkeiten. Bei einem
Teil dieser Bausteine bauen die Schreibschutzstufen
aufeinander auf, bei anderen Typen können sie in
beliebiger Kombination aktiviert werden. Welche
Schutzmöglichkeiten zur Verfügung stehen und wie
diese aktiviert werden, ist bei den jeweiligen
Bausteinen beschrieben.
Schreibgeschützte
Speicherbausteine können von hed.chip
ausgelesen und kopiert werden. Um einen
schreibgeschützten Baustein neu zu programmieren,
muß der Baustein vorher gelöscht werden. Das gilt
auch, wenn nur ein Teil des Bausteins geschützt ist.
Der Parameter /s wird auch benutzt,
um andere, besondere Eigenschaften bestimmter
Bausteine zu programmieren. Bei Atmel Serie AT17C
FPGA-Configuration Memories wird damit die
Polarity Option eingestellt.