Dylan McKay
Dylan McKay
Currently, all binaries that use avr-rust need to create a target specification file to instruction Rust to compile for a specific microcontroller. The specification itself is always identical across devices,...
The `without_interrupts()` in PR #4 always enables interrupts when the closure finishes executing. This could be problematic in libraries; a library using this function assumes that the program it is...
CC #9 Our interrupt handler story isn't super great; we require users to write their own interrupt vector table (IVT) in assembly, and then they define a set of `pub...
Currently, the build script has a special case when not targeting AVR; default to atmega328 so that [docs.rs](https://docs.rs/ruduino/0.1.2/ruduino/cores/index.html) can build it. We should build all cores when generating documentation, so...
At the top of `main`, we should be able to assume that all `PORT`/`DDR` registers are zeroed. This should let LLVM optimise RMW OR/AND/NOT instructions into a simple assignment.
Currently the current panic handler simply is `loop { }`. In release builds, this will likely optimize out and it also has problems because interrupts will still execute. We should...
From memory, I think we don't set the status register in all cases we should be doing. I think a bunch of the basic ones work with addition and stuff,...
I get this error locally ``` error: linking with `avr-gcc` failed: exit code: 1 | = note: "avr-gcc" "-Os" "-mmcu=atmega328p" "-T" "lookup-text.ld" "-L" "/home/dylan/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/avr-atmega328p/lib" "/home/dylan/repos/rust-avr-chip8-avr/target/avr-atmega328p/release/deps/chip8_avr-3101ca07c6937603.chip8_avr.122g828f-cgu.0.rcgu.o" "/home/dylan/repos/rust-avr-chip8-avr/target/avr-atmega328p/release/deps/chip8_avr-3101ca07c6937603.chip8_avr.122g828f-cgu.1.rcgu.o" "/home/dylan/repos/rust-avr-chip8-avr/target/avr-atmega328p/release/deps/chip8_avr-3101ca07c6937603.chip8_avr.122g828f-cgu.10.rcgu.o" "/home/dylan/repos/rust-avr-chip8-avr/target/avr-atmega328p/release/deps/chip8_avr-3101ca07c6937603.chip8_avr.122g828f-cgu.11.rcgu.o" "/home/dylan/repos/rust-avr-chip8-avr/target/avr-atmega328p/release/deps/chip8_avr-3101ca07c6937603.chip8_avr.122g828f-cgu.2.rcgu.o" "/home/dylan/repos/rust-avr-chip8-avr/target/avr-atmega328p/release/deps/chip8_avr-3101ca07c6937603.chip8_avr.122g828f-cgu.3.rcgu.o"...
The AVR fork can now fully compile libcore to machine code in all the programs we've tested. It is unclear if there are other, yet unexercised parts of `libcore` that...