SourceForge has been redesigned. Learn more.

Incompatible types when compiling for PIC18F

  • jezule

    jezule - 2006-12-28

    Hi verybody,
    I'm trying to compile FreeRTOS for PIC18F devices using SDCC but with no success. I'm testing a simple example I got from somewhere. The code mainly does nothig but when compiling I get this error:

    main.c:43: error 78: incompatible types
    from type 'void generic* '
    to type 'void generic* generic* '

    The error refers to the first parameter in this function:

    xTaskCreate( vTestTask, "Hello", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY + 1, NULL );

    This function is defined:

    signed portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode, const signed portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask ); // Defined in task.h

    and pdTASK_CODE is defined as: typedef void (*pdTASK_CODE)( void * ); // Defined in projdefs.h

    My task is defined as:

    static void vTestTask( void *pvParameters ); // Dummy task which does nothing.

    What is wrong here? Why are they incompatible?

    If I make this in the main code before calling the funcion to create a task:
    pdTASK_CODE ptr;
    ptr = vTestTask;

    I get no errors at that point, but if I use ptr as first parameter to the function I get the same error as before. I do not understand anything...

    Thanks in advance

    • jezule

      jezule - 2006-12-28

      Problem soved. The last parameter of the function cannot be NULL... I've spent a lot of time trying to solve a problem that did not exist at all...


Log in to post a comment.