Comments (3)
I've been using @cbiffle's lilos executor for my projects. It's strictly single core but there's no reason why you couldn't run two instances, one on each rp2040 core. It relies on static vars for some of its state so I was thinking that thread local would allow two instances to coexist in ram while sharing code.
Otherwise I'd have to work out how to link in two instances with their own statics which would be annoyingly redundant.
This specific case doesn't seem all that niche, esp since 'static lifetime data is so useful for DMA and such.
from rp-hal.
It would be useful to be able to use #[thread_local] to have functionally static variables which are per-core on rp2040.
I'm having trouble coming up with a use-case where thread_local variables would provide a benefit, what did you have in mind?
from rp-hal.
Whatever the mechanism, the rp2040_hal::multicore APIs would need to be extended to expose how much per-thread memory is needed, to allow callers to provide suitable memory when spawning on a new core.
Actually thinking about it, we could just statically allocate bss spaceat link time for the per-thread of for each core, and make this completely transparent to users.
from rp-hal.
Related Issues (20)
- GPIO pins should have inherent infallible methods HOT 1
- Clock errors cannot be printed with deft
- I2C on GPIO24/25 not working HOT 13
- Update terminology for I2C (and possibly other peripherals)
- Input Enable now turned off on ADC capable GPIOs (Errata RP2040-E6) HOT 2
- Missing impls for Pin<_, DynFunction, _> HOT 12
- Should there be a default impl for hal::serial::blocking::Write? HOT 3
- Support use of slice for Program code HOT 1
- Note on how to acquire Pin's number as an integer HOT 1
- ERROR probe_rs::cmd::run: Failed to attach to RTT continuing... HOT 5
- Crates.io version HOT 2
- ADC read blocks HOT 3
- embedded_io::serial::Reader implementations drop data on error
- rp2040_hal::halt() makes rp2040 un-debuggable even though comment in function says debugging will stay possible
- Does rp2040_hal::spi::Spi implement the embedded-hal 1.0 SpiDevice trait? HOT 3
- Cycling a buffer with DMA HOT 5
- Multicore Lockout HOT 11
- Readme seems to use wrong cargo run command HOT 1
- I2C example produces weird non-working results HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rp-hal.