Help me to build FreeRTOS using g++

HI. I very need your help ) I want to use c++ with FreeRTOS. I read that I can build FreeRTOS with g++ and use c++. So I downloaded FreeRTOS demo (CORTEX_LM3Sxxxx_Eclipse), and change "arm-none-eabi-gcc" to "arm-none-eabi-g++"…. There was many errors, so I have to add some typecasts and to remove data hiding…. And than he told me this: ……. ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\) -D sprintf=usprintf -D snprintf=usnprintf -D printf=uipprintf -I ../../Common/ethernet/uIP/uip-1.0/uip -I ./webserver -ffunction-sections -fdata-sections -I ../../Common/drivers/LuminaryMicro main.o timertest.o ./ParTest/ParTest.o rit128x96x4.o osram128x64x4.o formike128x128x16.o ../../Common/drivers/LuminaryMicro/ustdlib.o ../../Common/Minimal/BlockQ.o ../../Common/Minimal/blocktim.o ../../Common/Minimal/death.o ../../Common/Minimal/integer.o ../../Common/Minimal/PollQ.o ../../Common/Minimal/semtest.o ../../Common/Minimal/GenQTest.o ../../Common/Minimal/QPeek.o ../../Common/Minimal/recmutex.o ../../Common/Minimal/IntQueue.o ./IntQueueTimer.o ./webserver/uIP_Task.o ./webserver/emac.o ./webserver/httpd.o ./webserver/httpd-cgi.o ./webserver/httpd-fs.o ./webserver/http-strings.o ../../Common/ethernet/uIP/uip-1.0/uip/uip_arp.o ../../Common/ethernet/uIP/uip-1.0/uip/psock.o ../../Common/ethernet/uIP/uip-1.0/uip/timer.o ../../Common/ethernet/uIP/uip-1.0/uip/uip.o ../../../Source/list.o ../../../Source/queue.o ../../../Source/tasks.o ../../../Source/portable/GCC/ARM_CM3/port.o ../../../Source/portable/MemMang/heap_2.o startup.o ../../Common/drivers/LuminaryMicro/arm-none-eabi-gcc/libdriver.a ../../Common/drivers/LuminaryMicro/arm-none-eabi-gcc/libgr.a -nostartfiles -Xlinker -oRTOSDemo.axf -Xlinker -M -Xlinker -Map=rtosdemo.map -Xlinker –no-gc-sections d:/arm/bin/../lib/gcc/arm-none-eabi/4.2.3/../../../../arm-none-eabi/bin/ld.exe: section .ARM.exidx.text._Z29vApplicationStackOverflowHookPP19tskTaskControlBlockPa [00016184 -> 0001618b] overlaps section .data [00016184 -> 000167d7] d:/arm/bin/../lib/gcc/arm-none-eabi/4.2.3/../../../../arm-none-eabi/bin/ld.exe: section .bss [000167d8 -> 000209c3] overlaps section .ARM.exidx.text._Z10clock_initv [000167d4 -> 000167db] d:/arm/bin/../lib/gcc/arm-none-eabi/4.2.3/../../../../arm-none-eabi/bin/ld.exe: section .ARM.extab.text._Z28vApplicationProcessFormInputPcl [000167dc -> 000167e7] overlaps section .bss [000167d8 -> 000209c3] main.o: In function `vOLEDTask’: C:Documents and SettingsLeonidosDesktopFreeRTOSDemoCORTEX_LM3Sxxxx_EclipseRTOSDemo/main.c:432: undefined reference to `usprintf’ ./webserver/httpd.o: In function `handle_input’: C:Documents and SettingsLeonidosDesktopFreeRTOSDemoCORTEX_LM3Sxxxx_EclipseRTOSDemo/webserver/httpd.c:256: undefined reference to `http_get’ C:Documents and SettingsLeonidosDesktopFreeRTOSDemoCORTEX_LM3Sxxxx_EclipseRTOSDemo/webserver/httpd.c:256: undefined reference to `http_get’ C:Documents and SettingsLeonidosDesktopFreeRTOSDemoCORTEX_LM3Sxxxx_EclipseRTOSDemo/webserver/httpd.c:266: undefined reference to `http_index_html’ C:Documents and SettingsLeonidosDesktopFreeRTOSDemoCORTEX_LM3Sxxxx_EclipseRTOSDemo/webserver/httpd.c:266: undefined reference to `http_index_html’ C:Documents and SettingsLeonidosDesktopFreeRTOSDemoCORTEX_LM3Sxxxx_EclipseRTOSDemo/webserver/httpd.c:287: undefined reference to `http_referer’ C:Documents and SettingsLeonidosDesktopFreeRTOSDemoCORTEX_LM3Sxxxx_EclipseRTOSDemo/webserver/httpd.c:287: undefined reference to `http_referer’ ./webserver/httpd.o: In function `send_headers’: C:Documents and SettingsLeonidosDesktopFreeRTOSDemoCORTEX_LM3Sxxxx_EclipseRTOSDemo/webserver/httpd.c:198: undefined reference to `http_content_type_binary’ C:Documents and SettingsLeonidosDesktopFreeRTOSDemoCORTEX_LM3Sxxxx_EclipseRTOSDemo/webserver/httpd.c:198: undefined reference to `http_content_type_binary’ C:Documents and SettingsLeonidosDesktopFreeRTOSDemoCORTEX_LM3Sxxxx_EclipseRTOSDemo/webserver/httpd.c:198: undefined reference to `http_content_type_binary’ C:Documents and SettingsLeonidosDesktopFreeRTOSDemoCORTEX_LM3Sxxxx_EclipseRTOSDemo/webserver/httpd.c:198: undefined reference to `http_content_type_binary’ C:Documents and SettingsLeonidosDesktopFreeRTOSDemoCORTEX_LM3Sxxxx_EclipseRTOSDemo/webserver/httpd.c:199: undefined reference to `http_html’ C:Documents and SettingsLeonidosDesktopFreeRTOSDemoCORTEX_LM3Sxxxx_EclipseRTOSDemo/webserver/httpd.c:199: undefined reference to `http_html’ C:Documents and SettingsLeonidosDesktopFreeRTOSDemoCORTEX_LM3Sxxxx_EclipseRTOSDemo/webserver/httpd.c:199: undefined reference to `http_shtml’ …… Please give me some advice to undestang what is going on there. ) Thanks.

Help me to build FreeRTOS using g++

I’ve read that I can compile .c files as C and .cpp files as C++… but I cant write such make file… I found some, but it isn’t work… It would be wonderful if someone give us instructions how to use C++ with FreeRTOS. Maybe some one have make file I need. I ready to donate some money to person who help me to solve my problems. Thanks for your help.

Help me to build FreeRTOS using g++

I’ve been using FreeRTOS with g++ on LM3Sxxxx processors for a while now.  You shouldn’t try to compile the FreeRTOS base files with c++; it’s probably too much work, and no benefit.  My Makefiles use gcc for the FreeRTOS files and g++ for my own code.  Link with g++ and you should be good to go.  Here is my Makefile for the USB device I’ve been working on.  It is more complicated than you really need, because I use the same code & Makefiles to build binaries for LPC2K and GameBoy SP/DS machines (the USB code doesn’t work on the GameBoy, of course). I have a clean version of FreeRTOS installed in a directory tree outside my own code, and I use VPATH to help make find the files.  (I think I may have had to copy/modify one or two FreeRTOS files to make all this work, but it’s worth the small amount of hassle for the ability to swap in a new version of FreeRTOS without having to separate out my code or figure out what changes I made.) ## ## Makefile ##  ## Made by dave m.  <xxx@yyy.com> ## ## Started on  Sat Jan 19 18:02:01 2008 dave m. ## Last update Sat Jan 19 18:02:01 2008 dave m. ##     CPU_FAMILY        =    LM3Sx #    CPU_FAMILY        =    LPC2k #    CPU_FAMILY        =    GBA         TARGET        =    USBTest         SOURCES        =    main.cc                         mydevice.cc                         util.cc                         usb.cc                         usb-descriptors.cc                         usb-endpoints.cc                         usb-interface.cc                         usb-configuration.cc                         usb-device.cc                         usb-string.cc                         usb-ep0.cc                         usb-debug.cc                         serial_io.cc                         list.c                         queue.c                         tasks.c                         port.c                         heap_1.c     LOADLIBES        =    -lEMF                         -lc                         -lgcc ############################################################################# ############################################################################# ############################################################################# ifeq ($(CPU_FAMILY),LM3Sx)         CPUFLAGS    =    -mcpu=cortex-m3 -mthumb         DEFINES        +=    -DGCC_ARMCM3 FreeRTOS_PLATFORM    =    GCC/ARM_CM3 endif ifeq ($(CPU_FAMILY),LPC2k)         CPUFLAGS    =    -mcpu=arm7tdmi -march=armv4t -mthumb-interwork #        CPUFLAGS    =    -mcpu=arm7tdmi -march=armv4t -mthumb -mthumb-interwork         DEFINES        +=    -DGCC_LPC2k FreeRTOS_PLATFORM    =    GCC/ARM7_LPC2k endif ifeq ($(CPU_FAMILY),GBA)         CPUFLAGS    =    -mcpu=arm7tdmi -march=armv4t -mthumb-interwork #        CPUFLAGS    =    -mcpu=arm7tdmi -march=armv4t -mthumb -mthumb-interwork         DEFINES        +=    -DGCC_GBA FreeRTOS_PLATFORM    =    GCC/ARM7_GBA endif             VPATH    =    ../../../FreeRTOS/Source                         ../../../FreeRTOS/Source/portable/MemMang                         ../../../FreeRTOS/Source/portable/$(FreeRTOS_PLATFORM)             MLDIR    =    $(shell $(CC) $(CPUFLAGS) -print-multi-directory)         LIBDIRS        =    -L../../lib/$(MLDIR) ifneq (,$(findstring -mthumb,$(filter-out -mthumb-interwork,$(CPUFLAGS))))         DEFINES        +=    -DTHUMB endif         INCLUDES    +=    -I.                         -I../../include                         -I../../include/$(CPU_FAMILY)                         -I../../Source/include                         -I../../../Luminary         CPPFLAGS    ?=    $(DEFINES) $(INCLUDES)         CDEBUGFLAGS    ?=    -O3 -g -Wall                         –no-exceptions                         -mfloat-abi=soft -mfpu=vfp                         $(CPUFLAGS)         CFLAGS        +=    $(CDEBUGFLAGS)         CXXFLAGS    +=    $(CDEBUGFLAGS)                         –no-rtti                         -fno-threadsafe-statics         LDFLAGS        =    -Wl,-N,-M,–demangle,–sort-common,-u,__boot__                         -Wl,-T,../../etc/$(CPU_FAMILY)-ld.cmd                         -Wl,–defsym -Wl,__cxa_pure_virtual=0                         -nostdlib                         -mfloat-abi=soft -mfpu=vfp                         $(CPUFLAGS)                         $(LIBDIRS)         TOOLPREFIX    =    arm-elf-             CC        =    $(TOOLPREFIX)gcc             CXX        =    $(TOOLPREFIX)g++             LD        =    $(TOOLPREFIX)ld             AS        =    $(TOOLPREFIX)as             AR        =    $(TOOLPREFIX)ar         OBJCOPY        =    $(TOOLPREFIX)objcopy         OBJDUMP        =    $(TOOLPREFIX)objdump             sOBJ    =    $(SOURCES:.s=.o)             cOBJ    =    $(sOBJ:.c=.o)             OBJ        =    $(cOBJ:.cc=.o) all:    $(TARGET).bin $(TARGET):    $(OBJ)     $(CXX) $(LDFLAGS) -o $@ $^ $(LOADLIBES) > $@.map     $(OBJDUMP) –disassemble-all –demangle $@ > $@.lst clean:     $(RM) $(TARGET) $(TARGET).hex $(TARGET).bin $(TARGET).map $(TARGET).lst         $(OBJ) *.d %.hex:    %     $(OBJCOPY) -S -O ihex $< $@ %.bin:    %     $(OBJCOPY) -S -O binary $< $@