Ktoś może się podzielić opinią jak zacząć programować STMy w C++?
Próbuję nieudolnie od paru godzin zlinkować w Eclipse z użyciem CodeSourcery G++ (kompiluje się wszystko bez błędów), STM32F0, w main tylko miganie diodami. Wszystkie biblioteki ST mają dyrektywy "extern C", więc to chyba nie problem łączenia C i C++.
Wywala mi takie błędy - nie widzi jakichś funkcji standardowych:
Kod:
cs-make all
Building target: STM32F0_Template_CPP
Invoking: Cross G++ Linker
arm-none-eabi-g++ -T "D:/src_new/workspace_stm32/STM32F0_Template_CPP/stm32_flash.ld" -mthumb -mcpu=cortex-m0 -Wl,--gc-sections -o "STM32F0_Template_CPP" ./startup/startup_stm32f0xx.o ./src/main.o ./src/stm32f0xx_it.o ./src/system_stm32f0xx.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_adc.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_cec.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_comp.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_crc.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_dac.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_dbgmcu.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_dma.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_exti.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_flash.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_gpio.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_i2c.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_iwdg.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_misc.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_pwr.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_rcc.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_rtc.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_spi.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_syscfg.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_tim.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_usart.o ./STM32F0xx_StdPeriph_Driver/stm32f0xx_wwdg.o
c:/users/mik/mentorgraphics/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-abort.o): In function `abort':
abort.c:(.text+0xa): undefined reference to `_exit'
c:/users/mik/mentorgraphics/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signalr.o): In function `_kill_r':
signalr.c:(.text+0xe): undefined reference to `_kill'
c:/users/mik/mentorgraphics/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-signalr.o): In function `_getpid_r':
signalr.c:(.text+0x2a): undefined reference to `_getpid'
c:/users/mik/mentorgraphics/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8.1/../../../../arm-none-eabi/lib/armv6-m\libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text+0xc): undefined reference to `_sbrk'
collect2.exe: error: ld returned 1 exit status
cs-make: *** [STM32F0_Template_CPP] Error 1