-
Notifications
You must be signed in to change notification settings - Fork 113
Description
Update
We revised the outline during the meeting held on 2018-07-16 and came up with the following sections:
- Introduction - Book: Section 1: Introduction (draft) #116
- covers setup
- what #[no_std] means: no I/O (filesystems), allocation, etc.
- Blinking Your First LED - Book: Section 2: Blinking your first LED (draft) #117
- use cortex-m-rt
- emphasis on zero cost abstractions: high level vs unsafe manual way (same disassembly)
- "Static guarantees" - Book: Section 3A: Static Guarantees (draft) #118
- static configuration, use svd2rust for the example
- Portability - Book: Section 3B: Portability #119
- examples: embedded-hal + drivers
- The singleton pattern (*)
- examples: static configuration, memory pools
- Concurrency - Book section: Concurrency (draft) #124
- examples: static+interrupts, RTFM
- Dynamic data structures - Book section: Dynamic data structures (draft) #125
- fixed capacity collections: heapless
- heap allocated collections: #[global_allocator], #[alloc_error]
- Tips for embedded C developers - Book section: Tips for embedded C / C++ developers #126
- e.g. iterators instead of for loop + indexing
- Interop - Integration with C codebases #48
- Binding a C SDK, Rust program on top (a little C with your Rust)
- Exposing Rust code to a C program (a little Rust with your C)
We will probably reorder the sections in the future but we were content with the selection of topics.
(*) I see quite a bit of overlap between singletons and the "static guarantess" and "dynamic data structures" sections. It may be best to write those two first and the decide whether we want a standalone section on singletons (I think a standalone section would end up being too short and / or may not properly showcase its usefulness without applying it to something like configuration or memory management).
This issue is for decisions on the layout or outline of the book contents.
The outline can be seen as markdown, or rendered. Also check out the book tag on issues.
We will open new issues for managing chapters and sections of the book.
Current Section Outline: