~aleteoryx/muditaos

ref: c1391090c67428aeaffcef5a7a71a6d2ed69ccc9 muditaos/module-bsp/board/rt1051/rt1051-memory.md -rw-r--r-- 1.3 KiB
c1391090 — Mateusz Piesta [BH-1389] Catch2 unit tests optimization 3 years ago

#Memory configuration for the RT1051 platform

#Memory interfaces

There are 4 memory interfaces available for the platform. Three of them connect to FlexRAM inside the MCU, fourth is an external SDRAM. Inside the chip there are:

  • OCRAM - clocked with peripheral clock.
  • TCM - clocked with CPU clock. TCM is a high speed memory interface which allows to access data via two 32bit DTCM interfaces and/or instructions via a single 64 bit interface.

Currently RT1051 offers:

  • 64 kB of OCRAM memory;
  • 448 kB of DTCM memory;
  • 16 MB of SDRAM memory.

#Firmware in the memory

During linking firmware is split between memory regions. Data that need to be accessed fast is placed inside the chip (system code and data mostly),

  • data that cannot be cached (NonCacheable*),
  • system data, including system heap in (see heap_4.c),
  • common symbols (e.g. errno variable),
  • system stack (used before starting scheduler and by scheduler itself),
  • relocated "fast" functions (.ramfunc)

The rest is placed in the SDRAM split between two regions:

  • user code, including exception handling (BOARD_SDRAM_TEXT),
  • big buffers, including user heap (see usermem.c, region BOARD_SDRAM_HEAP)

Currently there is no data in the OCRAM region, though it could be used for DMA buffers.