Skip to content

Commit 6fb1e02

Browse files
committed
README: update TODO
1 parent fa51f35 commit 6fb1e02

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

README.rst

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,11 +141,9 @@ define a target.json and add a case for it in CMakelists.
141141
TODO
142142
****
143143

144-
* thread local storage
145-
* alloc from user mode
146-
* abstraction for pointers to kernel objects
147-
* safe wrappers (threads, semaphores, etc.)
148-
* panic
144+
* Build as a Zephyr module
145+
* Separate Rust app from zephyr crates and sysroot (be able to build multiple apps)
146+
* Kconfig for enabling Rust and configuring the heap
149147
* test runner
150148

151149
Complete
@@ -156,6 +154,24 @@ Complete
156154
* println
157155
* alloc from kernel mode (Box)
158156
* split into zephyr-sys and zephyr crates
157+
* thread local storage
158+
* alloc from user mode
159+
* abstraction for pointers to kernel objects
160+
* safe wrappers (threads, semaphores, etc.)
161+
* panic
162+
163+
Features Not Planned to Support
164+
===============================
165+
166+
* std::thread. Requires thread resources to be dynamically allocated. This is
167+
possible, but not common for Zephyr.
168+
* Defining static threads in Rust. Zephyr uses many layers of
169+
architecture-specific C macros that would not be wise to try to duplicate
170+
exactly in Rust. Possibly could generate C code like in the "cpp" crate, but
171+
for now just define threads in C and point them at a Rust FFI entry point.
172+
* std::sync::{Mutex, RwLock}. Might be possible but would at least require
173+
dynamic kernel object allocation. The small number of uses in libstd are
174+
patched out.
159175

160176
License
161177
*******

0 commit comments

Comments
 (0)