Hi,
i am using the Arm RL-RTX. Creating a task with os_tsk_create(...) works correctly in C, but calling the same function from C++ (.cpp file) gives me the following Error message: error: #167: argument of type "void (*)(int *)" is incompatible with parameter of type "void (*)(void *) C"
Here is the example code.
#include <RTL.h> __task void TaskWithParams (int *argv); void Test(void) { int param[2] = {111, 222}; os_tsk_create_ex (TaskWithParams, 2, ¶m[2]); }
Thanks in advance!
C++ is more "strongly typed" than C.
If you want to remove the error, type cast the entry point.
os_tsk_create_ex ( ((void(*)(void *)) TaskWithParams, 2, ¶m[2]);
Thank you very much, Robert. it works.
os_tsk_create_ex ( (void(*)(void *)) TaskWithParamsX, 2, &ii );