Здравствуйте.
Пишу на Си под stm32, но это не суть. Gcc схож. Проблема в следующем.
Поскольку система встраиваемая нужно переопределить printf, чтобы он выводил данные в USART. Есть рабочий код переписанных функций, изменяющих printf под эту цель, вынесенный в отдельный файл stdio/printf.c
Вот только при линковке выдаётся следующая ругань:
compile:
[mkdir] Created dir: C:\CoIDE\workspace\print\Debug\bin
[mkdir] Created dir: C:\CoIDE\workspace\print\Debug\obj
[cc] 9 total files to be compiled.
[cc] arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Wall -ffunction-sections -O0 -g -c -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -D__ASSEMBLY__ -DSTM32F103ZE -IC:\CoIDE\workspace\print -IC:\CoIDE\workspace\print\stm_lib -IC:\CoIDE\workspace\print\stm_lib\inc -IC:\CoIDE\workspace\print\cmsis_boot -IC:\CoIDE\workspace\print\cmsis C:\CoIDE\workspace\print\cmsis\core_cm3.c C:\CoIDE\workspace\print\cmsis_boot\system_stm32f10x.c C:\CoIDE\workspace\print\cmsis_boot\startup\startup_stm32f10x_hd.c C:\CoIDE\workspace\print\stm_lib\src\stm32f10x_gpio.c C:\CoIDE\workspace\print\main.c C:\CoIDE\workspace\print\stdio\printf.c C:\CoIDE\workspace\print\stm_lib\src\stm32f10x_rcc.c C:\CoIDE\workspace\print\stm_lib\src\stm32f10x_usart.c C:\CoIDE\workspace\print\syscalls\syscalls.c
[cc] Starting link
[cc] arm-none-eabi-gcc -O0 -nostartfiles -Wl,-Map=print.map -mcpu=cortex-m3 -mthumb -LC:\CoIDE\workspace\print -Wl,--gc-sections -Wl,-TC:\CoIDE\workspace\print\link.ld -g -o print.elf ..\obj\core_cm3.o ..\obj\system_stm32f10x.o ..\obj\startup_stm32f10x_hd.o ..\obj\stm32f10x_gpio.o ..\obj\main.o ..\obj\printf.o ..\obj\stm32f10x_rcc.o ..\obj\stm32f10x_usart.o ..\obj\syscalls.o
[cc] c:/coide/arm-2011.03-coocox/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-impure.o):(.data+0x0): multiple definition of `_impure_ptr'
[cc] collect2: ld returned 1 exit status
[cc] ..\obj\printf.o:(.data+0xf0): first defined here
BUILD FAILED
Total time: 3 seconds
Встаёт вопрос - как адекватно подменить системный printf на свой?
Если нужно дополнительно запостить комманды компилятора/линкера - напишите.
Заранее спасибо.