SPRUII0F May 2019 – June 2024 TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S
RAM blocks that are accessible from both the CPU and their respective DMA are called global shared RAMs (GSx RAMs). Each shared RAM can be owned by either CPU subsystem based on the configuration of their respective bits (one bit for each GSx memory) in the GSxMSEL register. When a particular GSx RAM block is owned by the CPU1 subsystem, CPU1 and CPU1.DMA have full access to that RAM block, whereas CPU2 and CPU2.DMA have only read access to that RAM block (no fetch/write access). Similarly, when a particular GSx RAM block is owned by the CPU2 subsystem, CPU1 and CPU1.DMA has only read access (no fetch/write access) to that RAM block, whereas CPU2 and CPU2.DMA has full access to that RAM block. Table 3-10 shows the features of the GSx RAM.
GSxMSEL | CPU1 | CPU1 | CPU1 | CPU1.DMA | CPU1.DMA | CPU2 | CPU2 | CPU2 | CPU2.DMA | CPU2.DMA |
---|---|---|---|---|---|---|---|---|---|---|
Fetch | Read | Write | Read | Write | Fetch | Read | Write | Read | Write | |
0 | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes | No |
1 | No | Yes | No | Yes | No | Yes | Yes | Yes | Yes | Yes |
Like other shared RAMs, these RAMs also have different levels of access protection that can be enabled or disabled by configuring specific bits in the GSxACCPROT registers mapped in each subsystem.
Master select and access protection configuration for each GSx RAM block can be individually locked by the user to prevent further update to these bit fields. The user can also choose to permanently lock the configuration to individual bit fields by setting the specific bit fields in the GSxCOMMIT register (refer to the register description for more details). Once configuration is committed for a particular GSx RAM block, it can not be changed further until CPUx.SYSRS is issued. Only the CPU1 software can change the master select configuration by writing into the GSxMSEL register, mapped on the CPU1. The GSxMSEL register, which is mapped to the CPU2 subsystem, is a status register that can only be used by CPU2 software to know the master ownership for each GSx RAM block.