2021-12-10 21:06:44 +00:00
|
|
|
|
# AVRDUDE
|
|
|
|
|
|
|
|
|
|
AVRDUDE - AVR Downloader Uploader - is a program for downloading and uploading
|
|
|
|
|
the on-chip memories of Microchip’s [AVR microcontrollers](https://en.wikipedia.org/wiki/AVR_microcontrollers).
|
|
|
|
|
It can program the Flash and EEPROM, and where supported by the programming
|
|
|
|
|
protocol, it can program fuse and lock bits.
|
|
|
|
|
AVRDUDE also supplies a direct instruction mode allowing one to issue any
|
|
|
|
|
programming instruction to the AVR chip regardless of whether AVRDUDE
|
|
|
|
|
implements that specific feature of a particular chip.
|
|
|
|
|
|
|
|
|
|
AVRDUDE was originally written in 2003 by Brian S. Dean. Since 2006, AVRDUDE has been maintained by Jörg Wunsch,
|
2021-12-18 21:32:50 +00:00
|
|
|
|
with the help of [various contributors](./AUTHORS).
|
2021-12-17 21:52:27 +00:00
|
|
|
|
|
|
|
|
|
The latest version of AVRDUDE is always available here:\
|
|
|
|
|
<https://github.com/avrdudes/avrdude>
|
2021-12-10 21:06:44 +00:00
|
|
|
|
|
|
|
|
|
## Getting AVRDUDE for Windows
|
|
|
|
|
|
2021-12-18 21:32:50 +00:00
|
|
|
|
To get AVRDUDE for Windows, install the latest version from the [Releases](http://download.savannah.gnu.org/releases/avrdude/) page.
|
2021-12-10 21:06:44 +00:00
|
|
|
|
|
|
|
|
|
Alternatively, you may [build AVRDUDE](#building-avrdude-for-windows) yourself from source.
|
|
|
|
|
|
|
|
|
|
## Getting AVRDUDE for Linux
|
|
|
|
|
|
|
|
|
|
To install AVRDUDE for Linux, install the package `avrdude` by running the following commands:
|
|
|
|
|
|
|
|
|
|
```console
|
|
|
|
|
sudo apt-get install avrdude
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Alternatively, you may [build AVRDUDE](#building-avrdude-for-linux) yourself from source.
|
|
|
|
|
|
2021-12-18 21:32:50 +00:00
|
|
|
|
## Getting AVRDUDE for MacOS
|
|
|
|
|
|
|
|
|
|
On MacOS, AVRDUDE can be installed through Mac Ports.
|
|
|
|
|
|
|
|
|
|
Alternatively, you may [build AVRDUDE](#building-avrdude-for-macos) yourself from source.
|
|
|
|
|
|
2021-12-10 21:06:44 +00:00
|
|
|
|
## Using AVRDUDE
|
|
|
|
|
|
|
|
|
|
AVRDUDE is a command-line application. Run the command `avrdude` without any arguments for a list of options.
|
|
|
|
|
|
|
|
|
|
A typical command to program your HEX file into your AVR microcontroller looks like this:
|
|
|
|
|
|
|
|
|
|
```console
|
|
|
|
|
avrdude -c <programmer> -p <part> -U flash:w:<file>:i
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
For instance, to program an **Arduino Uno** connected to the serial port **COM1** with a HEX file called `blink.hex`,
|
|
|
|
|
you would run the following command:
|
|
|
|
|
|
|
|
|
|
```console
|
|
|
|
|
avrdude -c arduino -P COM1 -b 115200 -p atmega328p -D -U flash:w:objs/blink.hex:i
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
There are many different programmers and options that may be required for the programming to succeed.
|
|
|
|
|
For more information, refer to the [AVRDUDE documentation](#todo).
|
|
|
|
|
|
2021-12-18 21:32:50 +00:00
|
|
|
|
## General build instructions
|
|
|
|
|
|
|
|
|
|
### Prerequisites
|
|
|
|
|
|
|
|
|
|
Depending on your requirements, the following prerequisites are
|
|
|
|
|
needed:
|
|
|
|
|
|
|
|
|
|
* libelf including header files (for directly reading ELF files)
|
|
|
|
|
* libusb 0.1 or 1.0 (or compatible), including header files
|
|
|
|
|
* libftdi or libftdi1 (for direct access to FTDI devices)
|
|
|
|
|
* libhidapi or libhid (for access to recent Atmel/Microchip dongles)
|
|
|
|
|
|
|
|
|
|
### Building
|
|
|
|
|
|
|
|
|
|
All source code is located in the `src/` subdirectory. Thus all
|
|
|
|
|
instructions are relative to that directory.
|
|
|
|
|
|
|
|
|
|
Source-code releases contain an up-to-date configure script that
|
|
|
|
|
can be run to generate the required Makefiles:
|
|
|
|
|
|
|
|
|
|
```console
|
|
|
|
|
cd src && ./configure && make && sudo make install
|
|
|
|
|
```
|
|
|
|
|
At the end of the configure script, a configuration summary is issued,
|
|
|
|
|
like this:
|
|
|
|
|
|
|
|
|
|
```console
|
|
|
|
|
Configuration summary:
|
|
|
|
|
----------------------
|
|
|
|
|
DO HAVE libelf
|
|
|
|
|
DO HAVE libusb
|
|
|
|
|
DO HAVE libusb_1_0
|
|
|
|
|
DO HAVE libftdi1
|
|
|
|
|
DON'T HAVE libftdi
|
|
|
|
|
DON'T HAVE libhid
|
|
|
|
|
DO HAVE libhidapi
|
|
|
|
|
DO HAVE pthread
|
|
|
|
|
DISABLED doc
|
|
|
|
|
DISABLED parport
|
|
|
|
|
DISABLED linuxgpio
|
|
|
|
|
DISABLED linuxspi
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Make sure all the features you are interested in have been found.
|
|
|
|
|
|
|
|
|
|
Building the development source tree might possibly require to
|
|
|
|
|
re-generate the configure script using the autoconf/automake
|
|
|
|
|
tools. This can be done using the `bootstrap` script:
|
|
|
|
|
|
|
|
|
|
```console
|
|
|
|
|
cd src && ./bootstrap
|
|
|
|
|
```
|
|
|
|
|
|
2021-12-10 21:06:44 +00:00
|
|
|
|
## Building AVRDUDE for Windows
|
|
|
|
|
|
|
|
|
|
### Windows Prerequisites
|
|
|
|
|
|
|
|
|
|
TODO.
|
|
|
|
|
|
|
|
|
|
### Windows Build Instructions
|
|
|
|
|
|
|
|
|
|
TODO.
|
|
|
|
|
|
|
|
|
|
## Building AVRDUDE for Linux
|
|
|
|
|
|
|
|
|
|
### Linux Prerequisites
|
|
|
|
|
|
|
|
|
|
To build AVRDUDE for Linux, you need to install the following packages:
|
|
|
|
|
|
|
|
|
|
```console
|
|
|
|
|
sudo apt-get install build-essential git automake libtool flex bison libelf-dev libusb-dev libftdi1-dev libhidapi-dev
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
To build the documentation, you need to install the following packages:
|
|
|
|
|
|
|
|
|
|
```console
|
|
|
|
|
sudo apt-get install texlive texi2html
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Linux Build Instructions
|
|
|
|
|
|
|
|
|
|
To build AVRDUDE for Linux, run the following commands:
|
|
|
|
|
|
|
|
|
|
```console
|
|
|
|
|
git clone https://github.com/avrdudes/avrdude
|
|
|
|
|
cd avrdude
|
|
|
|
|
./bootstrap
|
|
|
|
|
./configure
|
|
|
|
|
make
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
To build the documentation for AVRDUDE, run the following commands:
|
|
|
|
|
|
|
|
|
|
```console
|
|
|
|
|
cd doc
|
|
|
|
|
make all
|
|
|
|
|
```
|
|
|
|
|
|
2021-12-18 21:32:50 +00:00
|
|
|
|
## Building AVRDUDE for MacOS
|
|
|
|
|
|
|
|
|
|
### Prerequisites
|
|
|
|
|
|
|
|
|
|
The following things are needed to build AVRDUDE on MacOS:
|
|
|
|
|
|
|
|
|
|
* a C compiler; either full XCode, or the XCode Command Line tools
|
|
|
|
|
* autoconf, automake, libtool, hidapi, libftdi1, libusb, libelf;
|
|
|
|
|
they can be installed e.g. from Mac Ports using
|
|
|
|
|
```console
|
|
|
|
|
port install autoconf automake \
|
|
|
|
|
libtool hidapi libftdi1 libusb libelf
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Compilation
|
|
|
|
|
|
|
|
|
|
Depending on the location of the prerequisites, the `CPPFLAGS` and
|
|
|
|
|
`LDFLAGS` variables need to be set accordingly. Mac Ports installs
|
|
|
|
|
everything under `/opt/local`, so use
|
|
|
|
|
|
|
|
|
|
```console
|
|
|
|
|
./configure CPPFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
MacOS Brew requires
|
|
|
|
|
|
|
|
|
|
```console
|
|
|
|
|
./configure CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/Cellar
|
|
|
|
|
```
|
|
|
|
|
|