Git Product home page Git Product logo

avra's Introduction

AVRA

Assembler for the Atmel AVR microcontroller family

AVRA is an assembler for Atmel AVR microcontrollers, and it is almost compatible with Atmel's own assembler, AVRASM32. AVRA is written in C99.

Notes about this fork

This was forked to bring in some of the changes to allow AmForth to be able to use avra as the assembler instead of avrasm2.exe. Currently only what is needed to compile avra is in my AmForth fork. The intent is to use my fork as a way to add it into my AmForth as a submodule.

Differences between AVRA and AVRASM32

There are some differences between the original Atmel assembler AVRASM32 and AVRA. Basically, AVRA is designed to replace AVRASM32 without special changes in your current Atmel AVR Studio environment. Command line options have been adapted as far as possible. Jumping to fault-containing lines directly by double-clicking on the error message in the output window does work as with AVRASM32.

The differences in detail

Support for some extra preprocessor directives

.define, .undef, .ifdef, .ifndef, .if, .else, .endif, .elif, .elseif, .warning

Not all command line options are supported

Specifying an eeprom file (-e) is not supported. All eeprom data is put out into a file called program.eep.hex and is always in Intel hex format. Other hex file formats are currently not supported.

Forward references not supported for .ifdef and .ifndef directives

This makes sure that directives like .ifdef and .undef are working as you probably expect. If you are familiar with the C programming language, you should get easily into AVRA.

Enhanced macro support

AVRA has some new features for writing flexible macros. This should increase the ability to reuse code, e.g., build your own library.

Debugging support

AVRA creates a coff file everytime assembly is successful. This file allows AVR Studio or any coff compatible debugger to simulate or emulate the program.

Meta tags for assembly time

This helps you tracking versions of your software and can also be used to generate customer specific serial numbers.

Compatibility

It should be possible to compile AVRA on most system platforms. If you have problems compiling AVRA, please open an issue in the tracker.

History

The initial version of AVRA was written by John Anders Haugum. He released all versions until v0.7. Tobias Weber later took over, followed by Burkhard Arenfeld (v1.2) then Jerry Jacobs (v1.3).

After a long 8 years of inactivity, Virgil Dupras took over, preparing a v1.4 release.

See AUTHORS for a complete list of contributors.

Build

To build the avra executable, cd into the project's root directory and run make. A src/avra binary will be produced. You can install it with make install.

By default, make runs under the linux OS, which assumes a typical GNU toolchain. If that doesn't work for you, look at the available platforms available in src/makefiles and override OS when you call make. Note that those platforms aren't all well tested. Please open an issue in the tracker if you notice a platform not working.

To compile in Windows with MS Visual Studio 2019, you will need additional files. Please see here.

Usage

See USAGE.md.

Change log

See CHANGELOG.md.

avra's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.