Hallo,
ich habe ein Projekt für den STM32F030 aus der System Workbench for
STM32 in STM32Ide importiert. Nachdem Erzeugen ist mir aufgefallen dass
das Binary rund 4k größer ist also vorher mit der alten IDE. Also die
Mapfiles vergleichen, da ist mir aufgefallen dass nun zahlreiche
Einträge mit printf enthalten sind, z.B.
1 | .text.fprintf 0x00000000080066c8 0x20 c:/st/stm32cubeide_1.7.0/stm32cubeide/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v6-m/nofp\libc_nano.a(lib_a-fprintf.o)
|
2 | 0x00000000080066c8 fiprintf
|
3 | 0x00000000080066c8 fprintf
|
Im alten Mapfile kommt printf kein einziges mal vor. Hat jemand eine
Idee wie ich der STM32Ide sagen kann dass ich kein printf brauche? Wieso
schmeißt das der Linker nicht (mehr) raus?
So sehen die Compileraufrufe aus:
1 | -mcpu=cortex-m0 -std=c++20 -DNDEBUG -DUSE_HAL_DRIVER -DSTM32F030x8 -c -Os -ffunction-sections -fdata-sections -fno-exceptions -fno-rtti -fno-threadsafe-statics -fno-use-cxa-atexit -Wall -fstack-usage --specs=nano.specs -mfloat-abi=soft -mthumb
|
Und er Linker:
1 | -mcpu=cortex-m0 -T"LinkerScript.ld" --specs=nosys.specs -Wl,-Map="${BuildArtifactFileBaseName}.map" -Wl,--gc-sections -static --specs=nano.specs -mfloat-abi=soft -mthumb
|
Werner