Cargo Features

AVRoxide has no features set by default.

[dependencies]
avr-oxide = { version = "0.4.1", features = ["panic_handler", "atmega4809", "atmega328p", "20MHz", "16MHz", "power_med", "porta", "portd", "portf", "panicout_usart0", "panicout_usart1", "panicout_usart2", "panicout_usart3", "panicout", "bootable", "arduino_nanoevery", "arduino_uno", "atmega4809_xplained_pro", "atmega_xplained", "arduino", "boardcompat", "32BitDiv", "usart0", "usart1", "usart2", "usart3", "all_usarts", "twi0", "all_twis", "tcb0", "tcb1", "tcb2", "tcb3", "rtc", "all_tcbs", "extended_addressing", "std_test", "std_build", "std_build_328p", "runtime_checks"] }
panic_handler std_build? std_build_328p?

Standard panic handler implementation

atmega4809 arduino_nanoevery? atmega4809_xplained_pro? std_build? std_test? = porta, portb, portc, portd, porte, portf

Target device configuration

Affects deviceconsts::memory, deviceconsts::oxide, hal::atmega4809, boards::xplained

atmega328p arduino_uno? std_build_328p? = portb, portc, portd

Affects deviceconsts::memory, deviceconsts::oxide, hal::atmega328p

20MHz std_build? std_test?

Affects deviceconsts::clock

16MHz std_build_328p?

Affects deviceconsts::clock

power_low power_med

Affects deviceconsts::clock.MASTER_CLOCK_PRESCALER, deviceconsts::clock.MASTER_TICK_FREQ_HZ, deviceconsts::clock.MASTER_CLOCK_PRESCALER, deviceconsts::clock.MASTER_TICK_FREQ_HZ

porta atmega4809?

GPIO ports (compile enabled to let us save RAM in some structures)

portb portc portd atmega328p? atmega4809?
porte portf atmega4809?
panicout_usart0 std_build_328p? = panicout, usart0

Configurable PANICOUT support

Affects serial::panicout, serial::panicout

panicout_usart1 = panicout, usart1

Affects serial::panicout

panicout_usart2 = panicout, usart2

Affects serial::panicout

panicout_usart3 std_build? std_test? = panicout, usart3

Affects serial::panicout

panicout panicout_usart0? panicout_usart1? panicout_usart2? panicout_usart3?
bootable std_build? std_build_328p?

Enable/disable boot code

arduino_nanoevery std_build? std_test? = arduino, atmega4809, boardcompat, usart3

Arduino and other board compatibility

Affects boards::nanoevery

arduino_uno std_build_328p? = arduino, atmega328p, boardcompat, usart0

Affects boards::uno

atmega4809_xplained_pro = atmega4809, atmega_xplained, boardcompat
atmega_xplained atmega4809_xplained_pro?

Affects boards::xplained

arduino arduino_nanoevery? arduino_uno?
boardcompat arduino_nanoevery? arduino_uno? atmega4809_xplained_pro?
32BitDiv

Enable if 32 bit division actually works

usart0 all_usarts? arduino_uno? panicout_usart0?

Optional hardware devices

Affects serial::usart0, serial::usart0

usart1 all_usarts? panicout_usart1?

Affects serial::usart1

usart2 all_usarts? panicout_usart2?

Affects serial::usart2

usart3 all_usarts? arduino_nanoevery? panicout_usart3?

Affects serial::usart3

all_usarts std_build? std_test? = usart0, usart1, usart2, usart3
twi0 all_twis?

Affects twi::twi0

all_twis std_build? std_test? = twi0
tcb0 all_tcbs?

Affects timer::tcb0

tcb1 all_tcbs?

Affects timer::tcb1

tcb2 all_tcbs?

Affects timer::tcb2

tcb3 all_tcbs?

Affects timer::tcb3

rtc all_tcbs?

Affects timer::rtc

all_tcbs std_build? std_test? = rtc, tcb0, tcb1, tcb2, tcb3
extended_addressing

For CPUs that have rampx/rampy/rampz/eind registers

std_test = 20MHz, all_tcbs, all_twis, all_usarts, arduino_nanoevery, atmega4809, panicout_usart3, runtime_checks

Standard options to build when running tests

std_build = 20MHz, all_tcbs, all_twis, all_usarts, arduino_nanoevery, atmega4809, bootable, panic_handler, panicout_usart3, runtime_checks

Standard options to build & for clippy etc.

std_build_328p = 16MHz, arduino_uno, atmega328p, bootable, panic_handler, panicout_usart0, runtime_checks
runtime_checks std_build? std_build_328p? std_test?

Enable runtime sanity checks