Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

maybe we should have a way to release a claimed EXTI interrupt? #1815

Open
hawkw opened this issue Jun 13, 2024 · 0 comments
Open

maybe we should have a way to release a claimed EXTI interrupt? #1815

hawkw opened this issue Jun 13, 2024 · 0 comments

Comments

@hawkw
Copy link
Member

hawkw commented Jun 13, 2024

Since we can only receive EXTI interrupts on one pin per port on the STM32s, it's difficult to use EXTI for "oneshot" GPIO interrupts. A task which only needs to receive an IRQ from a GPIO level change once will nonetheless permanently allocate that port, preventing any other task from ever receiving GPIO IRQs on pins on that port. It might be nice to add to the stm32xx-sys API to permit a task to temporarily claim an EXTI port, and then give it back once it's done using it.

See, for instance:

On the other hand, I don't think we currently have an interface for a task to release a claimed EXTI notification, so using EXTI for this would permanently occupy our ability to receive interrupts for pin changes on port B, so...we probably shouldn't do that. It might be a good idea to have a way for a task to release its configured EXTI interrupt, so that we can use EXTI for one shot stuff like this without tying up that port forever...

Originally posted by @hawkw in #1814 (comment)

If we did something like this, it would introduce another locking-type IPC protocol and might, therefore, require the planned priority-ceiling protocol work @cbiffle and I keep discussing but not actually working on...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant