#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
. Я не знаю, какой анализатор вы имеете в виду, но он может показывать только часть размера программы. Вместо этого попробуйте создать конфигурацию выпуска. Конфигурация отладки имеет значительные накладные расходы.