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.
- Upgraded to
atdf2svd
version 0.4.0 (#154). - The split peripherals of
ATmega4808
,ATtiny402
,ATtiny404
are now represented (#154 and atdf2svd#48).
- Patched the ADC registers of ATtiny84A (#151).
0.5.4 - 2024-01-28
- Support for
ATtiny44A
(#141). - Support for
ATtiny84A
(#143). - Added an example of bare
avr-device
usage (withoutavr-hal
) (#146).
- Added missing pin fields in
DDR
,PIN
,PORT
registers forATtiny167
,ATtiny84
,ATtiny2313
, andATtiny2313A
(#148, #149). - Added missing fields for
PF7
pin onATmega32U4
(#150).
0.5.3 - 2023-11-17
- Patched EEPROM registers for
ATmega164PA
(#139). - Patched added fields to the
PCMSK
register onATtiny85
(#131).
0.5.2 - 2023-08-24
asm::delay_cycles()
for delaying at least a certain number of cpu cycles (#127).- Support for
ATtiny828
(#126).
0.5.1 - 2023-04-09
- Support for
ATmega128A
(#121). - Support for
ATmega324PA
(#119). - Support for
ATmega88P
(#120). - Support for
ATmega32A
(#123).
0.5.0 - 2023-01-05
- Support for
ATtiny404
(#111). - Support for the
critical-section
crate via acritical-section-impl
feature flag (#116).
- 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
- Fixed timer registers for
ATtiny167
(#102). - Improved codegen of the interrupt management functions (#104).
- Updated to
bare-metal
version 1.0.0. This changes theinterrupt::free()
function slightly. Please check the docs for details (#108).
0.3.4 - 2022-06-23
- Support for
ATtiny13A
(#100).
- Fixed timer registers for
ATmega1280
(#99).
0.3.3 - 2022-05-10
avr-device
now compiles with newer rustc versions (> 1.59) where thellvm_asm!()
macro was removed in favor ofasm!()
(#97).
0.3.2 - 2021-10-15
- Support for
ATtiny202
(#82). - Support for
ATtiny167
(#84). - Support for
ATtiny2313
andATtiny2313A
(#85).
- 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 enumerated values for
TWAA
field inATtiny841
(c0db0422b9ca
).
0.3.1 - 2021-06-29
- Support for
ATmega8U2
(#77). - Support for
AT90USB1286
(#80). - Convert
static mut
s into&mut
references inside#[entry]
and interrupt handlers. This behavior mirrors whatcortex-m-rt
does (#79).
0.3.0 - 2021-02-07
- BREAKING: Updated the enumerated values for the SPI clock prescaler field (#64).
- BREAKING: Split the
EIMSK
register fields into per-bit fields onATmega328P
andATmega328PB
(#74). - Switched to using the
svd interrupts
command for extracting a list of interrupts instead of parsing generated rust source files for this (#69).
ATmega64
: Fixed wrong field size forUMSELn
fields inUSART
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
, andPRR1
registers forATmega328P
andATmega328PB
wrongly being read-only (#73, #74)
0.2.3 - 2020-10-19
- Support for
ATmega644
- Support for
ATmega328PB
- Rewired svd-patching infrastructure to use upstream
svdtools
instead of the locally vendored script.
- Made
ADCSRA
for ATtiny84 read-write. - Made
TIFR
registers for ATmega timers read-write.
0.2.2 - 2020-08-20
- Support for
ATmega168
- Support for
ATmega48P
- Support for
ATtiny84
#[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 correspondingPORTx
register.
- 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
interrupt::free()
not working as advertised, because a wrong address was read.
0.2.0 - 2020-08-07
- Support for
ATtiny88
. - An
asm
module with wrapper functions for various assembly instructions.
- 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
- Support for
ATmega2560
.
- 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
.