3 个版本

使用旧的 Rust 2015

0.0.3 2021 年 2 月 13 日
0.0.2 2017 年 10 月 20 日
0.0.1 2016 年 9 月 17 日

#1420嵌入式开发

MIT 许可证

48KB
1K SLoC

AVR 模拟器

Build Status Crates.io MIT licensed

此程序模拟了一个 8 位 AVR 微控制器。它支持简单的 C 语言 "Hello World!" 程序。

注意:此模拟器并不完全完整。一个值得注意的是,并非所有指令都实现了所有状态寄存器的更新 (#2)。

给定一些 C++ 源代码。

#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

无运行时依赖