4 releases

0.1.0 Jul 18, 2021
0.0.3 May 7, 2021
0.0.2 May 4, 2020
0.0.1 Apr 18, 2020

#567 in Embedded development

21 downloads per month
Used in yaxpeax-dis

0BSD license

40KB
675 lines

yaxpeax-avr

AVR decoders implemented as part of the yaxpeax project. Implements traits provided by yaxpeax-arch.

Known "issues"

  • The brbc and brbs instructions are displayed as their equivalent pseudo-instructions, based on the bit they test: brbc 0, label becomes brsh label. In this case specifically, brcc also exists (and is identical), however brsh will be displayed.
  • Target specification is limited to enabling/disabling support for 16-bit sts and lds instructions (as they can collide with other instructions cores with support for them don't have). Valid instructions (even if they might be unsupported by a core) are never rejected. Bytes which don't resemble an instruction from any instruction set subset are still invalid.

lib.rs:

AVR decoders implemented as part of the yaxpeax project. Implements traits provided by yaxpeax-arch.

Instruction set manual references are with respect to the document Atmel-0856-AVR-Instruction-Set-Manual.pdf as of 2020-04-13. sha256: dbf578218c9f52f2fd22ccc538f53b9db4890320835725678c02b7b58f641981

References to the ATmega48A/PA/88A/PA/168A/PA/328/P datasheet are with respect to the document ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf as of 2020-04-13. sha256: bf1c2e470f8ec7d4db340984f57556342557fed3eb9c457dd174b08db5993af6

Known "issues":

  • The brbc and brbs instructions are displayed as their equivalent pseudo-instructions, based on the bit they test: brbc 0, label becomes brsh label. In this case specifically, brcc also exists (and is identical), however brsh will be displayed.
  • Target specification is limited to enabling/disabling support for 16-bit sts and lds instructions (as they can collide with other instructions cores with support for them don't have). Valid instructions (even if they might be unsupported by a core) are never rejected. Bytes which don't resemble an instruction from any instruction set subset are still invalid.

Dependencies

~220KB