avrdude.md 4.72 KB

DMBS - Dean's Makefile Build System

Module: AVRDUDE

The AVRDUDE module provides build targets for use with the official open source AVRDUDE programmer utility, for the reprogramming of Atmel devices using a wide variety of official and non-official programming devices and bootloaders.

Importing This Module into a Makefile:

To use this module in your application makefile, add the following code to your makefile:

include $(DMBS_PATH)/avrdude.mk

Prerequisites:

This module requires the avrdude utility to be available in your system's PATH variable. The avrdude utility is distributed on the project's official site but is also made available in many *nix operating system's package managers.

Build Targets:

The following targets are supported by this module:

avrdude-lfuse Program the device low fuse. Requires AVRDUDE_LFUSE variable set. avrdude-hfuse Program the device high fuse. Requires AVRDUDE_HFUSE variable set. avrdude-efuse Program the device extended fuse. Requires AVRDUDE_EFUSE variable set. avrdude-lock Program the device lock bits. Requires AVRDUDE_LOCK variable set. avrdude-fuses Program the device fuses (lfuse, hfuse, efuse, lock bits). avrdude Program the device FLASH memory with the application's executable data. avrdude-ee Program the device EEPROM memory with the application's EEPROM data. avrdude-all Same as avrdude + avrdude-fuses. avrdude-all-ee Same as avrdude + avrdude-ee + avrdude-fuses.

Mandatory Variables:

The following variables must be defined (with a NAME = VALUE syntax, one variable per line) in the user makefile to be able to use this module:

MCU Name of the Atmel processor model (e.g. at90usb1287). TARGET Name of the application output file prefix (e.g. TestApplication).

Optional Variables:

The following variables may be defined (with a NAME = VALUE syntax, one variable per line) in the user makefile. If not specified, a default value will be assumed.

AVRDUDE_PROGRAMMER Name of the programmer/debugger tool or bootloader to communicate with (e.g. jtagicemkii). Default is jtagicemkii. AVRDUDE_PORT Name of the communication port to use when when programming with a serially connected tool (e.g. COM2). Default is usb. AVRDUDE_FLAGS Additional flags to pass to avrdude when invoking the tool. Default is empty (no additional flags). AVRDUDE_MEMORY Memory space to program when executing the avrdude target (e.g. 'applicationfor an XMEGA device). Default isflash.</td> </tr> <td>AVRDUDE_BAUD</td> <td>Baud rate to use when executing theavrdudetarget (e.g. '115200 for an Optiboot device). Default is empty. AVRDUDE_HFUSE Fuse setting to use when executing the avrdude-hfuse target (format: 0x??). Default is empty. AVRDUDE_EFUSE Fuse setting to use when executing the avrdude-efuse target (format: 0x??). Default is empty. AVRDUDE_LFUSE Fuse setting to use when executing the avrdude-lfuse target (format: 0x??). Default is empty. AVRDUDE_LOCK Bit bits setting to use when executing the avrdude-lock target (format: 0x??). Default is empty.

Provided Variables:

The following variables may be referenced in a user makefile (via $(NAME) syntax) if desired, as they are provided by this module.

N/A This module provides no variables.

Provided Macros:

The following macros may be referenced in a user makefile (via $(call NAME, ARG1, ARG2, ...) syntax) if desired, as they are provided by this module.

N/A This module provides no macros.

Module Changelog:

The changes to this module since its initial release are listed below, as of the DMBS version where the change was made.

20160403

Initial release.