SPRUIZ1B July 2023 – August 2024 TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
A CPU has execution permission from a memory, only if that memory is dedicated to that CPU or the respective subsystem is controller for that memory (in case of GSx memory). When fetch accesses are allowed based on the permission, the fetch accesses can be further protected by setting the FETCHPROTx bit of the specific register to 1. If fetch access is done by the CPU to a memory where CPU fetch protection is enabled, a fetch protection violation occurs.
There are two types of fetch protection violations:
If a fetch access is made to a memory by a non-controller CPU, the violation is called a non-controller fetch protection violation. If a fetch access is made to a dedicated or shared memory by the controller CPU and FETCHPROTx is set to 1 for that memory, the violation is called a controller CPU fetch protection violation.
If a fetch protection violation occurs, the violation results in an ITRAP for CPU. A flag gets set into the appropriate access violation flag register, and the memory address for which the access violation occurred gets latched into the appropriate CPU fetch access violation address register.