~aleteoryx/muditaos

ref: 8d96f2d3543c2bea59610e6b65edc842a6b2d42b muditaos/module-bsp/board/rt1051/rt1051-memory.md -rw-r--r-- 1.3 KiB
8d96f2d3 — Lefucjusz [MOS-993] Logger bug fixes and optimizations 2 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.