Skip to content

loader: enable dynamic interrupt connection on Arduino Uno Q#402

Closed
mirinae3145 wants to merge 1 commit intoarduino:mainfrom
lee-lab-skku:main
Closed

loader: enable dynamic interrupt connection on Arduino Uno Q#402
mirinae3145 wants to merge 1 commit intoarduino:mainfrom
lee-lab-skku:main

Conversation

@mirinae3145
Copy link
Copy Markdown

Tested with timer interrupts

void TIM3_IRQHandler(const void*) {
  if (TIM3->SR & TIM_SR_CC2IF) {
    TIM3->SR = 0;
    (void)TIM3->SR;
  }
}

irq_connect_dynamic(TIM3_IRQn, 0, TIM3_IRQHandler, nullptr, 0);
irq_enable(TIM3_IRQn);

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Mar 22, 2026

CLA assistant check
All committers have signed the CLA.

This commit enables dynamic interrupt connection for the Arduino UNO Q variant.

- Export interrupt management, query, and control symbols in llext_exports.c
- Enable CONFIG_DYNAMIC_INTERRUPTS and related Kconfig options in the board config
- Disable CONFIG_DYNAMIC_INTERRUPTS for the Portenta C33 variant since there is no implementation for it yet

This allows Arduino sketches to dynamically attach and detach interrupt handlers at runtime.
Copy link
Copy Markdown

@pillo79 pillo79 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this. Please squash all commits and add a minimal description in the merged commit's body. Otherwise looks good to me! 👍

@github-actions
Copy link
Copy Markdown

Built 0.54.1-0.dev+befc7e41

CI run PASSED 🟢

ArtifactBoardCoreTestsRAMSketchesWarningsErrors
zephyr_contrib ek_ra8d1 📗

11.9%

2--
frdm_mcxn947 3 🏷️

58.0%

2--
frdm_rw612 1 🏷️

83.0%

2--
✔️* zephyr_main giga 4 🏷️ ✅*

54.5%

448-
nano33ble 1 🏷️ ✅*

78.7%

228-
nano_matter 📗 ✔️*

⚠️ 85.7%

208(2*)
niclasense 2 🏷️ ✅*

⚠️ 87.3%

208-
opta 4 🏷️ ✔️*

46.7%

548(2*)
portentac33 3 🏷️ ✔️*

⚠️ 94.9%

568(8*)
portentah7 3 🏷️ ✔️*

47.3%

588(2*)
✅* zephyr_unoq unoq 📗 ✅*

26.8%

628-
Legend

BoardTestStatus description
🔥 🔥 Test run failed to complete.
🔴 Test completed with unexpected errors.
✔️* 🚫 Test completed with errors, but all are known/expected.
✅* 🟡 Test completed with some warnings; no errors detected.
🟢 Test passed successfully, with no warnings or errors.
🌑 🌑 Test was skipped.

@pillo79 pillo79 changed the title enable dynamic interrupt connection on Arduino Uno Q loader: enable dynamic interrupt connection on Arduino Uno Q Mar 25, 2026
@KurtE
Copy link
Copy Markdown

KurtE commented Mar 25, 2026

Looks like a good addition, I assume it will or does also work on other boards like GIGA and Portenta H7?

It also partially solves some of the stuff I was looking at with issue: #388

For example if I wish to write my own DCMI driver outside of the Device Tree, How would I address all of the IO pins.
Luckily looks like the pins on JMISC are given pin numbers on the Q. But not the case with the Portenta H7.

Again looks good.

@mirinae3145
Copy link
Copy Markdown
Author

@KurtE Glad to hear it helps, but sorry that I don't know about other boards.
@pillo79 Thanks for the approval. What remains to be merged?

@pennam
Copy link
Copy Markdown

pennam commented Apr 17, 2026

rebased in #435

@pennam
Copy link
Copy Markdown

pennam commented Apr 17, 2026

merged via #435

@pennam pennam closed this Apr 17, 2026
@per1234 per1234 added the duplicate This issue or pull request already exists label Apr 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

duplicate This issue or pull request already exists

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants