Topic permanente di programmazione newbie

astrobeed:
x Tutti

Il punto chiave della questione, e che continua a sfuggirvi, è che i l.b. relativi alla flash generale fanno quello che devono fare, ovvero se settate la protezione in scrittura è impossibile alterare la flash oltre che dal firmware anche da SPI/Jtag e pure da HV.
Se durante la programmazione, non importa con che sistema, viene inviato un comando di reset, cosa che tutti i programmatori eseguono di default come prima operazione, i fuse vengono riportati al loro stato iniziale, ovvero nessun protezione nel caso dei l.b., e diventa possibile riprogrammare il micro.

Tutta questa apparente confusione deriva dal significato che diamo ai termini "alterare" e "riprogrammare" la flash.
Dalla nota applicativa AVR910, pagina 8 penultimo paragrafo, si afferma: "Per proteggere il contenuto della memoria da una sovrascrittura accidentale o da letture non autorizzate , i lock bit possono essere impostati per proteggere i contenuti della memoria ecc. ecc."
Io associo questa affermazione al termine alterare. Posso sovrascrivere parte o tutta la flash dopo aver impostato i l.b.?
No.

Più avanti la nota applicativa precisa: "Il solo metodo per riguadagnare l'accesso alla memoria dopo aver impostato i lock bits è di cancellare l'intero chip con un comando 'chip erase'. I lock bits saranno impostati ad 1, disabilitando la protezione, solo in seguito ad una pulitura di tutte le locazioni di memoria".
In questo caso il termine appropriato può essere riprogrammare. Dopo aver pulito tutta la flash, con la conseguente disabilitazione dei lock bits, posso riprogrammare la flash?
Si.

Poi si può discutere se la cosa è furba o stupida. Ma questo è un altro livello del discorso, in cui non si parla più dei lineamenti dei lock bits (cosa fanno) ma della loro efficacia (come lo fanno).

Ciao
QP