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.

System Software Interrupt

This is the first time I use Hercules µC. My job is to migrate a software for Infineon µC to Hercules-TMS570LS31xx µC. The old application uses 8 different software interrupts. These interrupts are activated by setting the interrupt flags of unused peripherals. As far as I know now, this is not possible with Hercules µC. So my question is, how can I generate 8 different interrupts from software using a Hercules µC. It must be possible to activate the 8 software-interrupts at the same time.

Can you help me with a solution?

Thanks in advance.

  • A few options exist, but I am not sure there is a way to trigger eight interrupts at exactly the same time.  The system module of the device supports the generation of four software interrupts using the SSIR1, SSIR2, SSIR3, SSIR4 registers.  In addition the ARM core has a built in software interrupt which will generate a CPU abort (SWI/SVC).  

    I hope that with these capabilities in addition to using unused peripherals that you can port the existing scheme.

    Regards,

    Karl 

  • Hi Karl,

    Old thread but simple question. I don't seem to be able to find any of this info in the TRM.

    If I use SSIR4 for two SW interrupts triggered with different labels in the SSKEY4/SSIDATA, can the SSI module put the second SW request (different label) in queue while serving the first one?

    What if the second request is from the same source with the same SSIKEY4?

    Thanks!

  • Hi Chuck,

    I'll forward this on to the Hercules support team to see what they can find.

    Regards,
    Karl

  • Hi Chuck,

    I spoke with the experts and they do not believe what you are attempting would be possible.  All four SSIR interrupts are combined into a single request line to the VIM.  Each SSIR has its own status flag that needs to be cleared before you can use the same SSIR for a different label written into the SSDATA field.

    Best Regards,

    Karl

  • Thanks Karl,

    Even though there is only one interrupt line to the VIM, it is still possible to activate all 4 SSI at the same time and the execution will follow the pre-established priority order for the SSI module. Am I correct to assume that?

    Regards.

  • Hi Chuck,

      You can activate all 4 SSI at the same time. There is a SSIVEC register that will show the highest pending SSI interrupt. Please see the SSIVEC register at 0xFFFFFFF4. Simiar to the vector register in other periphrals, the corresponding flag will be cleared when the vector register is read.