🛠 Ingénierie mémoire du Teensy 4.1 : TCM, DMAMEM, EXTMEM, flash QSPI et EEPROM

Teensy 4.1 · avance · Schéma en coupes du i.MX RT1062 du Teensy 4.1 : caches I/D 32 Ko, 512 Ko de RAM1 en TCM accès cycle unique, 512 Ko de RAM2 optimisée DMA (tas malloc), flash QSPI externe 8 Mo (7 936 Ko utilisables) et les deux empreintes QSPI sous la carte pour PSRAM.

Objectifs

Le Teensy 4.1 est une machine à mémoire : 1 024 Ko de RAM (512 Ko RAM1 en TCM accès cycle unique + 512 Ko RAM2 optimisée DMA), 8 Mo de flash QSPI (7 936 Ko utilisables, les 256 Ko supérieurs étant réservés à l'EEPROM émulée et au programme de secours), deux caches 32 Ko, et deux empreintes QSPI vides sous la carte pour souder de la PSRAM. Ce tutoriel range consciemment chaque donnée au bon endroit.

Les mots-clés

Code complet

#include <InternalTemperature.h>

DMAMEM  uint8_t audioBuf[8192];      // RAM2, compatible DMA
EXTMEM  uint8_t bigBuf[1024 * 1024]; // PSRAM : ne lie que si la puce est soudée

const char msg[] PROGMEM = "constante dans le flash QSPI";

void setup {
  Serial.begin(9600);
  while (!Serial && millis < 3000);
}

void loop {
  Serial.print("Temp. die : ");
  Serial.print(InternalTemperature.readTemperature); // capteur embarqué
  Serial.print(" C | tas libre (RAM2) : ");
  Serial.print(malloc_free / 1024);
  Serial.println(" Ko");
  delay(1000);
}

Vérification attendue

Avec une puce PSRAM soudée sur la petite empreinte, le sketch compile avec EXTMEM et le moniteur affiche température du die et tas libre. Sans PSRAM, le mot-clé EXTMEM provoque une erreur de compilation — c'est le signal de vérifier l'empreinte.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels