FreeRTOS MBEDlpc1768 Keil offline Compiler

sbir85 wrote on Wednesday, September 28, 2011:

I implement the FreeRTOS in my uVision project, but I got a Linker problem.
I’m not sure what’s the problem:

Error: L6218E: Undefined symbol vTaskStartScheduler
(referred from main.o).

Do you have a sample of FreeRTOS for Keil for LPC1768 or LPC17xx ?
in the Sample list is just a sample for Eclipse.

Thanks for your help

best regards

rtel wrote on Wednesday, September 28, 2011:

vTaskStartScheduler() is defined in tasks.c, so the first thing to do is ensure that tasks.c is included in the build.  I assume it is, so the next question would be, how is it being build?  The MBED code is C++, which means, and to call C code you must do two things - first ensure that tasks.c is being built as C and not C++, and second ensure that the function is declared extern “C”.  The FreeRTOS header files take care of the second part of that already.

You could alternatively build the FreeRTOS code as C++, but that would involve removing some of the data hiding it employs (i.e. changing the code).  There are lots of threads about on this topic, and it is a bit outside of my core knowledge.