SPRUHM8K December 2013 – May 2024 TMS320F28374D , TMS320F28375D , TMS320F28376D , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28378D , TMS320F28379D , TMS320F28379D-Q1
A CPU has execution permission from a memory, only if that memory is dedicated to that CPU or its respective subsystem is master for that memory (in case of GSx memory). When fetch accesses are allowed based on the mastership, it 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, it 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, it 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.