SPRUHM8K December 2013 – May 2024 TMS320F28374D , TMS320F28375D , TMS320F28376D , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28378D , TMS320F28379D , TMS320F28379D-Q1
The CPU1 or CPU2 DMA has write permission to a GSx memory only if the respective subsystem is master for that memory. When write accesses from a DMA are allowed based on the mastership, write accesses can be further protected by setting the DMAWRPROTx bit of a specific register to 1’ If write access is done by the DMA to protected memory, a write protection violation occurs.
There are two types of DMA write protection violations:
If a write access is made to GSx memory by a non-master DMA, the write access is called a non-master write protection violation. If a write access is made to a dedicated or shared memory by a master DMA, and DMAWRPROTx is set to 1 for that memory, the write access is called a master DMA write protection violation.
If a write protection violation occurs on CPU1, write is ignored and a DMAERR interrupt gets generated, whereas in the case of CPU2, a write is ignored and an access violation interrupt is generated if enabled in the interrupt enable register. A flag gets set in the DMA access violation flag register, and the memory address where the violation happened gets latched in the DMA fetch access violation address register. These are dedicated registers for each subsystem.
Note 1: | All access protections are ignored during debug accesses. Write access to a protected memory goes through when the write is done using the debugger, irrespective of the write protection configuration for that memory. |
Note 2: | Access protection is not implemented for M0 and M1 memories. |
Note 3: | In the case of local shared RAM, if memory is shared between the CPU and the CLA, the CPU only has access if the memory is configured as data RAM for the CLA. If the memory is programmed as program RAM, all the access from the CPU (including read) and data access from the CLA is blocked, and the violation is considered as a non-master access violation. If the memory is configured as dedicated to the CPU, all access from the CLA is blocked and the violation is considered a non-master access violation. |