[package] name = "avr-oxide" version = "0.4.2" edition = "2018" authors = [ "Tim Walls " ] license = "BSD-3-Clause" description = "An extremely simple Rusty operating system for AVR microcontrollers" documentation = "https://rustdoc.avroxi.de/avr_oxide/" homepage = "https://avroxi.de/" repository = "https://gitlab.com/snowgoonspub/avr-oxide" readme = "README.md" build = "build.rs" exclude = [ "/cicd", "/avroxi.de", "/templates" ] [workspace] members = [ "crates/*" ] exclude = [ "macrosrc", "testapps" ] [package.metadata.docs.rs] features = [ "std_test" ] all-features = false default-target = "x86_64-unknown-linux-gnu" targets = [] cargo-args = ["-Z","build-std=alloc"] [lib] [features] # Standard panic handler implementation panic_handler = [] # Target device configuration atmega4809 = [ "porta", "portb", "portc", "portd", "porte", "portf" ] atmega328p = [ "portb", "portc", "portd" ] 20MHz = [] 16MHz = [] power_low = [] power_med = [] # GPIO ports (compile enabled to let us save RAM in some structures) porta = [] portb = [] portc = [] portd = [] porte = [] portf = [] # Configurable PANICOUT support panicout_usart0 = [ "panicout", "usart0" ] panicout_usart1 = [ "panicout", "usart1" ] panicout_usart2 = [ "panicout", "usart2" ] panicout_usart3 = [ "panicout", "usart3" ] panicout = [] # Enable/disable boot code bootable = [] # Arduino and other board compatibility arduino_nanoevery = [ "atmega4809", "usart3", "arduino", "boardcompat"] arduino_uno = [ "atmega328p", "usart0", "arduino", "boardcompat"] atmega4809_xplained_pro = [ "atmega4809", "atmega_xplained", "boardcompat" ] atmega_xplained = [] arduino = [] boardcompat = [] # Enable if 32 bit division actually works 32BitDiv = [] # Optional hardware devices usart0 = [] usart1 = [] usart2 = [] usart3 = [] all_usarts = [ "usart0", "usart1", "usart2", "usart3" ] twi0 = [] all_twis = [ "twi0" ] tcb0 = [] tcb1 = [] tcb2 = [] tcb3 = [] rtc = [] all_tcbs = [ "tcb0", "tcb1", "tcb2", "tcb3", "rtc" ] # For CPUs that have rampx/rampy/rampz/eind registers extended_addressing = [] # Standard options to build when running tests std_test = [ "runtime_checks", "atmega4809", "20MHz", "panicout_usart3", "all_twis", "all_usarts", "all_tcbs", "arduino_nanoevery" ] # Standard options to build & for clippy etc. std_build = [ "runtime_checks", "atmega4809", "20MHz", "panicout_usart3", "all_twis", "all_usarts", "all_tcbs", "bootable", "panic_handler", "arduino_nanoevery" ] std_build_328p = [ "runtime_checks", "atmega328p", "16MHz", "panicout_usart0", "bootable", "panic_handler", "arduino_uno" ] # Enable runtime sanity checks runtime_checks = [] [build-dependencies] [dependencies] oxide-macros = { path = "macrosrc", version = "0.4.2" } ufmt = { version = "0.1" } ufmt-write = { version = "0.1" } [profile.dev] panic = "abort" debug = false opt-level = "s" lto = true overflow-checks = false [profile.release] panic = "abort" codegen-units = 1 opt-level = "s" debug = false