Нашел рабочий пример. Копирую к себе syscalls.c Одним и тем же компилятором он собирается, в составе моего - нет. Ругается на register char * stack_ptr asm ("sp"); До этого просто переправлял в __asm__ Видимо, тут что-то другое... Поиск по исходникам ничего не дал. Какие-то хитрые ключи?
Вывод успешной сборки:
C:\PRJ\stm32f4-printf-shabl>make C:/Program\ Files/GNU\ Tools\ ARM\ Embedded/4.8\ 2014q3/bin/arm-none-eabi-gcc -mthumb -mcpu=cortex-m4 -std=gnu99 -Wall -Os -ggdb -fno -builtin -I. -Isrc -Icmsis -Istdperiph/inc -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DGCC_ARMCM4 -DVECT_TAB_FLASH -MD -c src/gpio_usart_init.c -o sr c/gpio_usart_init.o C:/Program\ Files/GNU\ Tools\ ARM\ Embedded/4.8\ 2014q3/bin/arm-none-eabi-gcc -mthumb -mcpu=cortex-m4 -std=gnu99 -Wall -Os -ggdb -fno -builtin -I. -Isrc -Icmsis -Istdperiph/inc -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DGCC_ARMCM4 -DVECT_TAB_FLASH -MD -c src/main.c -o src/main.o C:/Program\ Files/GNU\ Tools\ ARM\ Embedded/4.8\ 2014q3/bin/arm-none-eabi-gcc -mthumb -mcpu=cortex-m4 -std=gnu99 -Wall -Os -ggdb -fno -builtin -I. -Isrc -Icmsis -Istdperiph/inc -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DGCC_ARMCM4 -DVECT_TAB_FLASH -MD -c src/syscalls.c -o src/sysca lls.o C:/Program\ Files/GNU\ Tools\ ARM\ Embedded/4.8\ 2014q3/bin/arm-none-eabi-gcc -mthumb -mcpu=cortex-m4 -std=gnu99 -Wall -Os -ggdb -fno -builtin -I. -Isrc -Icmsis -Istdperiph/inc -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DGCC_ARMCM4 -DVECT_TAB_FLASH -MD -c src/system_stm32f4xx.c -o s rc/system_stm32f4xx.o C:/Program\ Files/GNU\ Tools\ ARM\ Embedded/4.8\ 2014q3/bin/arm-none-eabi-gcc -mthumb -mcpu=cortex-m4 -std=gnu99 -Wall -Os -ggdb -fno -builtin -I. -Isrc -Icmsis -Istdperiph/inc -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DGCC_ARMCM4 -DVECT_TAB_FLASH -MD -c stdperiph/src/stm32f4xx_gpi o.c -o stdperiph/src/stm32f4xx_gpio.o C:/Program\ Files/GNU\ Tools\ ARM\ Embedded/4.8\ 2014q3/bin/arm-none-eabi-gcc -mthumb -mcpu=cortex-m4 -std=gnu99 -Wall -Os -ggdb -fno -builtin -I. -Isrc -Icmsis -Istdperiph/inc -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DGCC_ARMCM4 -DVECT_TAB_FLASH -MD -c stdperiph/src/stm32f4xx_rcc .c -o stdperiph/src/stm32f4xx_rcc.o C:/Program\ Files/GNU\ Tools\ ARM\ Embedded/4.8\ 2014q3/bin/arm-none-eabi-gcc -mthumb -mcpu=cortex-m4 -std=gnu99 -Wall -Os -ggdb -fno -builtin -I. -Isrc -Icmsis -Istdperiph/inc -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DGCC_ARMCM4 -DVECT_TAB_FLASH -MD -c stdperiph/src/stm32f4xx_usa rt.c -o stdperiph/src/stm32f4xx_usart.o C:/Program\ Files/GNU\ Tools\ ARM\ Embedded/4.8\ 2014q3/bin/arm-none-eabi-gcc -Xassembler -ah -c startup/startup_stm32f4xx.s -o startup/start up_stm32f4xx.o C:/Program\ Files/GNU\ Tools\ ARM\ Embedded/4.8\ 2014q3/bin/arm-none-eabi-gcc -Lld-scripts -Tld-scripts/stm32_flash.ld -mcpu=cortex-m4 -mthu mb src/gpio_usart_init.o src/main.o src/syscalls.o src/system_stm32f4xx.o stdperiph/src/stm32f4xx_gpio.o stdperiph/src/stm32f4xx_rcc.o stdper iph/src/stm32f4xx_usart.o startup/startup_stm32f4xx.o -o template.elf C:/Program\ Files/GNU\ Tools\ ARM\ Embedded/4.8\ 2014q3/bin/arm-none-eabi-objcopy -Oihex template.elf template.hex C:/Program\ Files/GNU\ Tools\ ARM\ Embedded/4.8\ 2014q3/bin/arm-none-eabi-objcopy -Obinary template.elf template.bin --------------------------------------------------- C:/Program\ Files/GNU\ Tools\ ARM\ Embedded/4.8\ 2014q3/bin/arm-none-eabi-size template.elf text data bss dec hex filename 41008 2292 1120 44420 ad84 template.elf