SPRUII0F May 2019 – June 2024 TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S
A CPU has execution permission from a memory, only if that memory is dedicated to that CPU or the respective subsystem is master for that memory (in case of GSx memory). When fetch accesses are allowed based on the mastership, 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-master CPU, the fetch access is called a non-master fetch protection violation. If a fetch access is made to a dedicated or shared memory by the master CPU, and FETCHPROTx is set to 1 for that memory, the violation is called a master 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, get latched into the appropriate CPU fetch access violation address register.