Порт Contiki не будет переопределять printf
Я пытаюсь создать порт contiki для моей пользовательской платформы, используя процессор stm32l1. Однако, когда я пытаюсь переопределить функцию printf по умолчанию из arm-none-eabi-gcc
newlib это не позволит мне.
Я попытался создать hedaer и исходные файлы, добавить их для сборки, а затем либо создать в них функции 'printf' и 'sprintf', либо назвать их чем-то другим, а затем попытаться использовать #define printf my_printf
,
Я также следовал другим советам, которые я нашел в Интернете, которые говорят мне создать файл-заглушку newlib, обеспечивающий различные функции _sbrk , _write , _read...
и так далее.
Однако каждый раз, когда я пытаюсь собрать свою программу с помощью любой команды printf, компоновщик жалуется на все файлы-заглушки newlib с неопределенными ссылками.
undefined reference to _sbrk
Как я могу заставить систему сборки contiki переопределить стандартную функцию printf?
На Ubuntu14:10 с gcc 4.93.
CC targets/r1501/printf/printf-stdarg.c
CC contiki/../arm/stm32l152/./syscalls.c
CC ....
CC contiki/core/net/mac/cxmac/cxmac.c
AR contiki-r1501.a
CC project.c
LD project.r1501
/usr/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-sbrkr.o): In function
_sbrk_r ': sbrkr.c:(. text._sbrk_r + 0xc): неопределенная ссылка на _sbrk'
/usr/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-writer.o): In function
_write_r':
writer.c:(.text._write_r+0x10): неопределенная ссылка на _write'
/usr/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-closer.o): In function
_close_r ':
.... Больше ошибок из libg.a `
В файле syscalls.c указаны все эти неопределенные ссылки. и printf и sprintf определены в printf-sdarg.c
рука-ни-EABI-GCC -DCONTIKI=1 -DCONTIKI_TARGET_R1501=1 -DNETSTACK_CONF_WITH_IPV6=1 -DUIP_CONF_IPV6_RPL=1 -DAUTOSTART_ENABLE -DHSE_VALUE=8000000 -DF_CPU=32000000 -DPLL_SOURCE_HSE -D'GIT_DESC="v0.1-23-g0c3a4d8-грязная "' -specs=nosys.specs -I. -Icontiki/core -Icontiki/../arm/stm32l152 -Icontiki/../arm/stm32l152/loader -Icontiki/../arm/stm32l152/lib/STM32L1xx_StdPeriph_Driver/inc -Icontiki/../arm/stm32l152/ CMSIS/ Включить -Icontiki/../arm/stm32l152 -Icontiki/platform/r1501 -DWITH_ASCII -DMCK=32000000 -mlittle-endian -mthumb -mcpu=cortex-m3 -msoft-float -Wno-строго-псевдонимы -DRUN_AS_SYSTST DROM_RUN -std=c99 -g -lc -larchive -Lcontiki/../arm/stm32l152 -fdiagnostics-color= всегда -O0 -I. -Itargets/r1501/. -Itargets/r1501/dev -Itargets/r1501/rf230bb -Itargets/r1501/printf -Icontiki/../arm/stm32l152/. -Icontiki/../arm/stm32l152/lib/STM32L1xx_StdPeriph_Driver/src -Icontiki/core/dev -Icontiki/core/lib -Icontiki/core/net -Icontiki/core/net/llsec -Icontiki/core/net/mac - - Иконки / ядро / сеть / иней -Иконтики / ядро / net / rpl -Иконтики / ядро /sys -Иконтики / core / cfs -Иконтики / core / ctk -Иконтики / core / lib / ctk -Icontiki / core / loader -Icontiki / ядро /. -Icontiki/apps/ping6 -Icontiki/core/sys -Icontiki/core/dev -Icontiki/core/lib -Icontiki/core/net/ipv6 -Иконтики / core / net / ip -Иконтики /core/net/rpl -Icontiki/core/net/mac -Icontiki/core/net/llsec -Icontiki/core/net/mac/sicslowmac -Icontiki/core/net/rime -Icontiki/core/net -Icontiki/core/net/mac/contikimac -Icontiki/core/net/mac/cxmac -Itargets/r1501/ -Icontiki -DCONTIKI_VERSION_STRING=\"Contiki-2.6-2077-ga79edc6\" -DAUTOSTART_ENABLE -c project.c -o project.co arm-none-eabi-gcc -L contiki/../arm/stm32l152 -T contiki/../arm/stm32l152/stm32l1xx.ld -g -nostartfiles -mthumb -fdiagnostics-color= всегда project.co obj_r1501/contiki-main.o \ contiki-r1501.a -o project.r1501 /usr/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/lib/thumb/libg.a(lib_a-sbrkr.o): в функции `_sbrk_r':