Skip to main content

AVR support for pymcu-compiler: codegen backend + toolchain driver

Project description

pymcu-avr

AVR (ATmega/ATtiny) backend for the PyMCU compiler. Free and open source.

Bundles the pymcuc-avr AOT binary that reads .mir IR files and emits AVR assembly, then drives the AVR toolchain to produce a flashable Intel HEX file.

Pipeline

pymcuc --emit-ir        →  firmware.mir    (target-agnostic IR)
pymcuc-avr (this pkg)   →  firmware.asm    (AVR assembly)
avr-as / avra           →  firmware.hex    (Intel HEX)

Installation

pip install pymcu-avr

The AVR toolchain (avr-gcc, avr-as, avr-objcopy) is sourced (in order) from the pymcu-avr-toolchain wheel cache, common system install paths, or PATH. A system avr-gcc also works with no extra package:

# macOS
brew tap osx-cross/avr && brew install avr-gcc

# Debian/Ubuntu
apt install gcc-avr binutils-avr avr-libc

Supported targets

Families: atmega, attiny, at90, atxmega.
Examples: ATmega328P, ATmega2560, ATmega32U4, ATtiny85.

Layout

src/python/pymcu/backend/avr/     backend plugin — wraps pymcuc-avr
src/python/pymcu/toolchain/avr/   AVR toolchain driver (assemble → HEX)
src/csharp/lib/                   AvrBackendProvider + codegen
src/csharp/cli/                   pymcuc-avr runner CLI
src/csharp/debugserver/           GDB-stub debug server
src/csharp/profiler/              cycle-accurate profiler

Status

Alpha (API) / stable (codegen). 700+ integration tests green across ATmega328P, ATmega2560, ATmega32U4, ATtiny85.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pymcu_avr-0.1.0a1.post2-py3-none-win_arm64.whl (2.4 MB view details)

Uploaded Python 3Windows ARM64

pymcu_avr-0.1.0a1.post2-py3-none-win_amd64.whl (2.5 MB view details)

Uploaded Python 3Windows x86-64

pymcu_avr-0.1.0a1.post2-py3-none-manylinux_2_28_x86_64.whl (2.8 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

pymcu_avr-0.1.0a1.post2-py3-none-manylinux_2_28_aarch64.whl (2.6 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

pymcu_avr-0.1.0a1.post2-py3-none-macosx_15_0_arm64.whl (2.6 MB view details)

Uploaded Python 3macOS 15.0+ ARM64

pymcu_avr-0.1.0a1.post2-py3-none-macosx_13_0_x86_64.whl (2.8 MB view details)

Uploaded Python 3macOS 13.0+ x86-64

File details

Details for the file pymcu_avr-0.1.0a1.post2-py3-none-win_arm64.whl.

File metadata

  • Download URL: pymcu_avr-0.1.0a1.post2-py3-none-win_arm64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pymcu_avr-0.1.0a1.post2-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 b71f6cb6abd408441f5401e96e997ce85b5295e911a98ea7678a8db30a9fad65
MD5 76a6f06a0f9b86932a38a77407764892
BLAKE2b-256 a9631d65b015883f7b152d0f3d270fe92bb78ffeaa30fb9d215112f5a3be9f44

See more details on using hashes here.

File details

Details for the file pymcu_avr-0.1.0a1.post2-py3-none-win_amd64.whl.

File metadata

  • Download URL: pymcu_avr-0.1.0a1.post2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pymcu_avr-0.1.0a1.post2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 095ee9a5397b758636dc04f56ce747017151fceb47f853cf383dc873f6a53281
MD5 6ba9fa7aa6ad8c1f1e579b3b49c6c14a
BLAKE2b-256 48475972b429af13337bf421a529765e761e17f31ca1c7f1a0c2a659127292cc

See more details on using hashes here.

File details

Details for the file pymcu_avr-0.1.0a1.post2-py3-none-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: pymcu_avr-0.1.0a1.post2-py3-none-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: Python 3, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pymcu_avr-0.1.0a1.post2-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 843eae8cf4f90cedded1a6efea357a68f7e3a5d5328c514f1da47ab50e7e5300
MD5 286c2308f2b2635138eb15eedb8e7bec
BLAKE2b-256 e407e486d055fb9fa93c96ab0bc7bfe86022f5df4e1da63d5d5deee2ddd9fe2b

See more details on using hashes here.

File details

Details for the file pymcu_avr-0.1.0a1.post2-py3-none-manylinux_2_28_aarch64.whl.

File metadata

  • Download URL: pymcu_avr-0.1.0a1.post2-py3-none-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 3, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pymcu_avr-0.1.0a1.post2-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 274c965c58e8ef422f0d2201f3d4155662cf0db65055b7115d8a73730ea5c612
MD5 a6c71d9137d96ae370153a6078f058e4
BLAKE2b-256 4a6e6d00828c8f9d823470828891f730e1db3e39f12063580cfb969255380eaa

See more details on using hashes here.

File details

Details for the file pymcu_avr-0.1.0a1.post2-py3-none-macosx_15_0_arm64.whl.

File metadata

  • Download URL: pymcu_avr-0.1.0a1.post2-py3-none-macosx_15_0_arm64.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 3, macOS 15.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pymcu_avr-0.1.0a1.post2-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 34207e6cce3111d9cf433f9a290da21d9c9aebf91842d2962698e5e05c10874f
MD5 6794d5a1c01881dbb1ba386889a08b08
BLAKE2b-256 edf8a204d419fa3cd75d39d9129972d3bb8dcbed02e382c2ad5417b1988b4c84

See more details on using hashes here.

File details

Details for the file pymcu_avr-0.1.0a1.post2-py3-none-macosx_13_0_x86_64.whl.

File metadata

  • Download URL: pymcu_avr-0.1.0a1.post2-py3-none-macosx_13_0_x86_64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: Python 3, macOS 13.0+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pymcu_avr-0.1.0a1.post2-py3-none-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e0c9e4a4242f15837b7d58e70999b70a01d53f03f1709032bd5b43c6d51de67d
MD5 36e06781b1ab3ca7101dc43b6740aedf
BLAKE2b-256 78676dcce053d0fffdbd9700b6b03bc2d3246757dfe745ed4bf872c54ee031a7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page