0

I am working on an embedded project with the STM32C031C6 microcontroller using STM32CubeIDE. My goal is to perform an FFT on ADC input data and transmit the results over UART. I am utilizing the ARM CMSIS-DSP library for the FFT processing.

Here are the details of my project:

Microcontroller: STM32C031C6
Toolchain: STM32CubeIDE 1.15.1
Compiler: arm-none-eabi-gcc 12.3.1
CMSIS-DSP: Using arm_rfft_instance_q15 and arm_cmplx_mag_q15 for FFT calculations
Peripherals: ADC (with DMA) and UART

The issue arises when I try to compile the project. I receive the following error:

arm-none-eabi-gcc -o "FFT.elf" @"objects.list" -larm_cortexM0l_math -mcpu=cortex-m0plus -T"STM32C031C6TX_FLASH.ld" --specs=nosys.specs -Wl,-Map="FFT.map" -Wl,--gc-sections -static -L"Lib" --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
C:/.../ld.exe: FFT.elf section `.rodata' will not fit in region `FLASH'
C:/.../ld.exe: region `FLASH' overflowed by 63696 bytes
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:64: FFT.elf] Error 1
1
  • 2
    It means the resulting binary is too large to fit the storage on your microcontroller! Commented Dec 11, 2024 at 6:50

1 Answer 1

2

It means that the program is too big for your MCU.

Your MCU is the cheapest and of the simplest and smallest in the STM32 family. It has 32 kb of RAM and your binary is at least 3x biggger

It has a small FLASH, small RAM and does not have FPU and an entry level ARM core. Those MCUs were not designed to carry heave DSP jobs. You need to spend a bit more money and choose the MCU with more resources and best with FPU.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.