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.

TMS570LC4357 FreeRTOS SWI interrupt

Other Parts Discussed in Thread: HALCOGEN, TMS570LC4357

Hi,

I'm currently trying to port the FreeRTOS on the TMS570LC4317 Launchpad board. I have used HALCoGEN generated files. I feel that the use of SWI interrupts is unclear to me.

The SWI interrupt- vPortYeildProcessor is directly mapped to the interrupt vector for software interrupt. Look at the image below taken from the HL_sys_intvecs.asm file

Now the FreeRTOS code has some functions mapped to the Software interrupt vector as well using a SWI_ALIAS pragma of the TI compiler. Look at the code provided in the os_portmacro.h

1) It seems that whenever there is a call to this particular function it gets mapped to the vPortYieldProcessor ISR instead of the vPortEnterCritical ISR. I feel that the Software Interrupt shouldn't be directly mapped to the vPortYeildProcessor ISR if  SWI_ALIAS is to be used. Please advise on this.

2) Additionally the vPortEnterCritical function is declared but there is no corresponding function written in any of the files generated by HalCoGEN.

3) I was also wondering if you guys have a working port of FreeRTOS on the TMS570LC4357.

Regards,

Umang

  • My bad. I found the problem.
  • Do not answer the first two questions. Since I figured out how to use the SWI interrupt properly from one of the older forum posts.

    I would still like an answer to the third question.

    3) I was also wondering if you guys have a working port of FreeRTOS on the TMS570LC4357.
  • Umang,

    I am afraid I do not understand the question. You can use the examples from HALCoGen to create a CCS project using FreeRTOS for LC4357. Within HALCoGen, click on Help --> Help Topics and then expand the "Examples" section. You will see a couple of examples that you can use as reference.

    Regards,
    Sunil
  • I am getting an abort exception using the FreeRTOS code given by HalCoGEN. I have mapped the Software interrupt and the RTI Compare interrupt. I'm not sure where I m going wrong. I have checked the LR register for the Abort mode registers which point to 0xEDD4. It seems like the error occurs while accessing the vList. The stack pointer for the user mode of ARM seems fine which generated the exception.

  • A data abort exception is the CPU's response to an error it received on a data access. You can identify the cause of the data abort and the address that caused the data abort by reading the Data Fault Status Register and Data Fault Address Register in the CPU. That should give you a better indication of what the error was due to.