AHB Bus Matrix
UG0331 User Guide Revision 15.0
227
A master in the FPGA fabric must extend the assertion of reset to the Cortex-M3 processor until the
system reset to the remainder of the MSS is negated. This master must then copy the appropriate code
from eNVM to eSRAM and release the reset of the Cortex-M3 processor.
7.1.4.1.1
Executing from eSRAM
The eSRAM remap is actually performed by aliasing the eSRAM blocks so they appear in the Cortex-M3
processor code space but are still accessible in the Cortex-M3 processor system space. Therefore, the
system designer must allocate the eSRAM among clients in such a way that a portion of eSRAM
allocated in one space (code space, for example) is left untouched in the other space (system space, for
example).
The Cortex-M3 processor executes the application (including ISRs) from the code space, allowing
optimal performance. However, the corresponding region in system space is grayed out. Conversely, the
stack (and heap, if present) as well as buffering for non-M3 masters (such as peripheral DMA or Ethernet
DMA) is allocated out of system space and so must be left grayed out in the code space.
This implementation is shown in the following figure.
Figure 114 •
Use Case for eSRAM Execution
This scheme allows flexibility to the system designer in choosing how much eSRAM is to be dedicated to
each class of storage. For example, if the application, stack, and heap are small, this allows a large
chunk of contiguous RAM to be allocated to buffering.
7.1.4.1.2
Using Harvard Architecture
When a system designer is more interested in optimal performance than flexibility, eSRAM_0 can be
dedicated to the application (and ISRs), and eSRAM_1 can be dedicated to stack, heap, and buffering.
This implies that the Cortex-M3 processor operates in a fully Harvard fashion, because eSRAM_0 can be
accessed only by the combined code bus, and eSRAM_1 can be accessed by the system bus of M3 as
well as the other (non-M3) masters.
7.1.4.1.3
Ensuring Deterministic Latency
If the system designer wishes to have deterministic latencies of ISR execution, the ISRs need to be
located in eSRAM. The eSRAM must be un-contended in order to guarantee true determinism. A
maximum latency value can be programmed to eSRAM slaves, so processor masters do not wait long for
access to eSRAM slaves. The maximum latency is set by writing into SW_MAX_LAT_ESRAM0[2:0] or
SW_MAX_LAT_ESRAM1 of ESRAM_MAX_LAT. You can execute code from the external memory
Stack/Heap
eSRAM
Code Space
(M3 ICode
and DCode)
System Space
(M3 System
Bus and Other
Masters)
eSRAM
Application
0x00000000
0x0000FFFF
0x20000000
0x2000FFFF
0xFFFFFFFF
eNVM
0x60000000
0x600FFFFF
System Memory
Buffering (DMA)
Содержание SmartFusion2 MSS
Страница 1: ...UG0331 User Guide SmartFusion2 Microcontroller Subsystem ...
Страница 166: ...Cortex M3 Processor Reference Material UG0331 User Guide Revision 15 0 132 ...
Страница 200: ...Embedded NVM eNVM Controllers UG0331 User Guide Revision 15 0 166 Figure 87 System Builder Window ...
Страница 407: ...Universal Serial Bus OTG Controller UG0331 User Guide Revision 15 0 373 ...
Страница 806: ...Fabric Interface Controller UG0331 User Guide Revision 15 0 772 Figure 345 FIC Master AHB Lite Subsystem ...