Skip to content

The embeddonomicon #59

Closed
Closed
@japaric

Description

@japaric

Triage

2018-07-03

Work left to do here:

  • panic_fmt -> #[panic_implementation]
  • flip the structure to start with the "doesn't require unstable features" way to build a no-std binary. The appendix will cover unstable features like start, termination, etc.
  • cover targeting custom targets (not in rustc --print target-list): sysroot, Xargo, LLVM relationship.

This issue is for tracking documentation about low level details that most users won't have to
concern themselves with, but that are still important to document to help others bringing Rust to
new architectures and to help others implement glue crates like cortex-m-rt. This information may
also be relevant to binding RTOSes and other SDKs that take over the booting process.

The (first) topics to cover are:

  • What pieces are required to compile and link a no-std Rust program.

  • The entry point and life before main. What needs to happen before main and who's responsible of
    doing what.

  • Linker (script) magic and how to deal with stuff like the vector table and static registration of
    interrupt handlers -- there are at least two ways to do this; both should be documented.

I don't know what else should be covered.

TODO

  • @japaric will make a draft of this. I'll probably write it in a braindump / guide style, and
    will probably need help editing the text into a more readable state.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions