Hello,
How to configure multiple software interrupts using the VIM module?
At some point, I will need to cause the software interrupt to occur directly.
Any guides on the usage of the VIM to configure software interrupts?
Thanks,
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.
Hello,
How to configure multiple software interrupts using the VIM module?
At some point, I will need to cause the software interrupt to occur directly.
Any guides on the usage of the VIM to configure software interrupts?
Thanks,
Hello,
Software interrupt can be triggered by writing a '1' to the respective core's SW_INT Register as shown in the snapshot below:
The VIM needs to be configured with interrupt number 129 from the Table provided in the TRM, highlighted in the snapshot below:
Please let me know if you have any further questions.
Thanks,
Sahana
Yes, there is only one explicit software interrupt. However, any of the hardware interrupts can also be programmed through software. For example, the RTI1 interrupt (interrupt number 91) can be triggered by writing 0x08000000 into the VIM_RAW_2 register.
Regards,
Sahana
Can you provide steps to do this through vim module without the usage of the GPT?
This one:
will vimTriggerSoftInt function do the same?
or This:
RTI1 interrupt (interrupt number 91) you mean RTI1_INT0, right?
RTI1 interrupt (interrupt number 91) is RTI1_INT0. Aakash will comment on the vimTriggerSoftInt function.
It is part of the MCAL, it is working I tested it.
I have another question if I am using an unused interrupt for a peripheral as a software interrupt, I don't have a source as I caused the interrupt.
So this line I can skip right?
Hi Abdelrhman Afifi,
As the interrupt has no source, you don't need to clear the interrupt at source and VIM interrupts are auto-cleared. This is for INT_ID - 129
Best Regards,
Aakash
Hi Aakash,
My question is related to triggering the interrupt by software, interrupt number 91 not 129.
For example, the RTI1 interrupt (interrupt number 91) can be triggered by writing 0x08000000 into the VIM_RAW_2 register.
Do I need to clear the interrupt source as mentioned?
Yours,
Hi Abdelrhman Afifi,
If you're writing into the VIM_RAW register to trigger the interrupt. This gets auto-cleared. So the user doesn't need to clear anything else in this case.
Best Regards,
Aakash