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.post1-py3-none-win_arm64.whl (2.4 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

pymcu_avr-0.1.0a1.post1-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.post1-py3-none-manylinux_2_28_aarch64.whl (2.6 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

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

Uploaded Python 3macOS 15.0+ ARM64

pymcu_avr-0.1.0a1.post1-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.post1-py3-none-win_arm64.whl.

File metadata

  • Download URL: pymcu_avr-0.1.0a1.post1-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.post1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 bc87783c9f4146faa58ee119ee40800a864d1ba62ff2b4fd4ad140958b451b2f
MD5 c08508e5ac029cbebc43ebc00aa6e5b9
BLAKE2b-256 b9c44df300e0439c3cd7c54290c099b9a1728a8a45726e054719df0206c4f7f3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymcu_avr-0.1.0a1.post1-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.post1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 260189a5e202eb15062fb82d6cf8ed26b2d0e5fda0454a93da4b4267dc8970c9
MD5 9decf70253d3a7f017a1e69074004c9b
BLAKE2b-256 dc3a191d314166011c88e932c11cb0122adc5aec961f406eefdc7f42118c4c03

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymcu_avr-0.1.0a1.post1-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.post1-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a41fe33d1be5c73e8adf29952ddd6ed5bd21c8b66ff4bcf9f264d87161411000
MD5 29d33fbe84efa7d44379dd9431b01ed4
BLAKE2b-256 3c14b0df0dee010ab4d1592ee9331a9b35066ae9a441408f7d9cf94a03627b7a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymcu_avr-0.1.0a1.post1-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.post1-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 759c0ac492fdda8cdc8b747e6f687786eb1b5cc237e73fb8bde110445bf23681
MD5 84f0ede0ad42a07e491b4b930309420d
BLAKE2b-256 05f3fc6bb6c5775cbc62287f585e84724b6980464eaa06c7a0e1d48d64f3bc83

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymcu_avr-0.1.0a1.post1-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.post1-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 115049d12e949aebbb4f9125ebfa63b7b5744bdeefe1fad5cebb3b2c1d7ad27f
MD5 ba973731b40afcd70e9b23cc8e79f5d0
BLAKE2b-256 998e2572c62ae1bff048deb8f79d2c1fca147b212266adbef1898f748c515b2d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pymcu_avr-0.1.0a1.post1-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.post1-py3-none-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 077cfa2079135bba356b645c9bb12934937183011918c425b9fbb5e8e53bd334
MD5 9ec2354a7b37127a8fb0407418b5c402
BLAKE2b-256 d128e766b1c60d2eb7595344e9469b22a21aa465fcea183bf5ffc9a233b1b30d

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