This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RM42 + FreeRTOS = CCS error

Other Parts Discussed in Thread: HALCOGEN

Hello!

I try to use FreeRTOS in CCS. As consulted in manual I'm enable gcc compiler. While I use only RTOS definitions project can be built. But when I start to use RTOS functions the compiler returns following errors:

#10010 errors encountered during linking; "freeRTOS.out" not built freeRTOS C/C++ Problem

#10234-D unresolved symbols remain freeRTOS C/C++ Problem

unresolved symbol xTimerCreate, first referenced in ./source/sys_main.obj freeRTOS C/C++ Problem

unresolved symbol xTimerGenericCommand, first referenced in ./source/sys_main.obj freeRTOS C/C++ Problem

What am I doing wrong?

  • I'm forwarding your query to our Halcogen team, who should be able to help you better.
  • Dmytro,

    I assume you are using xtimer in your application. Did you enable in Halcogen OS tab the check box for "Use Timers"?

    Please let me know, and if you can, please share your project so I can have a look.

  • Hello,

    Yes, Timers is enabled in HALCOGEN.

    The project code without specific implementation of the interaction with external devices loocks like

    #include "FreeRTOS.h"

    #include "os_task.h"
    #include "os_timer.h"
    #include "comdefs.h" //commands definitions

    #include "sci.h"
    #include "adc.h"
    #include "stdlib.h"

    xTimerHandle xTimer; //Timer handles array
    unsigned int Freq = 10 / portTICK_PERIOD_MS; //Timer 10ms (100Hz)
    unsigned int isStopScan = 0; //Stop Scan

    #include "sys_common.h"

    void vTimerSendToSPI(xTimerHandle pxTimer);

    void wait(uint32 time);

    void main(void)
    {

    xTimer = xTimerCreate("vTimerSendToSPI", (10 / portTICK_PERIOD_MS), pdTRUE, (void *) 1, vTimerSendToSPI);

    if( xTimer == NULL )
    {
    /*catch*/
    }
    else
    {
    if( xTimerStart( xTimer, 0 ) != pdPASS )
    {
    /*reset*/
    }
    }
    vTaskStartScheduler();


    while (1)

    {

    /* Read ADC*/

    }

    }

    void vTimerSendToSPI(xTimerHandle pxTimer)
    {

    if(isStopScan)
    {
    xTimerStop(pxTimer, 0);
    }
    }

    void wait(uint32 time)
    {
    while(time){time--;};
    }

  • Dmytro,

    I've created a basic Halcogen project for RM42, enable Timer and incorporate your code. I'm able to compile and link.
    Here is an extract of the map file.

    000015d8  xTaskRemoveFromUnorderedEventList   
    00000d94  xTaskResumeAll                      
    00000bd4  xTaskResumeFromISR                  
    08003030  xTimer                              
    00002fb8  xTimerCreate                        
    00002f3c  xTimerCreateTimerTask               
    0000307c  xTimerGenericCommand                
    000037c0  xTimerIsTimerActive                 

    Here is this project just for information. 5417.FreeRtos_Blinky.zip

  • Dmytro,

    What is the status on this thread? Have you found a solution?
    If yes, could you close this thread?
  • Thanks to all for answers.

    I'm still can't compile the project under CCS. I'm quess that the problem with compiller or freertos ports. As soon as possible I'll write about solution or ... not.