Skip to main content

External Memory

SITCore SoCs and modules can be paired with external memory for additional capacity — both SDRAM (volatile, for large in-RAM datasets and graphics buffers) and QSPI flash (non-volatile, for extending deployment storage).

warning

External memory is physically accessible with chip-level probing. Anything stored there can potentially be read by an attacker with the right equipment. For data that needs to stay secure, keep it inside the SITCore's internal memory. See IP Protection for the full security pattern.

External RAM (SDRAM)

Most SITCore SoMs include 32 MB of external SDRAM. This SDRAM is used in two ways:

  • As Unmanaged Heap — the default. Large buffers (UnmanagedBuffer, graphics bitmaps) live there automatically; internal RAM stays free for managed application state.
  • As extended managed heap — opt-in. You can extend the core managed heap into external SDRAM, trading the unmanaged heap region for a much larger managed heap. Use when your application needs more managed memory than internal RAM provides, and you've evaluated the security trade-off.

Extend the heap with TinyCLR Config or in code, followed by a software reset:

using GHIElectronics.TinyCLR.Native;

Memory.ExtendHeap();
Power.Reset();

External flash (QSPI)

Most SITCore SoMs and dev boards already include 16 MB QSPI external flash. You can use it three ways:

  • As extended deployment — devote the top 6 MB to the application/resources deployment region, giving you more program flash. The bottom 10 MB remains free for Tiny File System or raw sector access.
  • As an external file system — full 16 MB available via Tiny File System or via direct raw sector reads/writes.
  • As both — split between extended deployment and a smaller TFS region.

Enable extended deployment with TinyCLR Config or in code:

using GHIElectronics.TinyCLR.Native;

Flash.EnableExtendDeployment();
Power.Reset();

Because external flash can be probed, assemblies extended into external flash can be cryptographically secured with Secure Assemblies — see IP Protection for how to keep application code unreadable even when stored externally.

tip

TinyCLR Config can also display the current Deployment Map, showing what's stored where — useful for verifying that secure assemblies end up in internal flash and only the appropriate items live externally.

API reference

NamespaceDescription
GHIElectronics.TinyCLR.NativeExternal memory and native memory access