Si no tienes mucha experiencia y, encima, tampoco sabes C/C++, deberías usar un firmware pre-configurado para tu hardware. Creo que deberías decir qué impresora/placa tienes y ver si alguien con el mismo hardware ya ha modificado los archivos de configuración de la versión de Marlin que quieras instalar. De esa forma te asegurarías que el firmware, como mínimo, va a compilar.
En C/C++ las variables han de ser declaradas antes de que las puedas usar. El mensaje de error que aparece en la imagen lo que te está indicando es que la variable
rx_buffer no está declarada en ese ámbito. Si miras al principio del fichero donde te da el error (MarlinSerial.cpp) verás estas líneas:
Código:
#if UART_PRESENT(SERIAL_PORT)
ring_buffer_r rx_buffer = { { 0 }, 0, 0 };
Y si miras en MarlinSerial.h estas otras
Código:
// The presence of the UBRRH register is used to detect a UART.
#define UART_PRESENT(port) ((port == 0 && (defined(UBRRH) || defined(UBRR0H))) || \
(port == 1 && defined(UBRR1H)) || (port == 2 && defined(UBRR2H)) || \
(port == 3 && defined(UBRR3H)))
Es decir:
1- Para que se declare la variable rx_buffer debe ser cierto UART_PRESENT(SERIAL_PORT) (hay una UART en el puerto serie especificado)
2- Para detectar la correspondiente UART se usa el registro UBRRH y según eso
si en tu configuración SERIAL_PORT vale 0 en algún sitio deberías tener una línea que empiece con #define UBRRH o #define UBRR0H
si en tu configuración SERIAL_PORT vale 1 en algún sitio deberías tener una línea que empiece con #define UBRR1H
si en tu configuración SERIAL_PORT vale 2 en algún sitio deberías tener una línea que empiece con #define UBRR2H
y si en tu configuración SERIAL_PORT vale 3 en algún sitio deberías tener una línea que empiece con #define UBRR3H
Así, a primera vista, parece que tu problema viene porque SERIAL_PORT tiene un valor y la línea con #define UBRR?? de tu configuración no coincida con la/s indicada/s más arriba. Vamos, que puede que tengas configurado el puerto serie 0 y luego tengas #define UBRR1H por ejemplo. El problema es que si no conoces tu hardware de nada te va a servir cambiar la línea correspondiente porque luego será peor y el Marlin que compiles no funcionará correctamente en tu impresora.
Saludos.