Crates.io | avr |
lib.rs | avr |
version | 0.0.3 |
source | src |
created_at | 2016-09-17 14:44:05.034288 |
updated_at | 2021-02-13 08:10:50.575843 |
description | AVR emulator |
homepage | |
repository | https://github.com/dylanmckay/avr |
max_upload_size | |
id | 6522 |
size | 48,453 |
This program emulates an 8-bit AVR microcontroller. It supports the trivial C "Hello World!" program.
NOTE: This emulator isn't quite complete. One notable thing is that not all status register updates are implemented for all instructions (#2).
Given some C++ source.
#include <avr/io.h>
#include <util/delay.h>
int main() {
DDRB |= _BV(PB6);
for(uint8_t i=0; i<5; i++) {
PORTB |= _BV(PB6);
_delay_ms(500);
PORTB &= ~_BV(PB6);
_delay_ms(500);
}
return 0;
}
# Generate an ELF object file for the Atmega328p
avr-g++ hello_world.c -DF_CPU=8000000 -mmcu=atmega328p -O2 -o hello_world.o
# Generate a raw binary
avr-objcopy -I elf32-avr -O binary hello_world.o hello_world.bin
cargo run hello_world.bin