boi
New Member
Posts: 5
|
Post by boi on Jun 27, 2019 12:42:24 GMT
Is there a way to achieve interrupts on multiple CPUs at the same time? e.g say from a timer compare-match interrupt.
|
|
|
Post by Admin on Jun 27, 2019 14:06:53 GMT
Each CPU has an independent interrupt system so yes!
|
|
boi
New Member
Posts: 5
|
Post by boi on Jun 27, 2019 14:18:08 GMT
Thank you for the reply.
The interrupt systems are independent for each CPU:would it be possible to synchronize the interrupts? I gather that there is a way to broadcast service requests to multiple service providers at the same time but this is effected by SW,the documentation says. In case I missed some information-can we have the same effect say from a single timer?
Many thanks
|
|
|
Post by Admin on Jun 27, 2019 14:33:18 GMT
A single timer cannot cause an interrupt in more than one core. There is no way to do it using the Arduino language but it can be done directly in 'C'. The easiest way is to generate a frequency on a port pin and feed this back into 3 pins that have TIM functionality. Each TIM would cause an interrupt in a separate core simultaneously.
|
|
boi
New Member
Posts: 5
|
Post by boi on Jun 28, 2019 5:40:48 GMT
Much appreciated for the suggestion. Its a good starting point. Yes, I will be working directly in "C".
|
|
boi
New Member
Posts: 5
|
Post by boi on Aug 5, 2019 14:31:31 GMT
Hello, I decided I would build on the GTM TOM TIMER demo.It demonstrates a 1ms interrrupt on core. I duplicated the demoapp init functions and changed the source so the interrupt is requested on CPU1. timerConfig.tom = IfxGtm_Tom_1; //is kept the same. timerConfig.timerChannel = IfxGtm_Tom_Ch_4; // is changed as here.
A few additions to the configuration file
#define ISR_PRIORITY_TIMER_1MS_cpu1 1
#define ISR_PROVIDER_TIMER_1MS_cpu1 IfxSrc_Tos_cpu1
#define INTERRUPT_TIMER_1MS_cpu1 ISR_ASSIGN(ISR_PRIORITY_TIMER_1MS_cpu1,ISR_PROVIDER_TIMER_1MS_cpu1)
I had thought this would be sufficient to have the ISR trigger on CPU1, but it's not working. The SRC_GTMTOM14 register is not modified(service request disabled,).
What could I be missing here?
|
|