Releases: Rahix/avr-device
Releases · Rahix/avr-device
Version 0.8.0
Changed
- BREAKING: Changed the architecture of
avr-devicesuch that code is now generated at build time (#157 by @LuigiPiucco). This allows us to scale better and also makes the code-generation much simpler in general. No external dependencies need to be installed anymore when working on this crate. - BREAKING: Upgraded to svd2rust version 0.36.1 (#157 by @LuigiPiucco). This leads to mostly one major change in the register API:
- Registers are now accessed through functions instead of struct members.
In practice, this means you will have to do the following changes throughout your codebase:
-dp.PORTD.portd.write(|w| w.pd3().clear_bit()); +dp.PORTD.portd().write(|w| w.pd3().clear_bit()); -dp.TC0.tccr0b.write(|w| w.cs0().prescale_1024()); +dp.TC0.tccr0b().write(|w| w.cs0().prescale_1024());
- Registers are now accessed through functions instead of struct members.
- BREAKING: Renamed the
critical-section-implto justcritical-sectionand enabled it by default. This was done because thePeriperals::take()method is now gated oncritical-section(#195). - Switched to the rust version of svdtools (#174 by @tones111).
- Better register definitions for peripherals of the ATmega128RFA1 (#173 by @NikBel3476).
Added
- Support for
AT90CAN128,AT90CAN64, andAT90CAN32(#206 by @alios). - Support for
AVR128DB28(#207 by @tomtor). - Support for
ATtiny204,ATtiny804, andATtiny1604(#182 @nonik0). - Support for
ATtiny1606(#183 by @hammerlink). - Support for
ATtiny261A,ATtiny461A, andATtiny861A(#179 by @mbuesch). - Support for
ATtiny417,ATtiny817,ATtiny1617, andATtiny3217(#184 by @G33KatWork). - Support for
ATtiny1626(#185 by @ckoehne). TheVPORTA.DIRregister is currently unavailable due to a compiler limitation. See pull request for details. - Added
asm::get_stack_size()function which returns the current size of the stack (#189 by @LuigiPiucco). This function depends on thertfeature. - Added
asm::nop2(),asm::nop3(),asm::nop4(), andasm::nop5()functions that delay for precisely 2 to 5 cycles (#228 by @mbuesch). These are useful for precise timing in bit-banging.
Version 0.7.0
Added
- Added support for
ATtiny212,ATtiny214.ATtiny412,ATtiny414,ATtiny416(#167 by @innermatrix). - Added support for
ATmega16U2andATmega32U2(#164 by @zacharytomlinson). - Added support for
ATmega3208andATmega3209(#164 by @zacharytomlinson).
Changed
- BREAKING Upgraded to
atdf2svdversion 0.5.0 (#170). This is a breaking change because some registers now have fields instead of safe.bits()access. Chech the pull-request for details. - BREAKING Renamed
intoinputin ATtiny-xmega PORT registers (#171 by @innermatrix).
Fixed
- Fixed
ATmega88Pnot being available (#166 by @blueberry-fan).
Version 0.6.0
Added
- Added support for
AVR64DU32andAVR64DU28(#152 by @jwagen). - Added support for
ATmega16(#153 by @FlorianSchwarzl). - Added support for
ATtiny26(#158 by @mbuesch).
Changed
- Upgraded to
atdf2svdversion 0.4.0 (#154). - The split peripherals of
ATmega4808,ATtiny402,ATtiny404are now represented (#154 and atdf2svd#48).
Fixed
- Patched the ADC registers of ATtiny84A (#151).
Version 0.5.4
Added
- Support for
ATtiny44A(#141 by @MichaelDarr). - Support for
ATtiny84A(#143 by @MichaelDarr). - Added an example of bare
avr-deviceusage (withoutavr-hal) (#146 by @Frankkkkk).
Fixed
Version 0.5.3
Added
- Support for
ATmega4808(#137 by @NZRosto). - Support for
ATtiny402(#140 by @ZettaScript).
Changed
- Patched EEPROM registers for
ATmega164PA(#139 by @tronje). - Added fields to the
PCMSKregister onATtiny85(#131 by @mgrunwald).
Version 0.5.2
Added
asm::delay_cycles()for delaying at least a certain number of cpu cycles (#127 by @agausmann).- Support for
ATtiny828(#126 by @SnakeOilSalesman).
Version 0.5.1
Added
- Support for
ATmega128A(#121 by @DaanDekoningKrekels). - Support for
ATmega324PA(#119 by @marcantoinem). - Support for
ATmega88P(#120 by @LtdSauce). - Support for
ATmega32A(#123 by @West14).
Version 0.5.0
Added
- Support for
ATtiny404(#111 by @agausmann). - Support for the
critical-sectioncrate via acritical-section-implfeature flag (#116).
Changed
- Patched registers for
ATmega8(#112 by @Rutherther). - Upgraded to svd2rust 0.28. This changes the register API slightly, please check upstream docs for details (#118).
And finally some misc documentation fixes and improvements in #110 by @mbuesch. Thanks everyone for the help!
Version 0.4.0
Added
- Support for
ATmega164PA(#101 by @tronje). - Added a new, safer, API for manually managing interrupts (#104 by @mbuesch).
Changed
- Fixed timer registers for
ATtiny167(#102 by @dalpil). - Improved codegen of the interrupt management functions (#104 by @mbuesch).
- Updated to
bare-metalversion 1.0.0. This changes theinterrupt::free()function slightly. Please check the docs for details (#108 by @mbuesch).