-
Notifications
You must be signed in to change notification settings - Fork 99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The embeddonomicon #59
Comments
Happy to help with editing. I'll watch this ticket. |
I've put up a first draft for the embedonomicon. I have not proofread it so expect typos and @jdub Thanks for volunteering; I've added you as a collaborator. Feel free to fix typos and the @jcsoo @thejpster I think you wanted to read about how I've also used the embedonomicon as a chance to figure out how close we are to making no-std I think what's left to be answer in this thread is where do we want this documentation to live. cc |
Also how to maintain this document. Sadly |
@japaric this is really neat! wrt. where to put it, how about at rust-embedded/docs or similar? That way it'll be accessible as a subdirectory of rust-embedded.org and maintainable as part of the rust-embedded project. |
I've had a go at porting a new platform (not yet successfully) and have run into a couple of issues that might be useful additions to the embeddedonomicon. The first is a description of target json files and their use for out-of-tree targets (along with a link to rust-lang/rfcs/text/0131-target-specification.md and how to list rustc and llvm targets). The second is approaches to combine rust with assembly I'm building the crt0 with a build.rs file: let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap());
let mut build = gcc::Build::new();
build.compiler("arm-none-eabi-gcc").archiver("arm-none-eabi-ar");
build.flag("-mcpu=arm7tdmi").flag("-mthumb-interwork").flag("-nostdlib");
build.clone().file("src/gba_crt0.s").compile("gba_crt0.o");
println!("cargo:rerun-if-changed=src/gba_crt0.s"); Which builds correctly and can then be included in the build either with But I'm struggling to work out how to wire together or replace the Cheers, Ryan |
Try |
@ryankurte: |
@ryankurte I've uploaded an example for the RPi3 at https://github.com/andre-richter/rust-raspi3-tutorial It has the Maybe it helps in your case. |
@whitequark @andre-richter thanks for the help! I got it going with a combination of the two. It appears |
done |
Is this meant to be different from https://book.rust-embedded.org/? |
Triage: work left to do here:
@alexreg yes, the books have different audiences. See #56 (comment) for details. The nomicon is hosted at https://embedonomicon.rust-embedded.org/ |
@japaric Thanks for clarifying. Is the Discovery book hosted somewhere too, right now? |
@alexreg The Discovery book is hosted at https://japaric.github.io/discovery/ |
Thanks! Will that move to rust-embedded.org at some point too? |
@alexreg yes, eventually. The second edition will all the pending changes listed in the issue description is now up at https://github.com/rust-embedded/embedonomicon and it's being temporarily hosted at https://rust-embedded.github.io/embedonomicon/. If you have feedback on the second edition please use the rust-embedded/embedonomicon issue tracker. Pull requests fixing typos are welcome as well! |
Triage
2018-07-03
Work left to do here:
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
will probably need help editing the text into a more readable state.
The text was updated successfully, but these errors were encountered: