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.

TMS570LS1224: Interrupt is not working when working with free RTOS and bootloader.

Part Number: TMS570LS1224

Tool/software:

Hi All,

We are working with TMS570LS1224 Board for Free RTOS in application and bootloader without RTOS.

So we are able to jump to application using bootloader and able to run the application, but the issue is there no interrupt invoking in the application after changing in intvect.asm file of Bootloader.

Find the below snippet for the same.

And in the application intvect.asm file 

In this case our application is at 0x20000 flash memory location and as per the thread we are referring from the TI forum is 

TMS570LS3137: Bootloader FreeRTOS program - Arm-based microcontrollers forum - Arm-based microcontrollers - TI E2E support forums

So using this are able to jump to application but there is not interrupt are invoking by using this,

Please check if there are missing out something.

Thanks in advance

Shriram

  • Hi Shriram,

    Exactly what changes you made, can you please share the before and after modification files.

    I want to tell you one thing that is, actually we should not add new branch instructions in intvects.asm file.

    This is because:

    As mentioned here, if an IRQ interrupt received then CPU will execute the instruction at 0x18 address and for FIQ interrupt it will execute the 0x1C instruction.

    So, from there it will subtract the 0x1B0 to the PC value and jump to the IRQ Vector register and FIQ Vector registers. 

    These registers consist of the address of the IRQ handler to be executed, so from these interrupts the CPU will go the IRQ or FIQ handler based on the interrupt.

    So, these means we should not add new branches to the intvecs.asm file because these will lead to the wrong offsets and lead to the pointing of wrong registers. Please careful about modifications you are doing, it should not affect the offsets.

    --
    Thanks & regards,
    Jagadish.

  • Hello jagadish,

    Thank you for quick response 

    Please find the below snippet before changes in bootloader intvect.asm file

    By using this if we flash the bootloader and RTOS based application 

    then it will stuck at 0x8 address from the application where it creates the task 

    but if we change this address to earlier snippet which i have shared previously then it will work fine but interrupt is not generation

    and please find the below intvect.asm table for the RTOS based application.

    Without Free RTOS it will works fine without any issues.

    Thanks

    Shriram

  • Hi Shriram,

    By the way, which interrupt is not working one?

  • Hi Jagadish,

    In application we are using interrupt for timer compare and CAN Rx interrupt,

    Any of the interrupt is not working.

    Regards,

    Shriram

  • Hi Shriram

    I feel these modifications in Bootloader linker cmd should not stop the interrupts.

    Because, even after these medications still the IRQ and FIQ addresses are at same offset 0x18 and 0x1C.

    So, is it possible for you to share your not working bootloader or application codes? if not possible then we will at least set some meeting to resolve this issue.

    I will be available from 10AM to 8PM IST, you can setup one meeting on Monday based on your availability.

    --
    Thanks & regards,
    Jagadish.

  • Hi Jagadish,

    Are you available today? Can we have a short discussion over teams? It will be very helpful.

    Thanks & Regards,

    Shriram

  • Hi Shriram,

    Yes, i am available today.

    Let's schedule a meeting at today evening.

    --

    Thanks & regards,
    Jagadish.