Skip to content

Latest commit

 

History

History
300 lines (231 loc) · 10.2 KB

CHANGELOG.md

File metadata and controls

300 lines (231 loc) · 10.2 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Added

  • Added support for AVR64DU32 and AVR64DU28 (#152).
  • Added support for ATmega16 (#153).

Changed

  • Upgraded to atdf2svd version 0.4.0 (#154).
  • The split peripherals of ATmega4808, ATtiny402, ATtiny404 are now represented (#154 and atdf2svd#48).

Fixed

  • Patched the ADC registers of ATtiny84A (#151).

0.5.4 - 2024-01-28

Added

  • Support for ATtiny44A (#141).
  • Support for ATtiny84A (#143).
  • Added an example of bare avr-device usage (without avr-hal) (#146).

Fixed

  • Added missing pin fields in DDR,PIN,PORT registers for ATtiny167, ATtiny84, ATtiny2313, and ATtiny2313A (#148, #149).
  • Added missing fields for PF7 pin on ATmega32U4 (#150).

0.5.3 - 2023-11-17

Added

  • Support for ATmega4808 (#137).
  • Support for ATtiny402 (#140).

Changed

  • Patched EEPROM registers for ATmega164PA (#139).
  • Patched added fields to the PCMSK register on ATtiny85 (#131).

0.5.2 - 2023-08-24

Added

  • asm::delay_cycles() for delaying at least a certain number of cpu cycles (#127).
  • Support for ATtiny828 (#126).

0.5.1 - 2023-04-09

Added

  • Support for ATmega128A (#121).
  • Support for ATmega324PA (#119).
  • Support for ATmega88P (#120).
  • Support for ATmega32A (#123).

0.5.0 - 2023-01-05

Added

Changed

  • Patched registers for ATmega8 (#112).
  • Upgraded to svd2rust 0.28. This changes the register API slightly, please check upstream docs for details (#118).

0.4.0 - 2022-09-08

Added

  • Support for ATmega164PA (#101).
  • Added a new, safer, API for manually managing interrupts (#104).

Changed

  • Fixed timer registers for ATtiny167 (#102).
  • Improved codegen of the interrupt management functions (#104).
  • Updated to bare-metal version 1.0.0. This changes the interrupt::free() function slightly. Please check the docs for details (#108).

Removed

  • Support for very old rustc versions which need llvm_asm!() (#106, #109).

0.3.4 - 2022-06-23

Added

  • Support for ATtiny13A (#100).

Changed

  • Fixed timer registers for ATmega1280 (#99).

0.3.3 - 2022-05-10

Added

  • Support for ATtiny1614 (#90).
  • Support for ATmega128RFA1 (#93).
  • Support for ATmega1284P (#94).

Fixed

  • avr-device now compiles with newer rustc versions (> 1.59) where the llvm_asm!() macro was removed in favor of asm!() (#97).

0.3.2 - 2021-10-15

Added

  • Support for ATtiny202 (#82).
  • Support for ATtiny167 (#84).
  • Support for ATtiny2313 and ATtiny2313A (#85).

Changed

  • Upgraded to svd2rust version 0.19 (#86). Please check the upstream changelog for details about what changes this has lead to.
  • interrupt::disable() now returns a boolean, indicating whether interrupts were previously enabled (#89).

Fixed

  • Fixed enumerated values for TWAA field in ATtiny841 (c0db0422b9ca).

0.3.1 - 2021-06-29

Added

  • Support for ATmega8U2 (#77).
  • Support for AT90USB1286 (#80).
  • Convert static muts into &mut references inside #[entry] and interrupt handlers. This behavior mirrors what cortex-m-rt does (#79).

0.3.0 - 2021-02-07

Added

  • Support for ATmega4809 (#63).
  • Support for ATtiny841 and ATtiny861 (#67).

Changed

  • BREAKING: Updated the enumerated values for the SPI clock prescaler field (#64).
  • BREAKING: Split the EIMSK register fields into per-bit fields on ATmega328P and ATmega328PB (#74).
  • Switched to using the svd interrupts command for extracting a list of interrupts instead of parsing generated rust source files for this (#69).

Fixed

  • ATmega64: Fixed wrong field size for UMSELn fields in USART peripherals (#64).
  • (via atdf2svd v0.2.0): Removed invalid enumerated values from all fields.
  • Fixed an error in the 16-bit timer documentation (#67).
  • Fixed the PRR, PRR0, and PRR1 registers for ATmega328P and ATmega328PB wrongly being read-only (#73, #74)

0.2.3 - 2020-10-19

Added

  • Support for ATmega644
  • Support for ATmega328PB

Changed

  • Rewired svd-patching infrastructure to use upstream svdtools instead of the locally vendored script.

Fixed

  • Made ADCSRA for ATtiny84 read-write.
  • Made TIFR registers for ATmega timers read-write.

0.2.2 - 2020-08-20

Added

  • Support for ATmega168
  • Support for ATmega48P
  • Support for ATtiny84

Changed

  • #[entry] causes a (readable) compile-error when attempting to build for non-AVR targets.
  • PINx registers are now writeable, which enables efficient toggling of bits in the corresponding PORTx register.

Fixed

  • inline-assembly is now only emitted when building for AVR targets to prevent weird compiler errors where AVR instructions are emitted on e.g. x86_64.
  • Fixed an issue in the build-system in preparation for the next svd2rust release.

0.2.1 - 2020-08-07

Fixed

  • Fixed interrupt::free() not working as advertised, because a wrong address was read.

0.2.0 - 2020-08-07

Added

  • Support for ATtiny88.
  • An asm module with wrapper functions for various assembly instructions.

Changed

  • Various patches for ATtiny85, fixing up a lot of the remaining inconsistencies.
  • interrupt::enable() is now unsafe, as it would otherwise be possible to enable interrupts safely inside a critical section.

0.1.1 - 2020-07-31

Added

  • Support for ATmega2560.

Changed

  • Patches for AVR timer/counter peripherals in ATmega2560, ATmega328P, ATmega32U4, ATtiny85.

0.1.0 - 2020-07-26

Initial release with support for ATmega1280, ATmega328P, ATmega32U4, ATmega64, ATmega8, ATtiny85.