A template for AVR executable (non-library) projects

Overview

Rust AVR executable template

A template for Rust based AVR executables.

NOTE: This software template repository is offered in the public domain. It is free to use, adapt, modify, distribute, with no restrictions and no crediting required.

Provides:

  • A Rust target specification JSON for ATmega328P - avr-atmega328p.json
  • A GitHub-action based CI test pipeline

Build instructions

Install Rust nightly.

Then run:

cargo build --target avr-atmega328p.json -Z build-std=core --release

The final ELF executable file will then be available at target/avr-atmega328p/release/template-bin.elf.

You might also like...
A minimalistic cross-platform malware scanner with non-blocking realtime filesystem monitoring using YARA rules.
A minimalistic cross-platform malware scanner with non-blocking realtime filesystem monitoring using YARA rules.

Sauron is a minimalistic, YARA based malware scanner with realtime filesystem monitoring written in Rust. Features Realtime scan of created and modifi

ARYA Network is a polkadot/substrate based chain for Non-fungible Token platform on which we can own sell and buy the NFT's on polkadot network.

ARYA Network ARYA Network is a polkadot/substrate based chain for Non-fungible Token platform on which we can own sell and buy the NFT's on polkadot n

Expose various non-cryptographic hashing functions with Digest traits

noncrypto-digests Expose various non-cryptographic hashing functions with Digest traits. This allows users to use any hashing function with the same t

A fast, non-cryptographic, minimally DoS-resistant hashing algorithm for Rust.
A fast, non-cryptographic, minimally DoS-resistant hashing algorithm for Rust.

Foldhash This repository contains foldhash, a fast, non-cryptographic, minimally DoS-resistant hashing algorithm implemented in Rust designed for comp

Utilities for working with native solc and compiling projects.

foundry-compilers Utilities for working with native solc and compiling projects. To also compile contracts during cargo build (so that ethers abigen!

Designed for rapid iteration in IC Canister development projects.

IC_Utils Designed for rapid iteration in IC Canister development projects. IcContext IcContext provides the context for ic canister object invocation,

Generate Nice Solana Address By Template

Yes, I know about GPU generators. https://smith-mcf.medium.com/solana-vanity-address-using-gpus-5a68ad94d1d4 ./solana-nice-address --help solana-nice-

Substrate Node Template Generator

Substrate Node Template Generator A tool to generate stand-alone node templates of a customized Substrate clients used in "Substrate Library Extension

Simple template for building smart contract(Rust) and RPC Client(web3.js) on Solana (WIP) โ›๐Ÿ‘ท๐Ÿšงโš ๏ธ
Simple template for building smart contract(Rust) and RPC Client(web3.js) on Solana (WIP) โ›๐Ÿ‘ท๐Ÿšงโš ๏ธ

Solana BPF Boilerplate Simple template for building smart contract(Rust) and RPC Client(web3.js) on Solana This boilerplate provides the following. Si

Comments
  • Build failed

    Build failed

    Hi, I tried to compile the template, but it failed. I tried it on Lubuntu 20.04 64 bit and on Ubuntu Mate 18.04 on a Odroid N2. I also tried the blink example with the same result. I followed the instructions in the Rust Avr book

    odroid@odroid:~/dev/rustavr$ git clone https://github.com/avr-rust/template-bin.git
    Klone nach 'template-bin' ...
    remote: Enumerating objects: 68, done.
    remote: Counting objects: 100% (68/68), done.
    remote: Compressing objects: 100% (39/39), done.
    remote: Total 68 (delta 27), reused 61 (delta 20), pack-reused 0
    Entpacke Objekte: 100% (68/68), Fertig.
    odroid@odroid:~/dev/rustavr$ cd template-bin/
    odroid@odroid:~/dev/rustavr/template-bin$ rustup override set nightly
    info: using existing install for 'nightly-aarch64-unknown-linux-gnu'
    info: override toolchain for '/home/odroid/dev/rustavr/template-bin' set to 'nightly-aarch64-unknown-linux-gnu'
    
      nightly-aarch64-unknown-linux-gnu unchanged - rustc 1.48.0-nightly (8876ffc92 2020-10-02)
    
    odroid@odroid:~/dev/rustavr/template-bin$ cargo build --target avr-atmega328p.json -Z build-std=core --release
        Updating crates.io index
      Downloaded avr-std-stub v1.0.2
      Downloaded 1 crate (2.7 KB) in 1.18s
       Compiling core v0.0.0 (/home/odroid/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/src/rust/library/core)
       Compiling compiler_builtins v0.1.35
       Compiling rustc-std-workspace-core v1.99.0 (/home/odroid/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/src/rust/library/rustc-std-workspace-core)
    error: could not compile `core`
    
    Caused by:
      process didn't exit successfully: `rustc --crate-name core --edition=2018 /home/odroid/.rustup/toolchains/nightly-aarch64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C metadata=df014d755aa4223c -C extra-filename=-df014d755aa4223c --out-dir /home/odroid/dev/rustavr/template-bin/target/avr-atmega328p/release/deps --target /home/odroid/dev/rustavr/template-bin/avr-atmega328p.json -Z force-unstable-if-unmarked -L dependency=/home/odroid/dev/rustavr/template-bin/target/avr-atmega328p/release/deps -L dependency=/home/odroid/dev/rustavr/template-bin/target/release/deps --cap-lints allow` (signal: 11, SIGSEGV: invalid memory reference)
    warning: build failed, waiting for other jobs to finish...
    error: build failed
    

    Any suggestions?

    opened by MarkuBu 4
Owner
The AVR-Rust project
A fork of Rust with AVR microcontroller support
The AVR-Rust project
Extensible, Minimal Template for Sway Projects

crib โ€ข Extensible, Minimal Template for Sway Projects. Developing First Time? New to rust? Install with: curl --proto '=https' --tlsv1.2 -sSf https://

andreas 17 Jul 31, 2022
Template for multi-contract CosmWasm projects

CosmWasm Template Template for multi-contract CosmWasm projects How to Use Install cargo-make: cargo install --force cargo-make Run formatter: cargo m

null 11 Jan 28, 2023
A template for developing Rust projects, with sensible defaults

Rust Template A template for developing Rust projects, with sensible defaults. Getting Started Click the Use this template button at the top of the pa

Paul Razvan Berg 39 Feb 22, 2023
CLI tool for deterministically building and verifying executable against on-chain programs or buffer accounts

Solana Verify CLI A command line tool to build and verify solana programs. Users can ensure that the hash of the on-chain program matches the hash of

Ellipsis Labs 5 Jan 30, 2023
Metaplex is a protocol built on top of Solana that allows: Creating/Minting non-fungible tokens;

Metaplex is a protocol built on top of Solana that allows: Creating/Minting non-fungible tokens; Starting a variety of auctions for primary/secondary

Metaplex Foundation 3.2k Jan 4, 2023
Bespoke toolkit for Non-fungible token (NFT) technology ๐Ÿš€

Bespoke toolkit for Non-fungible token (NFT) technology ?? What is Onft? Instead of forcing a consensus algorithm or peer networking on you, Onft prov

Owez 5 Jan 9, 2022
DIP721 - An Internet Computer Non-fungible Token Standard

DIP721 - Introduction DIP721 is an ERC-721 style non-fungible token standard built mirroring its Ethereum counterpart and adapting it to the Internet

Psychedelic 48 Nov 24, 2022
Fastmurmur3 - Fast non-cryptographic hash, with the benchmarks to prove it.

Fastmurmur3 Murmur3 is a fast, non-cryptographic hash function. fastmurmur3 is, in my testing, the fastest implementation of Murmur3. Usage let bytes:

Kurt Wolf 13 Dec 2, 2022
Bitcoin Push Notification Service (BPNS) allows you to receive notifications of Bitcoin transactions of your non-custodial wallets on a provider of your choice, all while respecting your privacy

Bitcoin Push Notification Service (BPNS) Description Bitcoin Push Notification Service (BPNS) allows you to receive notifications of Bitcoin transacti

BPNS 1 May 2, 2022
Generates a Nix expression for buildDotnetModule, with support for non nuget.org repos.

nuget2nix Generates a Nix expression for buildDotnetModule, with support for non nuget.org repos. Usage Similar to the nuget-to-nix command available

Winter 9 Dec 10, 2022