Malloc/free issues

Found out what was causing my board to crash. First I started with the Basic Example "ArduinoLogo" and added the SDRAM functionality. This did not crash my board. See the following:

/*
  ArduinoLogo

  created 17 Apr 2023
  by Leonardo Cavagnis
*/

#include "Arduino_H7_Video.h"
#include "lvgl.h"
#include "ArduinoGraphics.h"
#include <SDRAM.h>

#include "img_arduinologo.h"
// Alternatively, any raw RGB565 image can be included on demand using this macro
// Online image converter: https://lvgl.io/tools/imageconverter (Output format: Binary RGB565)
/*
#define INCBIN_PREFIX
#include "incbin.h"
INCBIN(test, "/home/user/Downloads/test.bin");
*/

Arduino_H7_Video Display(800, 480, GigaDisplayShield);
//Arduino_H7_Video Display(1024, 768, USBCVideo);

Image img_arduinologo(ENCODING_RGB16, (uint8_t *) texture_raw, 300, 300);

void nonFrameBuffer() {
    // Initilize SDRAM for non-framebuffer operations
//    SDRAM.begin(); // is the same as SDRAM.begin(SDRAM_START_ADDRESS);

    // Now we can malloc() and free() in the whole RAM space
    // For example, let's create a 7MB array
    uint8_t* myVeryBigArray = (uint8_t*)SDRAM.malloc(1024);
    if (myVeryBigArray ==0) {
      Serial.println("SDRAM myVeryBigArray did not allocate");
    } else {
      Serial.println("SDRAM myVeryBigArray allocated");
    }
    // and a small one
    uint8_t* mySmallArray = (uint8_t*)SDRAM.malloc(128);
    if (mySmallArray ==0) {
      Serial.println("SDRAM mySmallArray did not allocate");
    } else {
      Serial.println("SDRAM mySmallArray allocated");
    }

    // and use then as usual
    for (int i = 0; i<128; i++) {
        myVeryBigArray[i] = i;
        mySmallArray[i] = i*2;
    }

    // free the memory when you don't need them anymore
    Serial.println("SDRAM deallocating");
    SDRAM.free(myVeryBigArray);
    SDRAM.free(mySmallArray);
}

void setup() {
  Serial.begin(115200);
  while (!Serial);  

  Display.begin();

  Display.beginDraw();
  Display.image(img_arduinologo, (Display.width() - img_arduinologo.width())/2, (Display.height() - img_arduinologo.height())/2);
  Display.endDraw();
     nonFrameBuffer();
     Serial.println("Back from NonFrameBuffer");
}

void loop() { }

After much dissection of my program it came down to the following statement:

SDRAM.begin();

This statement was in my program and not in the working above test program. I removed the SDRAM.begin from my main program and it now does not crash.

My question is: What does the SDRAM.begin function do and what does it do if it is not there? If I put in the above test program, it does not crash it.

Thanks