Shared
RAM
(Sx
Memory)
Cortex-M3
uDMA
C28x
DMA
Shared
RAM
(C2..Cn)
uDMA
Shared
RAM
(L2..Ln)
C28x
DMA
Cortex-M3
RAM Control Module
464
SPRUHE8E – October 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
Internal Memory
All these RAMs have the access protection (cpu write/cpu fetch/dma write) feature. Each type of access
protection for each RAM block can be enabled/disabled by configuring the specific bit in the shared RAM
configuration registers, allocated to each subsystem (CxSRCR for the M3 subsystem and LxSRCR for the
C28x subsystem).
Figure 5-2. Shared RAM (Dedicated to Subsystem)
Another type of shared RAMs (Sx RAMs) is accessible from all the masters and used for data and code
storage (see
). These RAMs can be accessed by both CPUs (C28x/M3) and their respective
DMA engines (C28 DMA/M3 uDMA). Each shared RAM can be owned by the M3 subsystem or the C28x
subsystem based on the configuration of respective bits (one bit for each Sx memory) in the MSxMSEL
register. When an Sx RAM block is owned by the M3 subsyteam, the M3 CPU and µDMA have full access
to that RAM block, whereas the C28x CPU and DMA have only read access to that RAM block (no
fetch/write access).
This register is only mapped to the M3 CPU, which means the master ownership setting for Sx RAMs can
be changed by software running on the M3 subsystem. This register can be LOCKED by the user to
prevent further updates to the MSxSEL register. Once it’s locked, it can be unlocked only by
SharedResorceReset. The C28x subsystem has a status register, CSxMSEL, which reflects the ownership
status of each Sx RAM block (see
).
Figure 5-3. Shared RAM (Shared between Subsystems)
Table 5-1. Master access for Sx RAM
(assuming all other protections are disabled)
SxMSEL
M3 Fetch
M3 Read
M3 Write
uDMA
Read
uDMA
Write
C28x
Fetch
C28x
Read
C28x
Write
DMA
Read
DMA
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 RAM, these RAMs also have a different level of access protection which can be
enabled/disabled by configuring specific bits in the MSxSRCR register (when the RAM block is owned by
the M3 subsystem) or the CSxSRCR register (when the RAM block is owned by the C28x subsystem).