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.

F29H850TU: Creating periodic Tasks

Part Number: F29H850TU
Other Parts Discussed in Thread: SYSCONFIG, F29-SDK

Iam currently working on creating a periodic task using DPL over freeRTOS.

  1. I can run a task without any delay like blink a LED without any issues.
  2. When i add the vTaskDelayUntil API the task hit vApplicationStackOverFlowHook due to task stack overflow.
  3. When i increased the stack size from the MCU stuck in persistent fault state.image.png
  4. While debugging the issue, the code reach this point and when i tried to step into it it happend that free running stuck Screenshot 2025-12-15 144325.png
  5. I tried the same code on core 3 and it works fine!

What could be the problem is?

  • Hi Mahmoud,

    I can investigate this further and get back to you by early next week. In the meantime, can you share your task setup, and any interrupts you may be using?

    The issue with the "persistent fault state" is mostly due to the CPU being in the ISR when trying to reload the program. You can try resetting the board before flashing again.

    Regards,

    Arnav

  • Hi Menon,

    Task setup

    Interrupt used: (IPC- RTDMA - ADC - Watchdog).

    I was debugging again with disabling the stack overflow checking and the code reached this point and stuck there.


    what do you think about that?

  • Hi Mahmoud,

    I have looked into this, and there is no issue with using task delays inside tasks with/without DPL. This looks like some sort of stack overflow. Apart from the FreeRTOS stacks, can you also check if the system stack (symbol: __stack) is overflowing, and increase it if required. You can also check if your application code is making use of any RTOS elements before the scheduler has been initialized & started.

    Were you able to reload the program correctly after resetting? This is an issue when loading a program with the CPU in an interrupt context, and not specific to FreeRTOS. If you find that the program reaches the NMI ISR, you can also check the error aggregator status (Scripts > Error Handling > Error Aggregator > Check Status)

    Regards,

    Arnav

  • Hi  ,

    The MCU operates correctly after adjusting the stack size via SysConfig. Could you please share any documentation related to TI DPL and FreeRTOS for reference?

  • That's good to hear. There is no documentation for DPL specific to the F29-SDK yet. Example documentation for DPL and FreeRTOS SDK demos is present here, and the official FreeRTOS documentation can be referred to here.

    Regards,
    Arnav

  • Thank you for the clarification, i have one last question, what is the DPL usage? since sysconfig already support FreeRTOS. and DPL support only FreeRTOS and RTOS (bare metal)? what is the benefits?

  • Using DPL APIs allows your application code to be agnostic of the underlying architecture and OS, so you can quickly interchange between using NO-RTOS or an OS like FreeRTOS, without any extensive changes to your codebase. This simplifies code portability & reuse. You can freely choose the underlying OS to fit your application

    Regards,

    Arnav