rust-embedded / rust-embedded/rust-sysfs-gpio
Non blocking interrupt
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 397
- Forks
- 48
- PR merge metrics
- No merged PRs in 30d
Description
Similar libraries for GPIO support in other languages (Python RPi.GPIO, WiringPi, etc), provide a background thread for interrupt detection, and callback attaching. For example in python:
RPi.GPIO runs a second thread for callback functions. This means that callback functions can be run at the same time as your main program, in immediate response to an edge. For example:
def my_callback(channel):
print('This is a edge event callback function!')
print('Edge detected on channel %s'%channel)
print('This is run in a different thread to your main program')
GPIO.add_event_detect(channel, GPIO.RISING, callback=my_callback) # add rising edge detection
I know this is difficult to do in Rust with all the safety, ownership and the like, but that will be great to have.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue does not name files, tests, or an existing entry point. Start by reviewing the current GPIO API and its Linux sysfs interrupt handling, then clarify the callback, threading, ownership, and safety requirements with maintainers before implementation. Done means an agreed API with documented behavior and coverage for non-blocking interrupt callbacks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux, rust
- Domain
- embedded-iot, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100