Rust building typos, use HEX consistently
.asm instead of .s for C; rename delay loop asm
Most Arduino tutorials take the IDE as a given. This makes sense for ease of use, but what is really behind those "Verify" and "Upload" buttons? Instead of building complex software on top of an IDE, this project goes in the opposite direction: how does the simplest possible Arduino program work on a deeper level?
Using 4 languages as examples:
Just the builitn Basic Examples. Not included here, there's nothing to change.
Adaption of builtin example, build steps come directrly from building in Arduino IDE with verbose output.
Gold mine in this small blog post, adapted from ATmega168 into ATmega328p. This lecture gives more theory, architecture, and timing information.
This is almost entirely avr-rust's blink example, however this example didn't work immediately (for me at least). The missing pieces came from a blog post on creativecoder and brute force.