Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 5608

SDK • Re: irq_set_exclusive_handler on two cores?

$
0
0
Thank you for the answers!

Though I think I now understand why this is the case, it is a bit contrary to my prior expectations that doorbells - whose stated purpose in the SDK docs is "...which a core can use to raise IRQs on itself or the other core." wouldn't be able to raise cross-core interrupts in a slightly more flexible manner.

Please don't take this response as a complaint, by the way. My current project is porting an existing design from a TI C2000 microcontroller to the Pico 2, and the contrast between my experience using the TI SDK and CCS IDE versus the Pico SDK and Pico VSCode extension is absolutely night and day. I'm very grateful to you folks for making the Pico ecosystem so good!

[*] So if I understand correctly:
"irq_set_exclusive_handler" sets the IRQ handler in the vector table for the current core - however in the current SDK both cores use the same vector table - ergo, for all practical purposes "irq_set_exclusive_handler" sets the IRQ handler in the vector table for both cores in the current SDK. Though the original statement is technically true, I still feel it could be worded differently to be clearer for the current SDK implementation. I'll open an issue as you suggest.
[*]I guess I need to do some more reading to understand the overall interrupt mechanisms better. I'm not yet clear on how even though there's the singular vector table shared by both cores, the doorbell IRQ only triggers on the core which receives the doorbell (don't get me wrong, that's what I'd hope would happen, just haven't completely wrapped my head around how it works)
[*] Thanks for the suggestion re: checking core number in the ISR, incidentally that's what I did just this morning as a workaround and it's working for me

Statistics: Posted by funkenjaeger — Fri Jan 03, 2025 9:23 pm



Viewing all articles
Browse latest Browse all 5608

Trending Articles