La región STM32 `FLASH 'se desbordó por el problema de xxx bytes resuelto

La región STM32 `FLASH 'se desborda por el problema de xxx bytes resuelto

1. Fenómeno problemático

Para el proyecto STM32L031 creado con STM32CUBEIDE, cuando HAL_UART_Receive_IT (& huart2, (uint8_t *) & aRxBuffer, 1); está habilitado, incluso si se interrumpe la recepción del puerto serie 2, se informa un error Región FLASH desbordada por xxx bytes al construir el proyecto.
Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

2. Solución incorrecta

Hay una forma de introducir en Internet, modificar el archivo de script compilado en el directorio del proyecto, abrir el archivo ld y
Inserte la descripción de la imagen aquí
modificar el valor FLASH (rx) a un valor mayor, como 36K
Inserte la descripción de la imagen aquí
después de la modificación, la compilación se puede descargar en el chip con éxito, pero el programa no se puede ejecutar . STM32L031 tiene solo un espacio Flash de 32K, y el aumento artificial del tamaño del espacio reconocido por el software no resuelve el problema.

3. La solución correcta

Debido a que el método de sondeo no interrumpido (sondeo) se utiliza para recibir correctamente los datos del puerto serie, el juicio básico es que el código generado por la optimización del método de interrupción uart es demasiado grande. Por tanto, se puede ajustar para optimizar la compilación.

En las Propiedades del proyecto de STM32CUBEIDE, busque la opción Optimización
Inserte la descripción de la imagen aquí
para optimizar la depuración y la compilación de versiones, seleccione Optimizar para tamaño
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
o todos los tipos usan Optimizar para tamaño
Inserte la descripción de la imagen aquí
Aplicar y salir. Escriba un espacio en el código, guarde y reconstruya el proyecto, y la compilación y el enlace se realizarán correctamente. Después de descargar al chip, la operación de recepción de interrupciones del puerto serie es normal.

Después de que ST actualizó la versión STM32CUBEIDE, el menú de control se convirtió en el siguiente, solo utilícelo como inferencia:
Inserte la descripción de la imagen aquí
-Fin-

Supongo que te gusta

Origin blog.csdn.net/hwytree/article/details/103125176
Recomendado
Clasificación