A microcontroller has a nonvolatile memory that originally stores program
code and has free space. When part of the program code needs to be
modified, that part is disabled, and modified program code is stored in
the free space. The modified program code is executed in place of the
disabled program code. Program code can be disabled by changing
instructions to a designated instruction, by storing the address of the
disabled program code in the nonvolatile memory and loading this address
into a disabled code detector, or by deleting the address of the disabled
program code from an address list in the nonvolatile memory and adding the
address of the modified program code to the list. In this way, the program
stored in even a one-time-programmable microcontroller can be changed to
meet altered specifications or correct program bugs.
Ένας μικροελεγκτής έχει μια αμετάβλητη μνήμη που αποθηκεύει αρχικά τον κώδικα προγράμματος και έχει το ελεύθερο διάστημα. Όταν μέρος του κώδικα προγράμματος πρέπει να τροποποιηθεί, εκείνο το μέρος είναι εκτός λειτουργίας, και ο τροποποιημένος κώδικας προγράμματος αποθηκεύεται στο ελεύθερο διάστημα. Ο τροποποιημένος κώδικας προγράμματος εκτελείται αντί του εκτός λειτουργίας κώδικα προγράμματος. Ο κώδικας προγράμματος μπορεί να τεθεί εκτός λειτουργίας από τις μεταβαλλόμενες οδηγίες σε μια οριζόμενη οδηγία, με την αποθήκευση της διεύθυνσης του εκτός λειτουργίας κώδικα προγράμματος στην αμετάβλητη μνήμη και τη φόρτωση αυτής της διεύθυνσης σε έναν εκτός λειτουργίας ανιχνευτή κώδικα, ή με τη διαγραφή της διεύθυνσης του εκτός λειτουργίας κώδικα προγράμματος από έναν κατάλογο αποδεκτών στην αμετάβλητη μνήμη και την προσθήκη της διεύθυνσης του τροποποιημένου κώδικα προγράμματος στον κατάλογο. Κατ' αυτό τον τρόπο, το πρόγραμμα που αποθηκεύεται ακόμη και σε έναν ένας-χρόνος-προγραμματίσημο μικροελεγκτή μπορεί να αλλάξουν για να ανταποκριθεί στις αλλαγμένες προδιαγραφές ή τα σωστά ζωύφια προγράμματος.