SPRUII0F May 2019 – June 2024 TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S
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, the write access 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 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 is called a master DMA write protection violation.
If a DMA write protection violation occurs, the write gets ignored, 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 DMA write access violation address register. Also, an access violation interrupt is generated to the respective CPU, if enabled in the interrupt enable register. These are dedicated registers for each subsystem.
Note 1: | All access protections are ignored during debug accesses. Write access to a protected memory go through when the write access is done by way of the debugger, irrespective of the write protection configuration for that memory. |
Note 2: | 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. |