|
Post by brainbomber on Apr 27, 2021 22:56:58 GMT
How do interrupts interact with each other on the TC375 given that it has 3 cores and the GTM? I'm assuming this configuration allows ISRs tied to different cores to run simultaneously, but what about GTM-based and external interrupts? Detailed information about priority and interrupt routing would be greatly appreciated.
|
|
|
Post by brainbomber on May 10, 2021 4:07:50 GMT
If it is not easy to provide general information, please answer this: Is it safe to assume that an ISR triggered by a pin change specified by attachInterrupt() cannot execute at the same time as an ISR triggered by the GTM, or can these functions execute simultaneously on the TC375 ShieldBuddy?
|
|
|
Post by Admin on May 11, 2021 10:40:08 GMT
On a single core only one interrupt can be processed at once. However if the attachInterrupt() is on core0 and the GMT ISR is on core1, then simultaneous execution can occur.
|
|
|
Post by brainbomber on May 12, 2021 0:48:16 GMT
How do the ISR functions end up on specific cores? Do attachInterrupt() and TimerChannelConfig[x] put them on specific cores based on the interrupt pin or timer channel number, respectively, or based on the order in which the setup functions are called, or are ISR functions handled by whatever core is available when the interrupt occurs? Is there a way to pin specific external and GTM ISRs to specific cores, and if so, what would determine each interrupt's priority on that core?
|
|
|
Post by Admin on May 12, 2021 7:16:56 GMT
On the TC275, attachInterrupt() and TimerChannelConfig[x] and will create interrupts on the cores which originally initialised them. Each core behaves like a completely separate Arduino. The TC375 version is currently limited to using core0 but this will be fixed in the near future.
|
|
|
Post by brainbomber on May 12, 2021 22:08:18 GMT
Great, thanks so much!
|
|