STM32F042K6: область `FLASH» переполнена на 1212 байт

#c #nucleo #stm32cubeide #stm32f0 #stm32cubemx

Вопрос:

Я пытаюсь запрограммировать STM32F042K6 nucleo с помощью CubeIDE и STM32 HAL, но компилятор выдает ошибку:

область `FLASH» переполнена на 1212 байт.

Вот точный вывод консоли:

 09:55:03 **** Incremental Build of configuration Debug for project Virtual Com Port ****
make -j16 all 
arm-none-eabi-gcc -o "Virtual Com Port.elf" @"objects.list"   -mcpu=cortex-m0 -T"C:UsersEE EngineeringDocumentsProjectsFirmwareVirtual Comm PortSTM32F042K6TX_FLASH.ld" --specs=nosys.specs -Wl,-Map="Virtual Com Port.map" -Wl,--gc-sections -static --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
c:ststm32cubeide_1.7.0stm32cubeidepluginscom.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346toolsarm-none-eabibinld.exe: Virtual Com Port.elf section `.text' will not fit in region `FLASH'
c:ststm32cubeide_1.7.0stm32cubeidepluginscom.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.9-2020-q2-update.win32_2.0.0.202105311346toolsarm-none-eabibinld.exe: region `FLASH' overflowed by 1212 bytes
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:69: Virtual Com Port.elf] Error 1
"make -j16 all" terminated with exit code 2. Build might be incomplete.

09:55:04 Build Failed. 3 errors, 0 warnings. (took 340ms).
 

Однако, когда я смотрю на области памяти в анализаторе сборки, он показывает 16,58 КБ свободного места из 32 КБ при использовании 48,19%. Если используется только 48% флэш-памяти, то как флэш-память переполняется на 1212 байт и что я могу сделать, чтобы исправить это?

Анализатор сборки

Комментарии:

1. Вы можете проверить, правильно ли установлен размер вспышки STM32F042K6TX_FLASH.ld . Я не знаю, какой анализатор вы имеете в виду, но он может показывать только часть размера программы. Вместо этого попробуйте создать конфигурацию выпуска. Конфигурация отладки имеет значительные накладные расходы.