Chapter 4 Memory
MC9S08DZ128 Series Data Sheet, Rev. 1
74
Freescale Semiconductor
4.6.7
Block Protection
The block protection feature prevents the protected region of FLASH or EEPROM from program or erase
changes. Block protection is controlled through the FLASH and EEPROM protection register (FPROT).
The EPS bits determine the protected region of EEPROM and the FPS bits determine the protected region
After exit from reset, FPROT is loaded with the contents of the NVPROT location, which is in the
nonvolatile register block of the FLASH memory. FPROT cannot be changed directly from application
software so a runaway program cannot alter the block protection settings. Because NVPROT is within the
last sector of FLASH, if any amount of memory is protected, NVPROT is itself protected and cannot be
altered (intentionally or unintentionally) by the application software. FPROT can be written through
background debug commands, which provides a way to erase and reprogram protected FLASH memory.
One use for block protection is to block protect an area of FLASH memory for a bootloader program. This
bootloader program then can be used to erase the rest of the FLASH memory and reprogram it. The
bootloader is protected even if MCU power is lost during an erase and reprogram operation.
4.6.8
Vector Redirection
Whenever any FLASH is block protected, the reset and interrupt vectors will be protected. Vector
redirection allows users to modify interrupt vector information without unprotecting bootloader and reset
vector space. Vector redirection is enabled by programming the FNORED bit in the NVOPT register to 0.
For redirection to occur, at least some portion of the FLASH memory must be block protected by
programming the FPS bits in the NVPROT register. All interrupt vectors (memory locations 0x0_FF80
through 0x0_FFFD) are redirected, though the reset vector (0x0_FFFE:0x0_FFFF) is not.
For example, if 8192 bytes of FLASH are protected, the protected address region is from 0x0_E000
through 0x0_FFFF. The interrupt vectors (0x0_FF80 through 0x0_FFFD) are redirected to the locations
0x0_DF80 through 0x0_DFFD. If vector redirection is enabled and an interrupt occurs, the values in the
locations 0x0_DFE0:0x0_DFE1 are used for the vector instead of the values in the locations
0x0_FFE0:0x0FFE1. This allows the user to reprogram the unprotected portion of the FLASH with new
program code including new interrupt vector values while leaving the protected area, which includes the
default vector locations, unchanged.
4.6.9
Security
The MC9S08DZ128 Series includes circuitry to prevent unauthorized access to the contents of FLASH,
EEPROM, and RAM memory. When security is engaged, FLASH, EEPROM, and RAM are considered
secure resources. Direct-page registers, high-page registers, and the background debug controller are
considered unsecured resources. Programs executing within secure memory have normal access to any
MCU memory locations and resources. Attempts to access a secure memory location with a program
executing from an unsecured memory space or through the background debug interface are blocked (writes
are ignored and reads return all 0s).
Security is engaged or disengaged based on the state of two register bits (SEC[1:0]) in the FOPT register.
During reset, the contents of the nonvolatile location NVOPT are copied from FLASH into the working
FOPT register in high-page register space. A user engages security by programming the NVOPT location,