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.

TMS320F28379D: FreeRTOS sysconfig demo report error after configuring timer

Part Number: TMS320F28379D
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE

Hi team,

I ask this for our customer. Now customer is checking F28388 FreeRTOS demo and plan to use it on F28379D. Now they have some problems. 

They use freertos_ex2_c28x_led_blinky_syscfg demo, and add configuration as follows.

Then build this project and CCS will report error that error #10056: symbol "myTimer0Handle" redefined: first defined in "./freertos_ex2_c28x_led_blinky_syscfg.obj"; redefined in "./syscfg/c2000_freertos.obj"

I can reproduce the problem on my side. And I checked that there is no definition of "myTimer0Handle" in freertos_ex2_c28x_led_blinky_syscfg.c. Can you help to check this configuration?

And here are some other questions about FreeRTOS.

1. Why the Task cannot exit or return in FreeRTOS.

2. How to set a fixed frequency to execute task without using software timer (execute a low-priority task in 3.25ms, and execute a high-priority task in 12.25ms)

Thanks in advance!

 

Best Regards,

Julia Li

  • Julia 

    Will forward your query to a Free RTOS expert.

    Best Regards

    Siddharth

  • Hi Julia,

    error #10056: symbol "myTimer0Handle" redefined: first defined in "./freertos_ex2_c28x_led_blinky_syscfg.obj"; redefined in "./syscfg/c2000_freertos.obj"

    This is a bug in the FreeRTOS Sysconfig generated code. We have fixed it internally. Please use the attached file as a workaround. This will be rolled out in the next C2000ware release.

     c2000_freertos.h.xdt

    The file is present in c2000ware\\kernel\.meta\freertos_tool\templates

    1. Why the Task cannot exit or return in FreeRTOS.

    Usually FreeRTOS tasks are implemented as infinite loops, since they are intended to run the same routine in a repeated manner. You may call TaskDelete or TaskSuspend functions to stop executing the task.

    2. How to set a fixed frequency to execute task without using software timer (execute a low-priority task in 3.25ms, and execute a high-priority task in 12.25ms)

    You can use TaskDelay or TaskDelayUntil in your task to insert fixed time delays within your task. During the delay, scheduler will switch to other tasks.

    From the C2000ware example -

    void LED_TaskBlue(void * pvParameters)
    {
        for(;;)
        {
            ledToggle((uint32_t)pvParameters);
            vTaskDelay(250 / portTICK_PERIOD_MS); -> Inserts a 250ms delay
        }
    }
    

    Regards,

    Veena