mirror of
https://github.com/italicsjenga/gba.git
synced 2024-12-23 10:51:30 +11:00
d15168068b
The hello_magic example does not depend on the gba crate, but the crt0 now assumes that the symbol for the interrupt handler which is defined in it will be present, as interrupts ought to be handled in some manner. If neither the symbol or the crate are added then the linker will give an error, but if anything in the gba crate is used also then the symbol will be brought in, so defining it manually also would cause a duplicate definition error. In the future something like cortex-m-rt's `exception!` macro could be used to better document how to define this symbol (all their examples depend on at least one symbol from their runtime library, so they don't have this problem). |
||
---|---|---|
book | ||
examples | ||
src | ||
.gitignore | ||
.travis.yml | ||
Cargo.toml | ||
crt0.s | ||
init.sh | ||
LICENSE-APACHE2.txt | ||
linker.ld | ||
Makefile.toml | ||
README.md | ||
rustfmt.toml | ||
thumbv4-none-agb.json | ||
todo_check.bat |
gba
Eventually there will be a full Tutorial Book that goes along with this crate. However, currently the development focus is leaning towards having minimal coverage of all the parts of the GBA. Until that's done, unfortunately the book will be in a rather messy state.
What's Missing
The following major GBA features are still missing from the crate:
- Affine Graphics
- Interrupt Handling
- Serial Communication
First Time Setup
Writing a Rust program for the GBA requires a fair amount of special setup. All of the steps are detailed for you in the Development Setup part at the start of the book.
If you've done the described global setup once before and just want to get a new project started quickly we got you covered:
curl https://raw.githubusercontent.com/rust-console/gba/master/init.sh -sSf | bash -s APP_NAME
Contribution
This crate is Apache2 licensed and any contributions you submit must also be Apache2 licensed.