Welcome to AVR Studio

AVR Studio is an Integrated Development Environment (IDE) for writing and debugging AVR applications in Windows XPSP3/VISTA/7 x32/64 environments. AVR Studio provides a project management tool, source file editor, simulator,assembler and front-end for C/C++, programming, emulation and on-chip debugging.

AVR Studio supports the complete range of ATMEL AVR tools and each release will always contain the latest updates for both the tools and support of new AVR devices.

AVR Studio 4 has a modular architecture which allows even more interaction with 3rd party software vendors. GUI plug-ins and other modules can be written and hooked to the system. Please contact us if you are interested in more information about this.

© Copyright ATMEL Corporation. All rights reserved. AVR and AVR Studio are trademarks of ATMEL Corporation. Windows Vista, Windows XP, Windows 98, Windows NT, Windows 2000 and Windows ME are trademarks of Microsoft Corporation.


Release Note

Welcome to AVR Studio 4.19 (08/2011)

Please see release history for information about earlier releases.

Prerequisites: Note that the AVR Studio 4.19 is a complete installation and contains all previous service Packs (SP).

Part support

The following new parts have been added to AVR Studio since 4.18 SP3:

-ATtiny84A,ATtiny1634,ATmega3250PA,ATmega325PA,ATmega3290PA,ATXMEGA16A4U,ATXMEGA32A4U,
ATXMEGA64A3U,ATXMEGA128A3U,ATXMEGA192A3U,ATXMEGA256A3U,ATXMEGA256A3BU

Check the device matrix to see which devices are supported by which tools: See a list of all supported devices and tools here.

The following additional devices are supported by simulator2 in AVR Studio 4.19:

* ATtiny24 / ATtiny24A
* ATtiny44 / ATtiny44A
* ATtiny84 / ATtiny84A
* ATtiny26
* ATmega8 / ATmega8A
* ATmega16 / ATmega16A
* ATmega32 / ATmega32A
* ATmega64 / ATmega64A
* ATmega2560
* ATmega2561
* ATmega640

Bug Fixes

13075 - avrdragon.exe not able generate .cac file in Windows 7 64 bit
13735 - AVRISPmkII: STK500 command line utility doesn't correctly verify fuses for ELF files
12257 - Only SP1 includes QT600Upgrade, SP2 and SP3 does not include
11109 - ATtiny261/461/861 PINA register does not work correctly
13434 - External interrupt rising flank on tiny2313 triggers on both flanks
13959 - External interrupt rising flank on xmega128a1 triggers on both flanks
12515 - Xmega16D4 is not setting ADC MUX registers
14565 - Wrong PC mask in ATmega32 model
14622 - Timer 0 output compare & overflow interrupts don't work on ATmega64

Known Issues

- ATmega8: Problem with Waveform Generation Mode bits -> AVR Tools-Simulator-Known Issues

- Autodetection of wrong device selected by user in a debug session is not working for all variants (P, PA, A) of the following devices:
ATmega165, ATmega169, ATmega645, ATmega649, ATmega325, ATmega329
Workaround: Make sure the selected device matches the target device used.

Note

Windows 95 is no longer supported by AVR Studio. The most recent version that supported Windows 95 was AVR Studio 4.12 SP3.
Windows 98 is no longer supported by AVR Studio. The most recent version that supported Windows 98 was AVR Studio 4.16 SP1.

See also
Tools and device support
Known issues
ICE50 User guide
Simulator User guide
AVRASM2 User guide
AVR GCC IDE user guide


Debug platform and device support

Tools and device support

AVR Studio 4 support all new Atmel AVR debug platforms and devices. See below for a table of currently supported tools and devices in AVR Studio 4. New supported devices and platforms marked in red bold.

 | Simulator | ICE50 | JTAGICE mkII | AVR ONE! | JTAGICE | ICE200 | AVR Dragon | STK500/ISP/mkII | AVRISP mkII | QT600 | STK600 | AVRASM2
tinyAVR |  |  |  |  |  |  |  |  |  |  |  |
ATtiny4 | a |  |  |  |  |  |  |  | a |  | a | a
ATtiny5 | a |  |  |  |  |  |  |  | a |  | a | a
ATtiny9 | a |  |  |  |  |  |  |  | a |  | a | a
ATtiny10 | a |  |  |  |  |  |  |  | a |  | a | a
ATtiny11 | a |  |  |  |  |  | HVSP | a |  |  | a | a
ATtiny12 | a |  |  |  |  | a | ISP/HVSP | a | a |  | a | a
ATtiny13 | a | a | a | a |  |  | ISP/HVSP/dW | a | a |  | a | a
ATtiny13A | a | a | a | a |  |  | ISP/HVSP/dW | a | a |  | a | a
ATtiny15 | a |  |  |  |  |  | ISP/HVSP | a | a |  | a | a
ATtiny20 | a |  |  |  |  |  |  |  | a | a | a | a
ATtiny40 | a |  |  |  |  |  |  |  | a |  | a |
ATtiny22 | a |  |  |  |  |  |  | a | a |  | a | a
ATtiny2313 | a | a | a | a |  |  | ISP/HVSP/dW | a | a |  | a | a
ATtiny2313A | a | a | a | a |  |  | ISP/HVSP/dW | a | a |  | a | a
ATtiny4313 | a | a | a | a |  |  | ISP/HVSP/dW | a | a |  | a | a
ATtiny24 | a |  | a | a |  |  | ISP/HVSP/dW | aSTK505 | a |  | a | a
ATtiny25 | a | a | a | a |  |  | ISP/HVSP/dW | a | a |  | a | a
ATtiny26 | a | a |  |  |  |  | ISP/PP | a | a |  | a | a
ATtiny28 | a |  |  |  |  |  | PP | a |  |  | a | a
ATtiny43U | a |  | a | a |  |  | ISP/PP/dW | ISP Only | a |  | a | a
ATtiny44 | a |  | a | a |  |  | ISP/HVSP/dW | aSTK505 | a |  | a | a
ATtiny45 | a | a | a | a |  |  | ISP/HVSP/dW | a | a |  | a | a
ATtiny48 | a |  | a | a |  |  | ISP/HVSP/dW | a | a |  | a | a
ATtiny84 | a |  | a | a |  |  | ISP/HVSP/dW | aSTK505 | a |  | a | a
ATTiny85 | a | a | a | a |  |  | ISP/HVSP/dW | a | a |  | a | a
ATtiny87 | a |  | a | a |  |  | ISP/HVSP/dW | a | a |  | a | a
ATtiny88 | a |  | a | a |  |  | ISP/HVSP/dW | a | a | a | a | a
ATtiny167 | a |  | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATtiny261A | a |  | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATtiny261 | a | a | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATtiny461A | a |  |  | a |  |  | ISP/PP/dW | a | a |  | a | a
ATtiny461 | a | a |  | a |  |  | ISP/PP/dW | a | a |  | a | a
ATtiny861A | a |  | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATtiny861 | a | a | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATtiny24A | a |  | a | a |  |  | ISP/HVSP/dW | aSTK505 | a |  | a | a
ATtiny44A | a |  | a | a |  |  | ISP/HVSP/dW | aSTK505 | a |  | a | a
ATtiny84A | a |  | a | a |  |  | ISP/HVSP/dW |  | a |  | a | a
ATtiny1634 | a |  |  |  |  |  |  |  | a |  | a | a
classicAVR |  |  |  |  |  |  |  |  |  |  |  |
AT90S1200 | a |  |  |  |  |  |  | a | a |  |  | a
AT90S2313 | a |  |  |  |  | a |  | a | a |  |  | a
AT90S2323 | a |  |  |  |  |  |  | a | a |  |  | a
AT90S2343 | a |  |  |  |  |  |  | a | a |  |  | a
AT90S4433 | a |  |  |  |  | a |  | a | a |  |  | a
AT90S8515 | a | au |  |  |  | a |  | a | a |  |  | a
AT90S8535 | a | au |  |  |  | a |  | a | a |  |  | a
megaAVR |  |  |  |  |  |  |  |  |  |  |  |
ATmega8 | a | a |  |  |  |  | ISP/PP | a | a |  | a | a
ATmega8A | a | a |  |  |  |  | ISP/PP | a | a |  | a | a
ATmega8515 | a | a |  |  |  |  | ISP/PP | a | a |  | a | a
ATmega8535 | a | a |  |  |  |  | ISP/PP | a | a |  | a | a
ATmega16 | a | a | a | a | a |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega16A | a | a | a | a | a |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega32 | a | a | a | a | a |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega32A | a | a | a | a | a |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega48 | a | a | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATmega48P | a |  | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATmega48A | a |  | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATmega48PA | a |  | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATmega88 | a | a | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATmega88P | a |  | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATmega168 | a | a | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATmega168P | a |  | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATmega323 | a |  | a |  | a |  |  | a | a |  | a | a
ATmega161 | a | au |  |  |  |  |  | a | a |  | a | a
ATmega162 | a | a | a | a | a |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega163 | a |  |  |  |  |  |  | a | a |  | a | a
ATmega64 | a | a | a | a | a |  | ISP/PP/JP | aSTK501 | a |  | a | a
ATmega64A | a | a | a | a | a |  | ISP/PP/JP | aSTK501 | a |  | a | a
ATmega103 | a | au |  |  | a |  |  | aSTK501 | a |  | a | a
ATmega128 | a | a | a | a | a |  | ISP/PP/JP | aSTK501 | a |  | a | a
ATmega128A | a | a | a | a | a |  | ISP/PP/JP | aSTK501 | a |  | a | a
ATmega165 | a | a | a | a |  |  | ISP/PP/JP/JD | aSTK502 | a |  | a | a
ATmega165A | a | a | a | a |  |  | ISP/PP/JP/JD | aSTK502 | a |  | a | a
ATmega165P | a |  | a | a |  |  | ISP/PP/JP/JD | aSTK502 | a |  | a | a
ATmega169A | a | a | a | a | a |  | ISP/PP/JP/JD | aSTK502 | a |  | a | a
ATmega169 | a | a | a | a | a |  | ISP/PP/JP/JD | aSTK502 | a |  | a | a
ATmega169PA | a |  | a | a |  |  | ISP/PP/JP/JD | aSTK502 | a |  | a | a
ATmega169P | a |  | a | a |  |  | ISP/PP/JP/JD | aSTK502 | a |  | a | a
ATmega324A | a |  | a | a |  |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega324P | a |  | a | a |  |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega325A | a | a | a | a |  |  | ISP/PP/JP/JD | aSTK502 | a |  | a | a
ATmega325 | a | a | a | a |  |  | ISP/PP/JP/JD | aSTK502 | a |  | a | a
ATmega3250 | a |  | a | a |  |  | ISP/PP/JP/JD | aSTK504 | a |  | a | a
ATmega3250PA | a |  | a | a |  |  | ISP/PP/JP/JD |  | a |  | a | a
ATmega328 | a |  | a | a |  |  | ISP/PP/JP/JD | aSTK504 | a |  | a | a
ATmega328P | a |  | a | a |  |  | ISP/PP/JP/JD | aSTK504 | a |  | a | a
ATmega329A | a | a | a | a |  |  | ISP/PP/JP/JD | aSTK502 | a |  | a | a
ATmega329 | a | a | a | a |  |  | ISP/PP/JP/JD | aSTK502 | a |  | a | a
ATmega3290 | a |  | a | a |  |  | ISP/PP/JP/JD | aSTK504 | a |  | a | a
ATmega3250P | a |  | a | a |  |  | ISP/PP/JP/JD | aSTK504 | a |  | a | a
ATmega325P | a |  | a | a |  |  | ISP/PP/JP/JD | aSTK502 | a |  | a | a
ATmega325PA | a |  | a | a |  |  | ISP/PP/JP/JD |  | a |  | a | a
ATmega3290P | a |  | a | a |  |  | ISP/PP/JP/JD | aSTK504 | a |  | a | a
ATmega3290PA | a |  | a | a |  |  | ISP/PP/JP/JD |  | a |  | a | a
ATmega329P | a |  | a | a |  |  | ISP/PP/JP/JD | aSTK502 | a |  | a | a
ATmega329PA | a |  | a | a |  |  | ISP/PP/JP/JD | aSTK502 | a |  | a | a
ATmega644A | a | a | a | a |  |  | ISP/PP/JP | a | a |  | a | a
ATmega644P | a | a | a | a |  |  | ISP/PP/JP | a | a |  | a | a
ATmega645A | a | a | a | a |  |  | ISP/PP/JP | aSTK502 | a |  | a | a
ATmega645 | a | a | a | a |  |  | ISP/PP/JP | aSTK502 | a |  | a | a
ATmega6450A | a |  | a | a |  |  | ISP/PP/JP | aSTK504 | a |  | a | a
ATmega6450 | a |  | a | a |  |  | ISP/PP/JP | aSTK504 | a |  | a | a
ATmega6490A | a |  | a | a |  |  | ISP/PP/JP | aSTK504 | a |  | a | a
ATmega6490 | a |  | a | a |  |  | ISP/PP/JP | aSTK504 | a |  | a | a
ATmega649P | a |  | a | a |  |  | ISP/PP/JP | aSTK502 | a |  | a | a
ATmega649A | a | a | a | a |  |  | ISP/PP/JP | aSTK502 | a |  | a | a
ATmega649 | a | a | a | a |  |  | ISP/PP/JP | aSTK502 | a |  | a | a
ATmega2560 | a |  | a | a |  |  | ISP/PP/JP | aSTK503 | a |  | a | a
ATmega2561 | a | a | a | a |  |  | ISP/PP/JP | aSTK501 | a |  | a | a
ATmega644 | a | a | a | a |  |  | ISP/PP/JP | a | a |  | a | a
ATmega644PA | a | a | a | a |  |  | ISP/PP/JP | a | a |  | a | a
ATmega640 | a |  | a | a |  |  | ISP/PP/JP | aSTK503 | a |  | a | a
ATmega1281 | a | a | a | a |  |  | ISP/PP/JP | aSTK501 | a |  | a | a
ATmega1280 | a |  | a | a |  |  | ISP/PP/JP | aSTK503 | a |  | a | a
ATmega1284 | a |  | a | a |  |  | ISP/PP/JP | a | a |  | a | a
ATmega1284P | a |  | a | a |  |  | ISP/PP/JP | a | a |  | a | a
ATmega164A | a |  | a | a |  |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega164PA | a |  | a | a |  |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega164P | a |  | a | a |  |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega88PA | a |  | a | a |  |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega88A | a |  | a | a |  |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega168A | a |  | a | a |  |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega168PA | a |  | a | a |  |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega324PA | a |  | a | a |  |  | ISP/PP/JP/JD | a | a | a | a | a
XMEGA |  |  |  |  |  |  |  |  |  |  |  |
ATXMEGA64A1 | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA128A1 | a |  | a | a |  |  | a |  | a | a | a | a
ATXMEGA256A3 | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA128A3 | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA64A3 | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA256A3B | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA16A4 | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA16D4 | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA32A4 | a |  | a | a |  |  |  |  | a |  | a | a
ATXMEGA32D4 | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA64D3 | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA128D3 | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA192A3 | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA192D3 | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA256D3 | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA16A4U | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA32A4U | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA64A3U | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA128A3U | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA192A3U | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA256A3U | a |  | a | a |  |  | a |  | a |  | a | a
ATXMEGA256A3BU | a |  | a | a |  |  | a |  | a |  | a | a
Smart Battery AVR |  |  |  |  |  |  |  |  |  |  |  |
ATmega406 | a |  | a | a |  |  | JP/JD | a |  |  | a | a
ATmega16HVA | a |  | a | a |  |  | ISP/HVSP/dW | a | a |  |  | a
ATmega16HVA2 | a |  | a | a |  |  | ISP/HVSP/dW | a | a |  |  | a
ATmega32HVB | a |  | a | a |  |  | ISP/HVSP/dW |  | a |  | a | a
ATmega16HVB | a |  | a | a |  |  | ISP/HVSP/dW |  | a |  | a | a
ATmega64HVE | a |  | a | a |  |  | ISP/HVSP/dW |  | a |  | a | a
USB AVR |  |  |  |  |  |  |  |  |  |  |  |
AT90USB82 | a |  | a | a |  |  | ISP/PP/dW | aSTK526 | a |  | a | a
AT90USB162 | a |  | a | a |  |  | ISP/PP/JP | aSTK526 | a |  | a | a
ATmega16U4 |  |  | a | a |  |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega32U4 |  |  | a | a |  |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega32U6 |  |  | a | a |  |  | ISP/PP/JP/JD |  | a |  | a | a
AT90USB646 | a |  | a | a |  |  | ISP/PP/JP | aSTK525 | a |  | a | a
AT90USB647 | a |  | a | a |  |  | ISP/PP/JP | aSTK525 | a |  | a | a
AT90USB1286 | a |  | a | a |  |  | ISP/PP/JP | aSTK525 | a |  | a | a
AT90USB1287 | a |  | a | a |  |  | ISP/PP/JP | aSTK525 | a |  | a | a
ATmega8U2 |  |  | a | a |  |  | ISP/PP/JP | aSTK525 | a |  | a | a
ATmega16U2 |  |  | a | a |  |  | ISP/PP/JP | aSTK525 | a |  | a | a
ATmega32U2 |  |  | a | a |  |  | ISP/PP/JP | aSTK525 | a |  | a | a
Lighting AVR |  |  |  |  |  |  |  |  |  |  |  |
AT90PWM1 | a |  | a | a |  |  | ISP/PP/dW | aSTK520 | a |  | a | a
AT90PWM2 | a |  | a | a |  |  | ISP/PP/dW | aSTK520 | a |  | a | a
AT90PWM2B | a |  | a | a |  |  | ISP/PP/dW | aSTK520 | a |  | a | a
AT90PWM3 | a |  | a | a |  |  | ISP/PP/dW | aSTK520 | a |  | a | a
AT90PWM3B | a |  | a | a |  |  | ISP/PP/dW | aSTK520 | a |  | a | a
AT90PWM216 | a |  | a | a |  |  | ISP/PP/dW | aSTK520 | a |  | a | a
AT90PWM316 | a |  | a | a |  |  | ISP/PP/dW | aSTK520 | a |  | a | a
ATmega16M1 |  |  | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATmega32M1 |  |  | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATmega64C1 |  |  | a | a |  |  | ISP/PP/dW | a | a |  | a | a
ATmega64M1 |  |  | a | a |  |  | ISP/PP/dW | a | a |  | a | a
AT90PWM81 | a |  | a | a |  |  | ISP/PP/dW |  | a |  | a | a
CAN AVR |  |  |  |  |  |  |  |  |  |  |  |
AT90CAN32 | a | a | a | a(Limited) |  |  | ISP/PP/JP/JD | a | a |  | a | a
ATmega32C1 | a |  | a | a |  |  | ISP/PP/dW | a | a |  | a | a
AT90CAN64 | a | a | a | a(Limited) |  |  | ISP/PP/JP | a | a |  | a | a
AT90CAN128 | a | a | a | a(Limited) | a(Limited) |  | ISP/PP/JP | a | a |  | a | a
Other |  |  |  |  |  |  |  |  |  |  |  |
AT90SCR100 |  |  | a |  |  |  |  |  |  |  |  |
ATmega128RFA1 |  |  | a |  |  |  |  |  |  |  |  |
AT86RF401 | a |  |  |  |  |  |  | a | a |  |  | a

u Supported in compatibility mode

Abbreviations
ISP: In System Programming
HVSP: High voltage serial programming
PP: Parallel Programming high voltage
dW: debugWire
JP: JTAG Programming
JD: JTAG Debugging


Knownissues

Known issues and special considerations

Below is a list of known issues and special considerations for AVR Studio 4. (Last updated 12/2006)

Generic
Installation
USB
Customize
GUI - The User interface
JTAGICE/JTAGICE mkII
AVR ONE!
ICE50
STK500
Simulator
Using the IAR compiler
AVR-GCC and DWARF2 debug format
Watch
AVRDragon

Topic

Description/Workaround

Generic

Can not find my device in the device list even if the device is listed as supported. Solution: Make sure the cac-files get's deleted. Please delete all files in the following folder:
C:\Documents and Settings\All Users\Application Data\Atmel\AvrStudio4

Some users can not select any devices for debugging, and/or the debug session will never start. Typical only the ATmega128 is available for selection when using ICE40/50, simulator or JTAGICE mkII.
This is probably caused by some DLL files being damaged and/or having wrong versions. We have identified two actions that can help to solve these issues:

1) Make sure you have the latest Internet Explorer version 6(or later) installed with the latest service pack.

2) Install the Microsoft XML Parser (MSXML) 3.0 Service Pack 4 or later (SP4). AVR Studio 4 uses the XML parser extensively. This package can be downloaded from the following site:

The Microsoft® XML Parser (MSXML) 3.0 SP7 http://www.microsoft.com/downloads/info.aspx?na=47&p=1&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=b432cd45-b7ed-4c32-a443-ec56f10ee175&u=details.aspx%3ffamilyid%3d28494391-052B-42FF-9674-F752BDCA9582%26displaylang%3den

Note: The latest version of the XML parser (MSXML 4.0 SP2) is now included with the AVR Studio 4.13 release. This should prevent the problems described above. If not, work-around is still to reinstall the latest MSXML package.

AVR Studio will not be able to generate the XML device files cache files that are used to speed up device selection when running from an unprivileged account. Unprivileged users should make sure that all target debug platforms have been selected at least once in the "Select Platform and Device" dialog in the Startup Wizard from an account that has administrator privileges. This will generate the cache files that are needed by AVR Studio.

We recommend that the latest version of MS Internet Explorer is installed. We require its library functions because of extensive use of XML file parsing within AVR Studio 4. Unexpected behaviour may occur if this is not installed.

Note about moving the project files.
Path to files are stored as absolute paths in the project file, opening a copied project file will still try to locate the files in the old location. The safest way to bypass problems is to create a new project at the new location.

Sometimes you may experience problems when loading AVR Studio 4 projects. Close AVR Studio and remove the project file (APS). Then startup AVR Studio and try again by creating a new project.

Usually the initialized EEPROM data or SRAM is automatically uploaded to the EEPROM memory of the debug platform after a user confirmation. If this does not happen, you can do this manually by selecting 'Up/Download memories' after loading the project.

If the last statement in a function is part of a loop,and there is no explicit return statement, Step Out may not work as expected. A work-around for this problem is to put a "return;" statement at the end of the function. This problem has been seen with the Imagecraft C Compiler and may be experienced with other C compilers.

The 'Find in files' function does not include the last line of the searched files in its search area. To work around this problem, make sure there is an empty line at the end of each file.

The programming dialog and the debugger in AVR Studio do not share the COM or USB ports. E.g. to connect to a device on COM1 from the programming dialog, a debug session cannot be active with the same device on COM1 simultanously. In this case select 'Stop Debugging' from the Debug menu before connecting with the programming dialog.

When using AVR Assembler version 1 (selected in Assembler options dialog), the Output folder in the Project window is always empty, with Intel, Motorola or Generic hex format. With Assembler version 2, the lst, map and (hex|gen|mot) files are available in the Output folder.

3)Issue: Can not find my device in the device list. Solution: Make sure the cac-files are deleted. Plase delete all files in the following forlder

USB

Windows XP 64: If the USB drivers was not installed with version 4.13, upgrading to SP1 or doing modify on the installation will not work for adding USB drivers. This results in an AVR Studio 4 crash or that no connection is established. To add USB support for Windows XP 64, AVR Studio 4.13 must be uninstalled and reinstalled with USB option enabled.

Customize

When using the customize function in AVR Studio you can add your own tools and change/add accelerator keys. There are some issues:

1) AVR Studio operates in different modes, edit and debug mode. The tool you add are only visible in the mode you are when the tool item is added. Therefore you must add the tool two times to be available in both edit and debug mode. Also, the tools you add when working in an assembler project will not be available when working with a C/C++ project.

2) When installing new version of AVR Studio you will loose all customize settings.

Installation

We recommend you to uninstall AVR Studio properly before you install a new version.

If you have modified any of the AVR Studio 4 installed files, they may not be overwritten/upgraded if a newer version is installed. Then make sure you uninstall before installing a new version.

We recommend that the latest version of MS Internet Explorer is installed. We require its library functions because of extensive use of XML file parsing within AVR Studio 4. Unexpected behaviour may occur if this is not installed.

It is important that you have all the latest service packs installed on your OS. Some installation problems may be caused by not being up to date on service packs for the OS. If you still experience install problems after a complete OS and service pack update, you may try to download the latest installer update from Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyID=889482fc-5f56-4a38-b838-de776fd4138c&DisplayLang=en

When installing a new version of AVR Studio all shortcut keys, window positions and custom toolbar layouts will be reset to the default setting.

GUI - User interface

COFF files in Windows Vista must be opened from the Project->Open Project menu. Note that File->Open File menu will not work.

If an object file is reloaded after part has been changed the following messages might appear:
The contents of the object file exceeds the maximum program memory of the device. Error loading object file (filename)
AVR Studio can now be left in a position where platform/part cannot be changed and debug mode cannot be entered. To work-around this, close AVR Studio and restart the application.

To open a HEX file for both debugging and at the same time as a text file may cause problems. Work-around:
1) Debug file: Use the Project Wizard and select open.
2) Text file: Use the menu File->Open File and select “Text” in the “Open As” dropdown box.

The size and position of the vertical scroll bar in the trace view is not always mathematically correct. This is due to the fact that the number of displayed trace records/source lines are unknown until displayed. To maintain update speed, records are fetched and decoded as needed for the view.

Menu access, work-around. When using the ALT key in combination with other keys to access the menus you MUST keep the ALT key pressed down while navigating in the menus.

The I/O memory view will tag the addresses from 0x00 to 0x3f although the "real" address is 0x20 to 0x5f. All other views show the "real" addresses. This is done to make use of the I/O view more convenient to the user as I/O instructions like in and out have base address 0x00.

Tooltip information will not be visible in a floating memory view. Work-around: Make it docking again.

All visible memory locations that are changed during a debug session will be marked red. When using the scrollbar the coloring will disappear in the memory window

If the toolbars, buttons or windows get messed up, you can enable the option "Reset desktop on restart". Just restart AVR Studio to activate it again.

The text color in the device selection box may be confusing when out of focus. The selected device will now be inverted white, and may look "unselectable".

New project + Project wizard. If you have started a debug session and a new project is selected, the project will be closed down. Cancel will not take you back.

It may cause problems to use national characters in project and filenames. Work-around: Avoid using these when creating a new project or new text files.

Mouse wheel support in editor and memory views are not automatically supported when OS is WinNT or Win95. Please download and install a driver from your vendor to have this option.

The wheel mouse does not work in the register window.

The memory view

AVR ONE!

A floating memory view will be locked when starting a debugWIRE debug session. Workaround: Select from menu: Windows->Workspace->Default. The memory view will then be closed and can be re-opened.

JTAGICE/JTAGICE mkII

Some I/O registers are not accessible in a JTAGICE debug session. See the JTAGICE online help for more information.

Note that the Cycle Counter for a debugging session with the JTAGICE will always be 0. This is because the JTAGICE does not implement a cycle counter. The frequency and stopwatch will also be disabled in the GUI.

When using the ATmega128 in 'ATmega103 compability mode', note that the SRAM memory boundaries for ATmega128 are displayed in the memory window, not the boundaries for ATmega103. Also, note that the I/O registers for ATmega128 will be shown in the I/O window, not the I/O registers for ATmega103.

See the JTAGICE online help for more known issues and information.

ICE50

The dialog window for the ICE50 target options does on some occasions appear behind the AVR Studio main window. When this happens, the AVR Studio main window appears to be locked until the ICE50 target options are closed.

If AVR Studio initiate an upgrade and the Upgrade program fails to connect to the ICE50, make sure to close down AVR Studio.

If you reset the ICE when in EDIT mode (disconnected after debug), all the settings on the ICE will be lost, and various error messages may occur when connecting again. You should then close the project and reopen it again to reload your settings.

Make sure you upgrade your ICE50 with the serial port.

If Xircom PortGear(USBtoSerial) is used and ICE50 is not connected, it may be unstable. Make sure the ICE50 is connected and powered.

See the ICE50 online help for more issues and information.

STK500

If you discover problems when connecting, make sure you have stopped any debugging session that may use the actual COM port. Example; you can not connect with the STK500 dialog at the same time being connected with a debug session on the same port.

See the STK500 online help for more issues and information.

IAR Compiler

The Generate debug info option causes the compiler to include, in the object modules, additional information required by AVR Studio. By default, the optimization level is none.

Note that only optimization levels None and Low will generate code that is fully debugable with AVR Studio.

Currently, AVR Studio supports the UBROF 8 debug format and earlier versions. IAR EW 3.10 by default generates UBROF 9. See the Object files format and support section for information on how to make IAR EW 3.10 generate UBROF 8.

If you have selected "Source files embedded in object file", AVR Studio will generate a temporary folder called embedded, and put all source files below here. The source files will get a name with prefix _embXX. Make sure you have write access to the debug folder.

AVR-GCC Compiler and DWARF2 debug format

Note that the AVR-GCC compiler must be correctly configured to support DWARF2 output. Presuming the compiler supports DWARF2 output, the format is generated using the -gdwarf-2 option.

1. 64K limit on flash size. (WinAVR releases prior to 2007-01-02)
The mapping between program addresses and source code locations output by older avr-gcc versions breaks when addresses pass beyond 64K. This has been fixed in WinAVR releases after 2007-01-02, and acommodations for this fix has been made in the AVR Studio elf/dwarf parser.

2. Wrong display of eeprom and progmem variables in the watch view. (WinAVR releases prior to 2007-01-02)
Object files made with avr-gcc from WinAVR versions prior to 2007-01-02 do not contain information to discern between eeprom, progmem and sram addresses. AVR Studio parser therefore assumes sram for all variables. Later WinAVR versions provide an avr-gcc that generates objects with this information. The AVR Studio elf/dwarf parser will in this case present correct information about variables from both progmem, epprom and sram memories.

3. Step-out-of does not work on jtagice mkII (#672)

4. Multi-dimensional arrays (#3249)
Multi-dimensional arrays are displayed all in one level in the watch window in AVR Studio.

5. Debugging and working with C++ projects is not yet supported (#5045, #5047)

6. Debug information for bitfields is wrong as output by avr-gcc (#393)
It will not be possible to watch bitfields in the watch view.

7. The Watch view reads 'Location not valid' for some variables (#572)
The ELF parser does not support all DWARF location expressions. If it encounters one that is not supported, the watch view will read 'Location not valid'.

8. Custom-defined eeprom sections are not stripped from hexfile (#5271)
Custom-defined eeprom sections in the AVR GCC plugin are not stripped from the generated hexfile.

Simulator

TWI, USI and analog peripheral simulation is not yet implemented. All instructions, interrupts and other peripherals are supported.

Shadow register support is missing in AVR Studio. As a consequence when operating PWM in fast- and phase correct mode, the OCR register should not be updated until TCNT is at TOP.

The Asynchronous Status Register (ASSR) is not supported in timers with asynchronous mode. This is due to lack of a generic external clock implementation.

The simulator will output a warning each time it encounters an instruction that is not supported by the device that is executing. This function cannot be turned off. To avoid the message, rewrite the application so that it does not use the instruction that generates the warning.

See the Simulator Help for more information.

Watch

char[] must be expanded after initialization to be correct. On some occasions the sub elements of an expanded array are not correctly updated in the watch window. A workaround to force an update of the watched array elements is to collapse and then expand the array again.

Bitfields are not displayed correctly in the watch window. The bitfield is displayed, but the value is not masked correctly, so that the displayed value is likely to be wrong.

When watching enum variables from an IAR (UBROF) or Imagecraft (COFF)project in AVR Studio, the watch will display the numeric value of the enumvariable, not its string value.

For COFF output, "long long" and "long double" variables are not displayed. For COFF output, global variable can't be watched when stepping through library code (the yellow pointer,Program counter, is pointing at library code)

The watch window functionality is dependent of a compiler/assembler that creates symbolic output. For instance IAR that creates UBROF(.d90) and Imagecraft/Codevision that creates COFF(.cof). Make sure you have enabled the correct option for making correct debug information output in your compiler options setting dialog.

New from version 4.06 is that watches are supported for the AVR assembler. Make sure the .map file is generated (default on)

C++ class member variables are not looked up automatically. Type the symbol 'this' instead and expand it to see the member variables.

AVR Dragon

Note that the PDI interface is not supported by AVR Dragon in this release. PDI is selectable but will result in an error when used. Use JTAG instead.

Device specific considerations

If you update a register in the IO view, or in your application code, and do not see the expected change of operation in your application, please keep the following in mind (read more about this in the module descriptions in the data sheet):

16-bit IO registers: A 16-bit timer might have a single 8-bit register for temporary storing of the high byte of the 16-bitaccess. The same temporary register is shared between all 16-bit registers within each 16-bit timer. Accessing the low byte triggers the 16-bit read or write operation. This mechanism ensures that the entire 16-bit value is transferred at once.

Register double-buffering: Registers that are double-buffered are typically not applied before some event takes place. E.g. in some operation modes, the value applied to the OCRnx registers on ATmega128 are not updated in the module before the timer reaches either the TOP or BOTTOM of the counting sequence.


Installation and update

Once AVR Studio has been installed, it can be started by selecting "AVR Studio 4" in the AVR Tools section on the Start Menu. If an In-Circuit Emulator or an on chip debugger is the desired execution target, remember to connect and power up the board before opening any project.

Make sure the USB driver installation has been performed if planning to use a tool with USB support. See USB Driver Installation.

AVR Studio is updated frequently and available for download on WEB at www.atmel.com. To install the WEB version run AVRSTUDIO.EXE to extract the setup files. Then run setup.exe and follow the on-screen instructions to install.

Requirements

Windows XP SP3/VISTA/7 x32 /7 x64
Internet Explorer 6.0 or later (Latest version is recommended)

Recommended hardware:
~ Intel Pentium 200MHz processor or equivalent
~ 1024x768 screen (minimum 800x600 screen)
~ 256 MB memory
~ 100 MB free hard disk space

We always recommend to have the latest OS versions and Service packs installed. We also recommend Internet Explorer 6 or later.


USB Setup

USB Driver Installation

In order to use any emulator/programmer using USB it is required to install the USB driver. Please do not connect the emulator/programmer to the computer before running the USB Setup. USB driver installation is done during the AVR Studio installation.

Start the AVR Studio installation. During this installation the dialog box in the figure below will be presented to the user.

To install the USB driver, check the Install/Upgrade USB Driver checkbox, and the USB Driver will automatically be installed.

Install new hardware on the computer

When AVR Studio and USB driver installation is finished, please attach the USB cable to both PC and emulator/programmer. If it is the first time the emulator/programmer is connected to the computer, the box below will appear:

If running Windows XP you need to click "Next" a couple of times. Please wait until the installation process completes by itself. It may take from a few seconds up to a few minutes depending on the computer and operating system.

If the USB driver is correctly installed and emulator/programmer is connect to the PC, the green LED inside the encasing next to the USB connector will be lit.

If the AVR Studio for some reason can't detect the emulator/programmer after the USB setup, try to restart the computer in order to get the driver properly loaded.

Install USB driver after AVR Studio is installed

The USB driver can be installed even after AVR Studio have been installed by following these steps:

  1. Open "Control Panel" on the PC (Windows 95 and Windows NT does not support USB)

  2. Select "Add or Remove Programs"

  3. Select "AVRStudio4" in the list of programs

  4. Click on the "Change" button

  5. Select "Modify"

  6. Select "Install/upgrade USB Driver"

The USB driver is now properly installed on the PC


Release history

This page contains a collection of all the latest release notes for

AVR Studio 4.18 SP3
AVR Studio 4.18 SP2
AVR Studio 4.18 SP1
AVR Studio 4.18
AVR Studio 4.17
AVR Studio 4.16 SP1
AVR Studio 4.16
AVR Studio 4.15
AVR Studio 4.14 SP1
AVR Studio 4.14
AVR Studio 4.13 SP2
AVR Studio 4.13 SP1
AVR Studio 4.13
AVR Studio 4.12 SP4
AVR Studio 4.12 SP3
AVR Studio 4.12 SP2
AVR Studio 4.12 SP1
AVR Studio 4.12
AVR Studio 4.11 SP3
AVR Studio 4.11 SP2
AVR Studio 4.11

AVR Studio 4.18 Service Pack 3 (08/2010)

Part support

The following new parts have been added to AVR Studio since 4.18 SP2:

- ATmega165A, ATmega169A, ATmega645A, ATmega649A, ATmega325A, ATmega329A, ATmega6450A and ATmega6490A

Check the device matrix to see which devices are supported by which tools: See a list of all supported devices and tools here.

Bug Fixes

11404 - AVRDragon should only work with the A4 and newer xmega devices
11269 - Part description Files for ATXMega16D4
10162 - User signature readout for stk600.exe
8567 - Studio does not check if FPGA is configured before running detect targets command
6899 - ELF format: Signature is verified with attached device without regard to the selected one
9946 - ELF file protection issue. Readonly files not accessible.
11085 - Command line interface (STK500.exe) for programming ATXMEGA32A4 fails fuse programming
10780 - Fuse Byte with AVR Studio 4.18
10648 - Click on Help for AVRONE's error message leads to STK500-user guide
10700 - Wrong message about unsupported device after debugwire enable
11069 - STK500.exe command line(v2.3) fails for -a option in the AVR Studio Version 4.18 Build 684
11002 - AVRISP mkII's command line software does not list the xmega devices
10243 - Programming the AVR Devices with ELF file in commandline in not explained
10553 - The values displayed in AVR DRAGON Options dialog are not correct
10676 - Help page is not displayed for ISP mode error of AVRISP mkII
10981 - Not able to lock the target "ATxmega128A1"
11099 - Programming fails on 1.8V due to wrong sensing of Vtarget
11242 - automatic DWEN setting erases device
11351 - stk500.exe -ae option not working
11092 - CLI AVRISPmkII not working with -a switch (address range)
11386 - ATtiny40 missing SPI
11388 - AT90USB1286/7 part description file bug
9098 - Configuration of Bootloader Fuse Setting for the device ATmega2561 shows wrong values
10552 - AVR DRAGON Option dialog test fails (Test O2)
11664 - Error selecting JTAG mode AVR Dragon and ATmega1284P
11342 - Wrong number of GPIOR registers in xmegaD*?
10990 - Odd behavior when debugging ATmega329PA in boot section
11511 - single stepping math extensions on HVE fails
11512 - single stepping math extensions on HVE fails
11513 - single stepping math extensions on HVE fails
10876 - Debugging with debugWIRE disassembler view shows BREAK instructions instead
10625 - Run to main puts break point at wrong position
10512 - command line tools -T switch does appear to not work + ”Failed to program FLASH"
4612 - When target power toggles no event is sent to AVR Studio
10710 - Starting at program entry point fails
11505 - SPH cannot be written on ATtiny40
9720 - ejournal 533159, Find in files crashes when accessing found items
10524 - 64-bit watch values >= 2**32 become 0xffffffff
11406 - AVR Studio 4 crashing when loading AVR Assembler project
11561 - Tiny4 part description file has wrong signature.
11737 - ATxmega256D3 is missing Power Reduction registers
11775 - DACAGAINCAL typo'd to DACACAINCAL for several XMEGA A devices
11789 - XMEGA A devices: 4096-cycle DAC refresh interval setting has wrong name

Known Issues

- ATmega8: Problem with Waveform Generation Mode bits -> AVR Tools-Simulator-Known Issues
- Autodetection of wrong device selected by user in a debug session is not working for all variants (P, PA, A) of the following devices:

ATmega165, ATmega169, ATmega645, ATmega649, ATmega325, ATmega329

Workaround: Make sure the selected device matches the target device used.

Note

Windows 95 is no longer supported by AVR Studio. The most recent version that supported Windows 95 was AVR Studio 4.12 SP3.
Windows 98 is no longer supported by AVR Studio. The most recent version that supported Windows 98 was AVR Studio 4.16 SP1.

AVR Studio 4.18 Service Pack 2 (02/2010)

Part support

The following new parts have been added to AVR Studio since 4.18 SP1:

- AT90PWM1, ATtiny40 programming support.

New Features

  • QT600 CLI (QT600.exe, Command Line Interface) with TPI support

  • STK600 CLI (STK600.exe) added TPI support

  • AVRISPmkII CLI (STK500.exe) added TPI support

Bug Fixes

11075 - Setting of STK600 Aref with max resolution is tricky
10765 - Cosmetic errors in the tiny20 register descriptions
10764 - Some registers missing from tiny20 I/O view
10724 - avrone.exe does not handle - J
10763 - Can't read tiny20 Oscillator Calibration Byte with STK600
11128 - STK500.exe CLI -ae option not working
11218 - Update online help for stk500.exe with XMEGA commands
11168 - XMEGA RTC clock source in I/O-view confusing
11176 - ATtiny5 has wrong signature
11207 - STK500 Firmware issue with latest AVR Studio
10883 - AT90PWM316 Clock Fuses selection is not right
11052 - ATmega88PA is not in the list of supported parts for the STK500
11265 - Bugs in XML part description files ATmega162 and AT90CAN128
11030 - JTAGICE mkII autodetect crash with XMEGA
11131 - STK500 forced firmware downgrade
10641 - AVR ONE! upgrade crashes
10558 - Starting AVRDragon debugger on ATmega128 starts endless loop
10926 - AVR ONE! incorrect help version
10912 - AVR ONE! unable to connect to mega168A in programming dialog
10624 - Error loading debug code on Xmega device with AVR Dragon
10524 - 64-bit watch values >= 2**32 become 0xffffffff
10854 - Vista issues opening COFF files in AVR Studio 4.18
10235 - Scomm.dll not found during installation
11206 - ISP and JTAG Fuse should not be writeable when using QT600 Programmer
10886 - Channel Control Register for ADC in XMEGA16D4
11298 - Loading an ELF file in programming dialog crashes Studio

Known Issues

11160 - ATmega8 problem with Waveform Generation Mode bits -> AVR Tools-Simulator-Known Issues

Note

Windows 95 is no longer supported by AVR Studio. The most recent version that supported Windows 95 was AVR Studio 4.12 SP3.
Windows 98 is no longer supported by AVR Studio. The most recent version that supported Windows 98 was AVR Studio 4.16 SP1.

AVR Studio 4.18 SP1 (12/2009)

Part support

The following (5) new parts have been added to AVR Studio since 4.18:

-ATmega16HVA2, ATmega329PA, ATmega48A, ATmega88A, ATmega168A

Check the device matrix to see which devices are supported by which tools: See a list of all supported devices and tools here.

New Features

  • AVR Dragon support for XMEGA PDI mode
  • AVRISP mkII support for TPI in programming dialog in AVR Studio
  • QT600 support for TPI in programming dialog in AVR Studio
  • Simulator2 model for: ATmega16HVA2

Bug Fixes

10869 - Command line utility AVRDragon fails for parallel programming of ATMega168
10847 - AVR ONE!: Incorrect help link in error dialog, programming dialog
10859 - ELF file will write all fuses to FF if fuses has not been specified
10737 - jtagiceii.exe with more than one debugger
10583 - jtagiceii.exe cac-file location is wrong
10760 - AVRISPmkII: Select serialnumber shows ALL connected Atmel devices
10806 - Simulator2: Set next statement executes next instruction
10975 - AVRDragon: AVR Studio crashes when a wrong device is selected in "Select Platform and device"

Known Issues

10854 - Vista issues opening COFF files in AVR Studio 4.18: See work-around for this here

Note

Windows 95 is no longer supported by AVR Studio. The most recent version that supported Windows 95 was AVR Studio 4.12 SP3.
Windows 98 is no longer supported by AVR Studio. The most recent version that supported Windows 98 was AVR Studio 4.16 SP1.

AVR Studio 4.18 (10/2009)

Part support

The following (6) new parts have been added to AVR Studio since 4.17:

- ATmega64HVE, ATtiny461A, ATtiny20, ATtiny40 (Simulator support only), ATmega169PA, ATmega649P

Check the device matrix to see which devices are supported by which tools: See a list of all supported devices and tools here.

New Features

  • QT600 support in programming dialog in AVR Studio
  • AVR Dragon support for all AVR 8-bit devices including XMEGA(JTAG mode only). Programming and debugging within AVR Studio and command line software support for ELF production file format.
  • Simulator 2 models for: ATxmega32A4, ATxmega16A4, ATxmega32D4, ATxmega16D4, ATtiny10(New revision), ATtiny9, ATtiny5, ATtiny4, ATmega32HVB, ATmega16HVB
    ATmega64HVE, ATtiny20, ATtiny2313A, ATtiny4313, ATmega169PA
  • Added button for starting AVR Studio 32 from Studio 4.18

Bug Fixes

10397 - Timeout when debugging with AVR ONE! at 6 kHz
10147 - avrone.exe pops up messagebox for FW upgrade, warning is displayed instead.
9805 - TWI part descriptions broken for ATxmega parts in latest AVR Studio release
10387 - Xmega Erase Boot Section not woking for ISPmkII
9847 - AVRDragon.exe -C:USB S/N parameter missing
8111 - Programming dialog does not set emulator mode X-Jtag for JTAGICE mkII/AVR Dragon
8251 - AVR Studio refuses to accept AVR Dragons with slave major version 3
9993 - xmega osccal calibration in avrone.exe
10234 - Incorrect information of daisy chain setup in help file
10498 - AVR ONE! node missing in ATtiny2313A XML
10505 - SPH register missing from tiny4313 part description file
10518 - DWbasePC is wrong in m649.xml
6828 - Bugs in ATtiny48 part description
9573 - Fuse view in does not show the RSTDSBL bit for xmega devices
10713 - RSTDISBL fuse description missing in XMEGA xml files
9961 - Single-stepping stops on skipped instruction after SBIC/SBIS instructions
10703 - Single-stepping problem on XMEGA
10722 - Moving XMEGA breakpoints does not work

Note

Windows 95 is no longer supported by AVR Studio. The most recent version that supported Windows 95 was AVR Studio 4.12 SP3.
Windows 98 is no longer supported by AVR Studio. The most recent version that supported Windows 98 was AVR Studio 4.16 SP1.

AVR Studio 4.17 (07/2009)

Part support

The following (19) new parts have been added to AVR Studio since 4.16 SP1:

- ATtiny4, ATtiny5, ATtiny9, ATtiny87, ATtiny261A, ATtiny861A, ATtiny2313A, ATtiny4313, ATmega644PA, ATmega16HVB, ATmega16M1, ATmega64M1, ATmega64C1, ATmega8U2, ATmega16U2, ATmega32U2, ATxmega192D3, AT90SCR100, ATmega128RFA1

Check the device matrix to see which devices are supported by which tools: See a list of all supported devices and tools here.

New Features

  • Full AVR ONE! 8-bit support. Both programming and debugging.
  • AVR Battery Studio version 1.1
  • JTAGICE mkII command line sw with support for ELF production file format
  • STK500 command line sw with support for ELF production file format

Bug Fixes

6093 USB driver installation on Windows Vista x64. Upgraded to latest Jungo driver.
7001 Known issues states that 64bit USB in Vista is not supported
9713 Error Code: -2147467259 when opening a project
9751 Error in registerview. Register gets overwritten with wrong values when a neighbour register is edited.
9508 I am not asked if I want to reload project even if it has changed
9447 Creating ELF files from AVR Studio, not possible to ommit a memory type.
8003 jtag programming hangs when using .elf format without EE-file
85 JTAG ICE mkII does not release Reset
9773 Writing a .hex file to the AT90USB1287 using "Tools"->"Program AVR" function works indeed, but transferring the .elf file does not.
9609 In AVR Studio4.16 b628 ATmega329P signature vaires in .xml file from the Datasheet
8845 Wrong BOD levels in the XMEGA part description files.
9792 jtagiceii.exe does not support ELF production file format.
8220 'Preserve EEPROM contents when reprogramming device' is not working for XMEGA devices
9704 The libdwarf library used in AVRStudio is outdated. Updated to latest version.
9508 I am not asked if I want to reload project even if it has changed
9647 Errors in ATmega16U4, ATmega32U4 and ATmega32U6
9614 AVRStudio crashes when loading elf file
9701 libdwarf limits the number of standard opcodes for linenu...
10026 Infinite loop when loading objectfile
10099 Help pages for JTAGICE mkII show display error when pressing help button after a JTAG mode error
10114 Auto functionality in programming dialoge fails when program and read the FLASH / EEPROM

Note

Windows 95 is no longer supported by AVR Studio. The most recent version that supported Windows 95 was AVR Studio 4.12 SP3.
Windows 98 is no longer supported by AVR Studio. The most recent version that supported Windows 98 was AVR Studio 4.16 SP1.

AVR Studio 4.16 SP1 (04/2009)

Part support

The following new parts have been added to AVR Studio since 4.16:

- ATxmega16D4, ATxmega32D4, ATxmega64D3, ATxmega128D3, ATxmega256D3

Check the device matrix to see which devices are supported by which tools: See a list of all supported devices and tools here.

New Features
- AVR ISP mkII command line SW support for XMEGA device family

Bug Fixes
9473: Programming window - Empty Flash's .hex file read-back after programming and verification
9510: Cannot program a bootloader
7966: ATmega329P signature wrong.
9291: Misguidance in AVR Studio Help-->AVR Studio User Guide-->Getting Started-- >Debugging external code projects
9545: Bug in partdescription file of ATmega640
9505 ATmega640 needs STK600 support
9509 The include file for ATxmega128A1 contains errors
9528 Wrong fuse description in ATtiny48/88
9508 I am not asked if I want to reload project even if it has changed

Note
Windows 95 is no longer supported by AVR Studio. The most recent version that supported Windows 95 was AVR Studio 4.12 SP3.

AVR Studio 4.16 (02/2009)

Part support

The following new parts have been added to AVR Studio since 4.15:

- ATtiny10, ATtiny24A, ATtiny44A, ATxmega32A4, ATxmega16A4, ATmega164PA, ATmega48PA

Check the device matrix to see which devices are supported by which tools: See a list of all supported devices and tools here.

New Features

  • AVR QTouch Studio

  • STK 600 support for multiple socket/routing card combinations

  • Windows Error Reporting (WER) system activated

  • JTAGICE mkII command line SW support for XMEGA device family

Bug Fixes

9365: Entering sleep mode hangs AVR Studio

7935: Stop adding new devices to AVRISP mkI due to piracy

7822: STK600.exe cannot read ELF file produced with prog. dialog.

7558: .stab section gets programmed into the flash section

7922: Verification of eeprom with avr dragon

7865: Programming with the ELF Production File Format seems to leave the ELF file open

7795: Studio crashes if input hex file for ELF file generation is too big

9018: Only 7 of 8 digital filter registers shown in xm128A1 io view

8449: Connecting to STK600 crashes studio

9072: Macros using instructions with '.' fail

8227: STK600 programming dialog, not suggesting several socketpackets

9035: Connect dialoge baud rate settings not working for JTAGICE mkII

9205: ISP programming no longer works

8409: SRAM read / write fails due to oversized request

9214: Fuse setting not correct for setting external crystal

8065: Programming dialog should support several RC/SC combinations

7639: jtagiceii.exe does not access xmega targets

8257: Command line instruction -j <ID> needs an enhancement.

8717: Command line JTAGICEmkII to Xmega

8877: STK600 comand line tool crash.

8983: SP is read from strange address when wrong device has been selected

8989: Changed device not stored in project

9005: Error handling should be improved

9078: Renamed GPR register is not getting updated when we reopen AVR Studio

9098: Configuration of Bootloader Fuse Setting for the device ATmega2561 shows wrong values

9206: Timer2 prescaler description of ATmega164P/324P/644P/644.xml is incorrect

9194: ATtiny10 instruction set documentation issues

8932: ELF file lock while debugging with AVR Studio

9015: Studio shows "error loading object file" even if correctly loaded

8830: I/O view drop down selector are disabled after attaching

9219: disabling debugWire fails

6618: The IO view does not work well for modules that have sub-modules (XMEGA)

7367: problem installing jtagicemk2 driver on vista

7860: AVR Studio unable to loacte files under Windows Vista

9237: Wrong Version is Displayed, Shows 4.15 instead of 4.16 for Build 624

8834: Device support page in STK600 userguide help displays 2 instances of ATmega1284P.

9265: ARef Greyed but still editable

9007: Incorrect information in release notes

9080: Signature byte for 3250p wrong in part description file

9275: Error in ATmega32 xml file, missing SUT fuses

9272: AVR Tools User Guide - Links that do not work.

8845: A specific BOD level setting while programming ATXmega128A1 throws error

Windows 95 is no longer supported by AVR Studio. The most recent version that supported Windows 95 was AVR Studio 4.12 SP3.

AVR Studio 4.15 (10/2008)

Part support

The following new parts have been added to AVR Studio since 4.14:

- ATmega128A, ATmega16A, ATmega32A, ATmega64A, ATmega8A, ATmega16u4, ATtiny13A (Service pack 1)

- ATmega32HVB, ATxmega256A3B, ATxmega256A3, ATxmega192A3, ATxmega128A3, ATxmega64A3, AT90PWM81, ATmega32U6, ATmega88PA, ATmega168PA, ATmega324PA

Check the device matrix to see which devices are supported by which tools: See a list of all supported devices and tools here.

New Features

  • Support for the XMEGA device family in the AVRISP mkII programming tool.

  • Support for AVR ONE! Introducing Live debug that enables you to attach/detach to running processes

  • AVR Battery Studio. Front-End to the Battery kit

Bug Fixes

8151: XML converter does not distinguish between SPI and HSSPI interrupt vectors. Fixed in xmlconvert 2.28.

Note

Windows 95 is no longer supported by AVR Studio. The most recent version that supported Windows 95 was AVR Studio 4.12 SP3.

AVR Studio 4.14 SP1 (07/2008)

Part support

The following new parts have been added to AVR Studio since 4.14:

- ATmega128A, ATmega16A, ATmega32A, ATmega64A, ATmega8A, ATmega16u4, ATtiny13A

Check the device matrix to see which devices are supported by which tools: See a list of all supported devices and tools here.

New Features

  • Support for the XMEGA device family in AVRISP mkII programming tool.

Bug Fixes

The following sections list the bug(s) that was/were present in AVR Studio 4.14 , but that have been fixed in 4.14 SP1. Several other minor bugs has also been fixed. Please also see the specific tools help books for a listing of bug fixes in specific tools.

8151: XML converter does not distinguish between SPI and HSSPI interrupt vectors. Fixed in xmlconvert 2.28.

Note

Windows 95 is no longer supported by AVR Studio. The most recent version that supported Windows 95 was AVR Studio 4.12 SP3.

AVR Studio 4.14 (03/2008)

Part support

The following new parts have been added to AVR Studio since 4.13 SP2:

- ATxmega128A1, ATxmega64A1, ATmega32M1, ATmega32C1, ATmega32U4, ATtiny167, ATtiny88

Check the device matrix to see which devices are supported by which tools: See a list of all supported devices and tools here.

New Features

  • Support for the new XMEGA device family in Simulator 2, JTAGICE mkII and STK600. Read more about the new XMEGA family here: http://www.atmel.com/products/AVR/default_xmega.asp

  • AVR Simulator 2 has been released with complete and accurate simulation of all digital peripherals.

  • Improved support for the ELF production file format.

  • Programming dialogs have been upgraded to support new XMEGA features.

  • Upgraded verbose I/O view for easier debugging of complex parts and the new XMEGA family.

  • Upgraded USB driver.

  • Full support for 32-bit and 64-bit version s of Vista

  • The new AVR Wireless Services application, supporting the AVR Raven kit, is included in the installation.

Bug Fixes

The following sections list the bugs that were present in AVR Studio 4.13 SP2 or 4.14 BETA, but that have been fixed in 4.14 RC1. Several other minor bugs has also been fixed. Please also see the specific tools help books for a listing of bug fixes in specific tools.

4758: Only ports A-G were displayed in the classic simulator Stimuli/Logging dialog. The simulator now scans ports A-R.

5311: Fixed a problem with handling white spaces in the project path of GCC projects.

5345: Simulator 2 now runs to the next source statement instead of breaking immediately when using the Break command in Studio.

6072: More useful error messages are now generated when the user presses Cancel on the browse file dialogs in the programming dialog.

6224: Fixed a bug in avrasm2 preprocessor when using nested preprocessor macros with arguments in conditionals.

6521: Fixed a problem with stepping in source mode after reloading the object file, when debugging with JTAGICE mkII.

6541: When reading voltage from the HW settings tab the read voltage is now also displayed on the slide bar, not only in the output window.

6757: Updated JTAGICE mkII help with better power-up sequence information.

6924: Fixed bug in avrasm2 preprocessor when using nested preprocessor macros with arguments in conditionals.

6941: Changed the default mode to JTAG when programming using JTAGICE mkII. ISP mode was the default mode in 4.13 SP2.

6948: Removed erroneous error messages generated when successfully reading and writing fuses with the JTAGICE (classic).

6951: Fixed a bug where using integer constants with under-scores (e.g., 0b1101_0101) as macro argument caused syntax error.

7027, 7032: Fixed a problem for ATtiny26 where "Undefined value" was displayed for the clock option fuses in AVR Studio 4.13 SP2

7052: Removed erroneous check on the JTAG frequency when programming in HV or ISP mode.

7101: Fixed a problem with setting input PIN register bits from I/O view.

7158: The watch window now updates the value of the last item in an array correctly.

7163: The simulator subscripts for AT90USB128/64 and AT90USB162/82 have been fixed.

7270: XMEGA fuse bytes now verifies correctly. The reserved fuse byte 3 was previously included in the verification, sometimes causing verification to fail.

7329: The programming dialog now remembers the emulator mode (PDI / JTAG) from one session to the next.

7373: Fixed strange behaviour when using the scroll wheel in the hex edit dialog when editing XMEGA user signatures in the programming dialog.

7379: Fixed a problem in the ELF/DWARF parser: A project with a source file did not contain actual source could cause Studio to crash when starting debugging.

7381: Fixed a problem with not being able to do a user break in simulator 2 while doing a 'run to cursor'.

7430: When selecting 'run to cursor' at the current execution location, simulator 2 now runs until the next time the location is executed.

7434: High-level break now completes the current statement before breaking execution, both during Run, Run to Cursor and Single Step.

7438, 7440: AVR Studio could crash when detecting old firmware on STK500/AVRISP, AVRISP mkII. This has been fixed.

7453, 7547: Fixed bug requiring the user to initially click twice on the configuration setting combo boxes in the IO view to make a selection.

7496: Improved error checking in the COFF parser so that erroneous COFF files do not crash AVR Studio.

Note

Windows 95 is no longer supported by AVR Studio. The most recent version that supported Windows 95 was AVR Studio 4.12 SP3.

AVR Studio 4.13 SP2 (12/2007)

This release contains all the contents of earlier service packs and part packs. Please see release history for information about earlier releases.

Part support:

The following new parts have been added to AVR Studio:

- ATmega32HVB, ATmega1284P, ATtiny48, ATtiny43U

Check the device matrix to see which devices are supported by which tools: See a list of all supported devices and tools here.

New features:

  • Full support for the new STK600 starter kit, including programming front-end and command line tools.

  • New devices in Simulator V2: ATmega164P, ATmega324P, ATmega644P, ATmega1284P, ATmega48P, ATmega88P, ATmega168P, ATmega328P, ATmega32HVB, ATtiny48 and ATtiny43U.

  • ELF production file format support (more..).

  • Several enhancements in the IO view

Bug fixes:

The following sections list the bugs that were present in AVR Studio 4.13 SP1, but that have been fixed in SP2. Several other minor bugs has also been fixed. Please also see the specific tools help books for a listing of bug fixes in specific tools.

4065: If selecting a device that did not support the current programming mode, the indicated programming mode in the dialog would change automatically to one supported by the device, but the JTAGICE mkII would not change its mode.

4742: Added strlen() function to the AVR Assembler preprocessor.

4835, 5132: The feedback when an error occurs in the programming dialog has been improved. There are now separate error messages for file errors, connection errors, programming errors etc.

5469: The edit boxes in the IO view would not let go of the focus when enter or escape was pressed. This has been fixed.

5658: 16Mhz was not listed in the "Frequency" drop down menu when using the simulator and AT90CAN128. This has been fixed.

6366: The "Font and Color" item on edit menu was grayed out when the contents of the editor was not saved. This has been fixed.

6367: The context menu item "Show next statement" did not work from a line without source code mapping. This has been fixed.

6411: The I/O view did not remember the selected sort order between sessions. This has been fixed.

6419: Compiling a project in WinAVR in AVR Studio sometimes would crash on Windows Vista. This has been fixed.

6428: The tool tip in the IO view would some times display erroneous info when the windows was in 'tree view' mode. This has been fixed.

6519: The boot start address in the boot size fuse settings for 644/644P was set to F000-FE00. This has been changed to 7000-7E00.

6587: AVR Studio could crash on Vista when selecting "Remove all breakpoints". This has been fixed.

6615: Fixed an error in the ADC voltage reference selection combo box in the IO view for ATmega1280/1281/1284P/164P/2560/2561/324P/640/644/644P and ATtiny48.

6651: The IO view now indicates clearly if an undefined value is specified for a configuration register.

6698: The interrupt names in the XML file for ATtiny25/45/85 has been corrected according to the device data sheet.

3969: FLASH/EEPROM programming in ISP mode is now limited to ISP frequencies above 5kHz to avoid communication time-outs during programming.

Note:

Windows 95 is no longer supported by AVR Studio. The most recent version that supported Windows 95 was AVR Studio 4.12 SP3.

AVR Studio 4.13 SP1

(9/2007)

This release contains all the contents of earlier service packs and part packs. Please see release history for information about earlier releases.

Part support:

The following new parts have been added to AVR Studio:

- ATmega16HVA, AT90USB162, AT90USB82, ATmega328P, AT90PWM216, AT90PWM316

Check the device matrix to see which devices are supported by which tools: See a list of all supported devices and tools here.

New Features:

  • Enhanced XML files for the new I/O view, providing e.g. combo boxes for configuration registers in all devices.

Bug Fixes:

The following sections list the bugs that were present in AVR Studio 4.13, but that have been fixed in SP1. Several other minor bugs has also been fixed. Please also see the specific tools help books for a listing of bug fixes in specific tools.

General

6092: 'Find in files' function does not include the last line of the search.
The 'Find in files' function does not include the last line of the searched files in its search area.

4372: Typing the letter "v" in the name column of the watch window results in "Ctrl+V" behaviour.
When manually entering the name of a variable to be watched in the name column of the watch window, typing a "V" results in text being pasted from the clipboard instead of the letter being written.

4794: AVR Studio USB drivers does not support Windows XP x64.

4864: Pressing F1 in the Programming Dialog can bring up multiple help windows

GUI

6096: Tools must be added both in debug and edit mode.
When adding your own tools to the AVR Studio menus using the customize function, the tool must be added both in edit mode and debug mode (i.e. two times) to be visible in both modes. This is because AVR Studio has different workspace set-ups for the two modes.

3998: It is not possible to set watch on a variable from the disassembly window.
When highlighting a variable in the disassembly view, it is not possible to add it as a watch item.

2709: The register window shows register 31 (R32) twice at the bottom of the window.

4076: Studio toggles between showing relative and absolute filename in title bar.
Some actions, e.g. saving a file, will make the file name displayed in the title bar change from absolute to relative.

4734: When saving a file with a new name ("Save As...") the original file cannot be opened.
If the contents of the text editor is saved with a new name using the "Save As..." command, the original file cannot be opened in Studio before the renamed file is closed in Studio.

Editor

475: Pressing F10 to single step focuses the File menu
Pressing F10 to single step focuses the File menu and some times toggles which window has the input focus.

4694: Editor's behavior during run-mode is inconsistent
Users may only partly edit source files when the code is running on target. The user may type and add new code but not use features like text select etc.

Part Description Files

6059: New IO view only displays SRAM address of IO registers
The new IO view only displayed the SRAM address of IO registers. This was confusing for users who expected to see the IO address. The window now displays both the IO and the SRAM address.

5547: PRR register erroneously named PRR0 in ATmega644 XML file

Note:

Windows 95 is no longer supported by AVR Studio. The most recent version that supported Windows 95 was AVR Studio 4.12 SP3.

AVR Studio 4.13
(2/2007)

This release contains all the contents of earlier service packs and part packs. Please see release history for information about earlier releases.

Part support

AT90USB646 (JTAGICE MKII, STK500/525, AVRISP MKII, SIMULATOR, AVRASMII,DRAGON)

AT90USB647 (JTAGICE MKII, STK500/525, AVRISP MKII, SIMULATOR, AVRASMII,DRAGON)

AT90USB162 (JTAGICE MKII, STK500/526, AVRISP MKII, SIMULATOR, AVRASMII)

ATmega88P/168P (JTAGICE MKII, STK500, AVRISP MKII, SIMULATOR, AVRASMII,DRAGON)

Complete support for all latest AVR devices and tools. See a list of all supported devices and tools here.

Features

  • Complete Dragon device support. Please read the AVR Dragon user guide for all the details.

  • New I/O view and processor view prepared for the coming and more advanced devices. With 3 modes for viewing different I/O modules and registers, the user can easier and faster debug complex peripheral configurations. The old tree view is still available as one of the 3 view modes. Read more about the new IO View and the new Processor view.

  • New technical preview of a simulator based on automatic conversion of proper chip models. When using this method we can create more reliable simulator models with more complete peripheral support. This is still under development and we want feedback both on wanted features and usability. Read more about the simulator V2 preview.

  • AVR Studio is now fully compatible with the latest version of WinAVR. The former 64K limit on flash size when using WinAVR/GCC compiler have been fixed. It requires that you use the latest WinAVR release (after 2007-01-02)

  • New USB driver from Jungo(WinDriver USB v8.1) that support both 32 bit and 64 bit Windows XP. Please note that Vista 64 bit is not supported yet, but will be available in a service pack when ready.

  • AVR Studio is now fully compatible with Microsoft Windows Vista.

  • Bug-fixes

    • Fixes done in beta period

      • Corrected installation of 64-bit Windows XP USB driver.

      • 5414: Fixed opening of existing GCC projects. Settings are now restored properly.

      • 5399: Fixed character display in watch window.

      • 5399b: Added shortcuts to build menu.

      • 5293: The command next breakpoint added to debug menu.

      • 5469: Corrected value editing in I/O registers.

      • 5387: Processor view and I/O view is now restored correctly when switching between edit and debug mode.

      • 5487: Fixed a crash when clicking in the register pane when empty.

      • 4759: Problem with dual monitors is now fixed.

    • Various

      • 202: Enhanced the error message generated if an automatic firmware update fails for STK500/AVRISP. The user is now refered to the proper help documentation.

      • 4087: AVR Studio 4.13 now installs the USB drivers by default.

      • 4430: The JTAGICE mkII and AVR Dragon drivers required the document element to be the first node in the XML part files (processing instructions, comments etc was not accepted). This has been fixed.

      • 4736: The simulator could start generate Stack Overflow messages for a program using IJMP instead of RET/IRET to return from a function. This has been fixed.

      • 4835: The same error message was generated when an operation in the STK500 programming dialog failed, no matter what type of failure occurredd. This has been enhanced.

      • 4931: The error message displayed when the JTAGICE mkII or AVR Dragon connected to a device with an unknown signature was confusing, and has been enhanced in AVR Studio 4.13.

      • 4988: If one single part descriptor file contained an error (even though all other part files were correct), the JTAGICE mkII and AVR Dragon would list no devices in the Select Device and Platform dialog. This has been fixed.

      • 5201: The JTAGICE mkII option "Preserve EEPROM contents when reprogramming device" would override the users fuse selection without notifying the user. This could cause the EEPROM of the device to be erased silently. This has been changed so that if the "Preserve EEPROM" fuse of the device is set, the user is asked before the EEPROM is erased.

      • 5316: In some occasions, the value of sub elements of expanded data types in the watch window could not be edited. This has been fixed.

    • WinAVR support and GCC plug-in

      • 500: Moved source file in gcc-plugin. If a file is reported as missing when starting the plugin, an item is added to this file's context menu in the project tree.

      • 641: Setting for optimization not remembered when changing settings in a different tab afterwards.
        The scheme for OK/Cancel functionality in the property pages has been completely rewritten, and options that have dependencies across pages are remembered when switching from one page to another.

      • 3999: dep directory is deleted on each build. Sufficient to delete only the files below

      • 4116: Object files are not properly removed when removing them in library property page

      • 4117: Build fails when using old WinAVR distribution. Older cygwin make versions have problems with interpreting '\'.

      • 4381: Symbols are not passed to the assembler. Symbols defined with -D will now be passed on to the assembly rules in the generated makefile.

      • 4260: Build hangs, seemingly because of unix-style separators in .d file. This is fixed.

      • 4264: avr-size is now used if WinAVR release 20060125 or better is detected.

      • 4620: Wrong error message when trying to rename/create file with illegal character. This is now fixed.

      • 4664: The project tree is now sorted again when file 'Show File Paths' are chosen from the context menu.

      • 5056: Project Options->device edit/list box is case sensitive. This is now fixed.

      • 5057: Part support list are now synchronised with the latest WinaAVR release.

      • 5065: Inconsistent crash behaviour in 'Memory Segments' control. This is now fixed.

    • Elf/Dwarf parser:

      • 3439: Problem watching typedef const enum. This type was not evaluated all the way, and resulted in an error. These types are now evaluated correctly.

      • 4534: AVR Studio claims "The contents of the object file exceeds the maximum program memory of the device"
        The elf parser had an erroneous algorithm for computing the last program memory address. This is now fixed.

      • 4907: Parser doesn't handle zero-sized section of particular types. Segments of size 0 are now ignored when parsing the object file.

      • 4688: The Elf/dwarf parser did assume SRAM location for all variables. Newer versions of avr-gcc can be configured to output variable locations as absolute addresses (including the avr-specific offsets for eeprom and progmem). This enables the parser to discern between these variables.

      • 4815: The elf/dwarf parser was updated to handle objects with 32 bit program memory address space.

      • 5044: uint8_t was in some cases laid out as the innermost type. Code has been added to the parser to recognize all types in <stdint.h> as basic types.

      • 5202: Fails to load object files without .data or .text section

Note

Windows 95 is not supported from version 4.12 Service pack 3.

AVR Studio 4.12 SP4
(09/2006)

This service pack contains all the contents of earlier service packs and part packs. AVR Studio 4.12 is required to install this package.

New part support added

  • ATmega644P (AVRISP,STK500,JTAGICE MKII,SIMULATOR,AVRASM2,ICE50)

  • ATmega329P (AVRISP,AVRISP MKII,STK500,JTAGICE MKII,AVR DRAGON,SIMULATOR,AVRASM2,ICE50)

  • ATmega3290P (AVRISP,AVRISP MKII,STK500,JTAGICE MKII,AVR DRAGON,SIMULATOR,AVRASM2,ICE50)

  • ATmega325P (AVRISP,AVRISP MKII,STK500,JTAGICE MKII,AVR DRAGON,SIMULATOR,AVRASM2,ICE50)

  • ATmega3250P (AVRISP,AVRISP MKII,STK500,JTAGICE MKII,AVR DRAGON,SIMULATOR,AVRASM2,ICE50)

Features

  • Software,Firmware and user guide updates for AVR Dragon. New part support. Please see the AVR Dragon user guide for more details.

  • Firmware update for the JTAGICE MKII. Please see the JTAGICE MKII user guide for more details.

  • Firmware update for the STK500. Please see the STK500 user guide for more details.

  • Bug-fixes

    • 692: If a breakpoint was put on the last program address of a debugWire device, the JTAGICE mkII would not allow to run or single-step after reaching that breakpoint. This has been fixed.

    • 4412: Corrected bit definitions in UCSR0C and UCSR1C registers in ATmega162 script.

    • 4563: Corrected bit definitions in CLKPR register in ATmega640/128/256/164/324/644, AT90PWM and AT90USB.

    • 4667: A bug in ATtiny45, ATtiny25 and ATtiny85 scripts caused the simulator to ignore the contents of the PCMSK register when simulating these devices. This has been fixed.

    • 4684: The programming mode selection box in the programming mode dialog is now populated with the proper entries when the AVRISP mkII is connected.

    • 4719: STK500.exe would not program the extended fuse on ATtiny24. This has been fixed.

    • 4755: Corrected interrupt vectors for USART1 and SPM in AT90USB1286/1287 scripts.

    • 4757: Added PORTG in ATmega128 simulator subscript so that it is now listed in the simulator option stimuli/logging dialog.

    • 4765: Fixed a problem with pin change interrupt in simulator on ATmega325, ATmega329, ATmega645 on ATmega649.

    • 4826: Corrected BOD levels in ATtiny24/44/84 scripts

Note

Windows 95 is not supported in SP3 and SP4

AVR Studio 4.12 SP3
(06/2006)

The news in Service Pack 3 for AVR Studio are listed below. In addition it also contains all features of Service Pack 1 and 2.

New part support

  • ATtiny44 / ATtiny84

  • ATmega165P

  • ATmega168

  • ATmega169P

  • ATmega164P / ATmega324P / ATmega644P

  • AT90USB1286

  • AT90PWM2B / AT90PWM3B

All the above parts are supported by simulator and AVRASM2. See the simulator section for more details about support details.

Features

  • AVR Studio 4.12 with Service Pack 3 installed supports the AVR Dragon low-cost emulator and programmer.

Fixes

  • 634, 636: The GCC plug-in now allows all characters in file names except these: \,/,*,?,",<,>,|,:, ,$,%

  • 1037: Step out will now work in the simulator on an AVR GCC project. Implemented warning when using 'call' & interrupts without SP being initialized.

  • 2421: A problem with editing 16-bit values in the memory window has been fixed.

  • 2980: Fixed some issues with the 'Search All' feature for searching in project files.

  • 3385: Fixed a bug where sometimes entries were duplicated in the watch window

  • 3994: Pressing F7 when debugging a GCC project would rebuild any changes but also erroneously re-enter debug mode. This has been fixed.

  • 4016: The file type filter for the 'Save Project File' dialog for an object file project contained garbage characters. This has been fixed.

  • 4068: Studio did not detect correctly if an object file had changed when execution stopped. This has been fixed.

  • 4079: "Find in files" with an empty search string would hit on everything. This has been fixed.

  • 4094: On some occations new project was not added to the 'Recent Project' list. This has been fixed.

  • 4149: The XML converter now outputs more correct 16-bit register defniitions for C compilers.

  • 4164: Fixed inncorrect stack pointer (SP) definitions for several devices in the 'tiny' family.

  • 4169: Fixed some anomalities in the 'Find' and 'Find in Files' functionality.

  • 4181: AVR Studio now displays a warning when uploading FLASH contents through the "Up/Download Memory", informing the user that source code mappings might become incorrect for the affected memory area.

  • 4246: Files outside the project tree could sometimes be flagged as 'not found' in the GCC project window. This has been fixed.

  • 4257: When creating a new GCC project, the 'Create Folder' option is no longer locked to 'Yes'.

  • 4263: AVR Studio will now also load sections with the flag SHF_ALLOC (and not only SHF_EXECINSTR) from a GCC project.

  • 4366: The AVR Assembler now emits an error message when the 'mov' instruction is used with register pairs.

  • 4424: The AVR Assembler now accepts underscore ('_') as a separator anywhere in numbers. The separator is ignored when interpreting the number.

  • 4435: AVR Studio occationally crashed when multiple memory segments were specified in the bootloader area. This has been fixed.

  • 4441: AVR Studio no longer highlights keywords within string delimiters in the editor.

  • 4451: Character constant macro arguments would cause the assembler to fail. This has been fixed.

  • 4483: AVR Studio failed to read all memory content from some object files with bootloader sections. This has been fixed.

  • 4487: The GCC plug-in added an extra UL postfix to the frequency setting each time the General property page was modified. The UL postfix is now no longer used in the user interface, but is silently added to the build options.

  • 4565: ICE50 now supports step-out on devices with 3-byte stack pointer (e.g. ATmega256).

--------------------------------------------------------------------------------

AVR Studio 4.12 SP2
(03/2006)

A Service Pack is not a complete AVR Studio release. This Service Pack requires AVR Studio 4.12 to be installed previously. Includes all part support and fixes done in SP1

New Part support

  • ATmega164P (JTAGICE MKII, STK500, AVRISP, AVRISP MKII, SIMULATOR, AVRASMII)

  • ATmega324P (JTAGICE MKII, STK500, AVRISP, AVRISP MKII, SIMULATOR, AVRASMII)

  • ATmega165P (JTAGICE MKII, STK500, AVRISP, AVRISP MKII, SIMULATOR, AVRASMII)

  • ATmega169P (JTAGICE MKII, STK500, AVRISP, AVRISP MKII, SIMULATOR, AVRASMII)

  • AT90USB1287 (JTAGICE MKII, STK500/525, AVRISP, AVRISP MKII, SIMULATOR, AVRASMII)

Fixes

- AVR GCC Plug-in upgrade

This upgrade fixes the following problems that the plug-in had with the WinAVR 20060125 release:

1) Infinite loop when determining dependencies (After completing a build)

2) No reporting of memory usage

- JTAGICE MKII FW upgrade

Fixed problems with wrong MISO sampling in SPI mode

Oscillator calibration updated with correct number of hand-shake cycles

- JTAGICE FW upgrade

Oscillator calibration updated

- AVRISP MKII FW upgrade

- ICE50 bugfix and FW upgrade

--------------------------------------------------------------------------------

AVR Studio 4.12 SP1

--------------------------------------------------------------------------------

AVR Studio 4.12 (10/2005)

Part support

  • ATTiny261 (ICE50)

  • ATtiny461 (ICE50)

  • ATtiny861 (ICE50, JTAGICE mkII, STK500, AVRISP)

  • ATmega640 (JTAGICE mkII, STK500, AVRISP)

  • ATmega1280 (JTAGICE mkII, STK500, AVRISP)

  • ATmega1281 (ICE50,JTAGICE mkII, STK500, AVRISP)

  • AT90CAN32 (ICE50,JTAGICE mkII, STK500, AVRISP)

  • AT90CAN64 (ICE50,JTAGICE mkII, STK500, AVRISP)

All the above parts are supported by simulator and AVRASM2. See the simulator section for more details about support details.

Features

Data breakpoints with hit count and program breakpoints with hit count are now supported on ICE50, JTAGICE mkII and simulator. The breakpoint system is now redesigned to be more robust and reliable. Also introducing a new fully customizable breakpoints and tracepoints window to offer a convenient overview and easy navigating between all breakpoints and tracepoints. Data breakpoints can easily be set by drag’n drop variables from the source editor and memory windows to the breakpoints and tracepoints window.

Program breakpoints can now be set with run-time hit counts. Data breakpoints can be set to break on read or/and write access to any memory location, including numerous conditions as larger than, less than, equal to and range. All the breakpoints can be used as watch-points, and are always properly saved and restored between project sessions even if source files are modified.

Please note that support level vary between the different debug platforms. See the actual user guides for more information about support details.

Integrated development with any AVR GCC compiler is now supported with AVR Studio. WinAVR or any other AVR GCC compiler must be downloaded and installed separately, but with IDE support in AVR Studio you can easily and fast get started with C code development and debugging. Please refer to the AVR GCC IDE user guide section for more information.

The user interface has been improved with a new docking system called smart docking. Using a new docking mechanism, you will see exactly where the dragged window can be docked. Small markers will indicate sides where the bar can be docked. This is default on, but may be turned off to use the old docking method. With detachable tab windows you can place and group your windows wherever you want. Also introducing workspace configuration that let you easily save and restore your desktop set-up.

AVR Studio now supports the new AVRISP mkII that offer USB, more robust and faster programming. See the user guide for more information.

AVR Studio now supports the MicroC/OS-II RTOS plug-in that is distributed in an own package.

A new version of the USB driver is included. Version 7.01.

--------------------------------------------------------------------------------

AVR Studio 4.11 SP3 (04/2005)

New part support added

ATmega644 (JTAGICE mkII, STK500, AVRISP, simulator, AVRASM2)

ATtiny25 (ICE50, simulator, AVRASM2)

ATtiny45 (ICE50)

ATtiny85 (ICE50, simulator, AVRASM2)

Fixes

FIxed: Part of right-click context menu, like Run to cursor, Set next statement, etc was missing in disassembly view.

Fixed: Large EEPROM arrays/structures in UBROF object files were incorrectly loaded.

Fixed: JTAGICE mkII loss of communication when loading large EEPROM data.

Fixed: Assembler failed when using ',' and '\'' character constant in preprocessor macros.

Fixed: Assembler produced output file even when source file could not be opened.

Assembler improved error handling when attempting to do conditional on forward-referenced symbol.

Fixed: Problem when struct tag (name) was the same as variable name in Elf/Dwarf files (e.g.. struct stat stat; )

Corrected bit names in mega256x USART 1-3 (XML and include files)

Fixed: "Error creating process" when attempting to build assembler project

Fixed: tiny15 timer0 overflow interrupt not working in simulator

--------------------------------------------------------------------------------

Welcome to AVR Studio 4.11 Service pack 2 (03/2005)

What's new in this update...

Part support

ATtiny24 (JTAGICE mkII, STK500, STK505, AVRISP, simulator, AVRASM2)

ATmega645 (ICE50, JTAGICE mkII, STK500, STK502, AVRISP, simulator, AVRASM2)

ATmega6450 (JTAGICE mkII, STK500, STK504, AVRISP, simulator, AVRASM2)

ATmega649 (JTAGICE mkII, STK500, STK502, AVRISP, simulator, AVRASM2)

ATmega6490 (JTAGICE mkII, STK500, STK504, AVRISP, simulator, AVRASM2)

ATtiny28 (Simulator and AVRASM2)

ATmega644 (ICE50 and AVRASM2)

Features

JTAGICE mkII with OSCCAL calibration. Please refer to Application Note AVR053. (Beta feature)

Fixes

- Disconnected mode has been added to the programming tool. This means you can now again open the STK500 dialog without any tool connected.

- Fix for ATtiny11 programming support in STK500

- Fix to correct STK500/AVRISP reading of tiny2313 oscillator calibration values. Used to read 8 MHz value for 4 MHz and opposite.

- Support for bitfields when using UBROF object files

- STK500 can now understand incontiguous HEX files

- stk500.exe now supports -a and -g.

- stk500.exe now does an auto search on COM ports

- stk500.exe now supports stopped oscillator on STK500. stk500 -!0 stops the clock.

- Extended start-up delay fixes AVRPROG connection for many USB to COM adapters

- In STK500 dialog, ATmega3290 could be selected when customers selected ATmega329. Same problem could occur for other devices that is a sub string of other devices (ATmega16 -> ATmega162). Fixed.

- Now possible to include files in avrasm2 projects that reside in the project directory without absolute pathname or specifying project directory in path name

- Formfeed (ASCII 0x0C) now accepted as character by assembler

- jtagicemkii.exe earlier missed the last byte when reading Flash and EEPROM. Fixed.

- Studio no longer hangs if the JTAGICE mkII options are changed before starting the debug session

- Fixed programming of mega128 with JTAGICE mkII in daisy chain when it was not the first device.

- Fix in ICE50 upgrade that lowers the chance of upgrade failure.

- Fix in elf/dwarf parser. Application no longer crash when loading elf object files without .eeprom section.

--------------------------------------------------------------------------------

Welcome to AVR Studio 4.11 (01/2005)

What's new in this release...

Debug platform updates

New firmware and part upgrade. Please refer to the JTAGICE mk IIhelp for more information

New firmware and part upgrade. Please refer to the ICE 50 help for more information

Programming support updates

A new major version (V2) of the STK500 firmware is released with this version of AVR Studio. Along with this, the protocol and driver for the STK500 has been updated. Please refer to the STK500and AVRISPhelp for more information.

A separate programming platform connection dialog gives more control of which platform and port to connect to, and reduces the connection time for most platforms. The programming dialog for the STK500, AVRISP, JTAG ICE and JTAGICE mkII is now invoked with the menu item "Program AVR".

The programmer dialog now uses the available part description files to determine which devices are supported by the various programming platforms.

The ISP frequency used during ISP programming can now be controlled independently of the STK500 oscillator on the Board tab.

New simulator part support

ATtiny45

ATmega2560

ATmega2561

AT90PWM2

AT90PWM3

A new simulator help is made and the contents are updated with generic and part specific known issues.

New tools and features

AVR Assembler 2 (AVRASM2) is now the default assembler in AVR Studio, but the old assembler is still provided and can be selected in AVR Studio (Assembler Options). Note that the old assembler is now UNSUPPORTED and will not be updated with support for new AVR parts. Please refer to the assembler help for more details.

The assembler options dialog are updated with some additional features: Default settings can be changed. Pre and post build commands can be added. Options are now project specific and saved to the project file.

ELF/DWARF parser version 1.0 is released. This component enables AVR Studio to debug object files created with AVR-GCC. Please refer to Object files format and support for more information.

No major updates have been done to the User Interface, but there are many minor fixes done to make a more stable and reliable system. Some of the fixes are listed below.

Fixes

USER INTERFACE

* The Project wizard and select debug platform/device dialog have been updated to always show the actual settings

* Actual font settings are displayed when opening the font dialog

* Fixes done to the breakpoint list to avoid multiple entries

* Fixed problem when saving editor settings

* Fixed some scrollbar and red coloring problems in the memory view

IAR UBROF

* Array indexes for is now displayed in the right order.

* IO registers used by the project is now visible in watch by their inherent name.

JTAGICE:

* Changed the ATmega64 device descriptor so that the ADCSRB register is accessible in Studio during debugging.

* See the JTAGICE MKII help book for more information about fixes

ELF/DWARF parser fixes since Beta-3:

* Problem with watching short variables has been fixed.

* Problem with watching functions with no type information has been corrected.

* const arrays' type name are now correct

* Parsing of memory content from object files has been fixed and verified

* Breakpoint problems and other problems connected to issues with different variants of paths has been fixed

* Unsigned char values are now displayed properly and not as negative values once the number is > 127

* const pointers are now displayed as const pointers and not as pointers to const objects.

* Memory usage has been reduced by rewriting the id scheme of debugging information entries.

* Problems uploading elf/dwarf object files to ice50 and ice40 using USB has been fixed.

MISC

* Fixed problem that causes unstable operation when placing a breakpoint on line 65535 of an Assembler project

SIMULATOR

* ATtiny26: various fixes for Timer/Counter1.

* ATtiny15: various fixes for Timer/Counter1.

* Various fixes for most devices' Timer/Counter0: is now cycle-correct and fully functional.

* Fixed problem with timers clearing PORT bits when output compare was not enabled.

* Writing to PIN toggles corresponding PORT register for newer parts: AT90CAN128, ATmega165,169, 325, 329, 3250, 3290, 48/88/168, 649, ATtiny13 and ATtiny2313.

* Added support for IVSEL flag.

* ATmega8515: corrected prescaler on Timer/Counter0.

* Unsupported instructions will not be executed. For instance, MUL is not available on ATtiny13.

* Corrected cycle count for interrupts.

* ATtiny13: ACSR bit 7 (AC) could not be set.

* ATmega8: Fixed maximum speed and added missing interrupt vectors.

ICE200

* Clock settings are now saved and restored properly

* Reset operation in run mode are fixed

Please refer to the other help books for more information

Miscellaneous

*The installation procedure now installs all the latest XML parser distribution files (MSXML 4.0 SP2)

*New USB WinDriver upgrade from ver 6.22 to ver 6.23. This may fix stability problems on specific OS/HW systems.


Contact information and feedback

Contact Information

Please report any problems you experience with this version of AVR Studio. We would also like to receive good ideas and request that can help to improve further development and releases of AVR Studio.

For support email avr@atmel.com

For the latest updates of AVR Studio, please visit our web site: www.atmel.com

For information about the AVR Studio 4 Software development kit, please visit our web site: www.atmel.no/SDK/

For technical AVR Studio 4 questions email us at avrbeta@atmel.com

Bug Report

Copy the information from the version dialog (se figure below) and include it in the email to Atmel. Also, make sure to provide a detailed description of the problem:

1) Describe how to recreate the problem
2) Attach any test program that causes the problem
3) Check that the copied version information contains used debug platform and Device.

Figure: The version dialog are opened by the file menu Help->About, then push the Version button. Debug platform and device are only displayed if you are in debug mode. Push the copy button to copy the contents to the clipboard.


Tutorial

Getting Started with IDE development

Introduction

Those of you that have multiple years experience with microcontroller development can skip this part and advance to the next topic. This section is intended for those of you that are new to using an integrated development environment when designing with microcontrollers.

AVR Studio 4 is a large piece of software, it supports several of the phases you usually go through when you create a new product based on an AVR microcontroller. Typical phases are:

  1. Product definition. Based on your knowledge of the task you want to resolve and market input, the product that should be created is defined.

  2. Formal specification. A formal specification for the product is defined.

  3. A project team consisting of from one to many are assigned the task of creating the product based on the formal specification.

  4. The project team goes through the normal sequence of design, development, debugging, verification, production planning, production, test and shipment.

AVR Studio supports the developer in the design, development, debugging and verification part of the process. I'll try to give a brief presentation of why and how to use this tool in the following sections.

Tools of the trade

AVR Studio 4 consists of many views and sub-modules. Each of them supports parts of the work you try to undertake. The major views are described in the following.

Project management

All code creation within AVR Studio is done as programming projects. All code projects has a project file that maintains information about the project, which files are included, assembler set-up, customized views and so forth. The project file ensures that the project stays the same every time you come back to it, and that everything is set up properly and will assembler / compile.

Editor

This is the place you do the actual work of coding. AVR Studio 4 uses the Stingray editor from Bsquare corporation. It is a full fledged programming editor with all the functionality that you are used to, including syntax color coding (that can be altered and extended by the user). The editor window is also used when you debug your code, break and tracepoints can be set at the left margin of the view. The usage is straight forward.

The output tabs

is a collection of several views integrated into one tabbed frame. The tabs on the frame selects the view you want. You can select from:

  • The Build view. Output from the compiler / assembler is routed to this window. The result of the compilation / assembly can be read here.

  • The Messages view. AVR Studio 4 is made up by many SW objects encapsulated with Microsoft DCOM technology. Quite a few of the software objects has no user interface of their own. The Messages window is the common window for all modules of the software to present messages to the user. Messages are color coded. Most messages are plain messages of no significant priority. They have no color. Warnings signalling potential problems are yellow. Errors are red. All messages can be time stamped (right click your mouse over the window and select the time stamp option). There is even a filter function enabling you to turn messages on and off.

  • Find in files view. The AVR Studio 4 has an advanced "find in files" function. The result of the search is routed to this window.

  • Breakpoints. Lists all active breakpoints in all modules. Breakpoints can be enabled, disabled and removed in the view.

The workspace tabs

AVR Studio 4 workspace view consists of a number of views that are intended to help the developer to debug the code he has written in a systematic way:

The Project View

The Project view lists the files that are included in your code project, if you have created a code project. If you have opened an object file for debugging, the project view shows the name of the currently loaded object file as well as the source files that the object file refers to.

The I/O View

The I/O view is divided into:

  • The register file section. All AVR controllers have a set of 32 general purpose registers that freely can be used by the programmer or the compiler. Every time a simulation or an emulation breaks, the view is updated with the current values of the internal registers in the part. If the value has changed since the last break, the register appears color coded.

  • The processor core register section. As for the register view, the processor registers are updated when the execution breaks. Here you can view the program counter, the stack counter and so forth.

  • The I/O register section. Each different AVR device is defined through the peripherals the device supports. An ATmega128 has a completely different set of peripherals compared to an AT90S8515, but the core and the instruction sets of the two chips are quite equal. All peripherals are controlled through 8 or 16 bit registers that can be read and/or written. The I/O view is configured for the part you have selected and shows all registers and bits logically grouped. Bits and registers can be both read and written when the emulation is in break mode. This view gives you total control over the device subjected to debugging. This view is a major difference from integrated development environment such as Microsoft Visual Studio, which relates to the underlying operating system and not the microcontroller itself. The view itself is based on a XML script, and a new script is made available for each new device released by Atmel. Device updates is done through the Atmel homepage on the web.

The Info View

The info view is divided into:

  • The interrupt vector section. The interrupt vectors for a device usually reflects the peripherals. Thus they are different for each AVR device. This view lists all interrupts and their corresponding interrupt vector addresses. Useful stuff if you are to program interrupt service routines (and most microcontroller programmers are!)

  • The available packages section. Lists the available packages of the device, and the corresponding pinout of each package. The tooltip help will contain information on the use of most pins. Again, this is a useful feature if you are debugging both HW and SW, you have the necessary pin information in view at all times.

  • Registers, this is a complement to the I/O view. The I/O view displays all registers grouped logically into peripheral functions. The register view lists all registers from high to low address

The Watch View

Debugging high level languages as C/C++ you need to watch variables. With tools like AVR Studio 4 this is an easy task, click on the variable you want to watch and drag-and-drop it into the watch window. If the variable you selected is a struct or an array a [+] symbol will occur in front of the variable, indicating that it can be expanded in the view. When the execution breaks, the variable automatically will be updated - if it is in SCOPE. Different languages define their scopes differently, to be in scope simple means that the variable actually exist in memory at the location where the program stopped it's execution.

The Memory View

A microcontroller like the AVR can do nothing without memory. The code executed lies in the program memory, the variables are located in SRAM (mainly), the I/O registers are mapped into I/O memory area, and the EEPROM is yet another memory area. The Memory View is able to display all the different memory types associated with the AVR devices. And as for the watch and the I/O view, the area in display on the screen is automatically updated when an execution break occurs. Very simple.

Code projects

AVR Assembler

are easy! Currently the AVR Assembler is supported. This will change in the months to come, as AVR Studio is designed to be a front end to other assemblers and C/C++ compilers as well, check the WEB for upgrades, but currently you write code with the aid of the AVR Assembler. For small program systems it is not a bad choice, it supports all the different AVR parts through the it's DEVICE directive, which will help you from using instructions not supported in the device you have selected, and it is blistering fast due to the fact that it assembles executable code directly, there is no linker stage.

To get started is simple, when AVR Studio loads, select the AVR Assembler from the project dialog box, select a project name directory where the project shall reside, and click finish. A project file is created, an *.asm file is available in the editor window and you are set for writing your first instructions. Check out the online help. The AVR assembler has it's own book where all instructions and directives are explained. In addition, there is context sensitive help in the editor window, just write an instruction, place the cursor on top of the instruction and press F1, and you will get help on the syntax on the selected instruction.

If you develop for a specific device in mind you should include the *.def.inc file for the part. Each part has it's own *.inc file that defines all internal registers, bits and a lot of other stuff that makes it simpler for you to write code for the part. In addition the *.inc file sets the device directive for the assembler, letting the assembler know which part you are developing for.

The part files are found in the \Program Files\Atmel\AVRTools\AVRAssembler\Àppnotes folder on your computer. A include file for ATmega8 will typically be named "m8def.inc". You do not have to give a path with the *.inc file as long as it is found in the default directory.

Press F7 in order to compile. The result of the compilation will show in the previously described Build view in the output window frame.

A programming project can be set up in minutes!

Debugging external code projects

For larger code projects, assembler may not be nirvana. C/C++ may be. There is a number of good C compilers available for the AVR family of microcontrollers including the compilers from IAR and Imagecraft which can be purchased, or the AVR GCC compiler that can be downloaded from a number of sites, including www.avrfreaks.com.

Using these compilers, you typically program in an environment set up by the compiler vendor. You maintain your code project in a 3rd party tool. You typically set the compiler to produce code in DEBUG mode, which means that references to the high level code will be added to the compiled source. When you compile and link, you create an object file, and that object file can be loaded directly in AVR Studio 4.

Different compilers uses different object file formats. A number of formats are supported by the industry, some are proprietary for the compiler vendor company (like UBROF from IAR) and some are open and documented for everyone (like ELF used by the AVR GCC C compiler). In order to understand the code that your compiler and linker created AVR Studio must use an object file parser.

Currently AVR Studio 4 supports and will automatically detect UBROF (IAR), Nordic (AVR Assembler), COFF (Imagecraft, Codevision, ELAB, etc), and Intel Hex object files. An ELF/DWARF object file parser is in the planning.

In order to use an externally created objectfile with the AVR studio, use the Open File option in the File pulldown menu. If the file is created in debug mode, AVR Studio will create some magic: It opens the file, detects which object file format is used, locks up the source code and displays the source code in the editor view. If you have an emulation platform available (or have selected the internal simulator) you are ready to rock: Pressing F5 will start the selected debug mode. You can set breakpoints in the code view, you can crag-and-drop variables down to the watch view, you can manipulate the controller through the use of the I/O view.

So, external code projects and AVR Studio 4 is an easy match.

Using AVR Tools

Atmel makes a number of HW tools designed to make your life as a developer easier. The current version of AVR Studio 4 supports the following tools:

  • ICE50. This is a brand new high end In Circuit Emulator. When you use it, you remove the AVR controller from your target hardware and replaces it with the probe /personality adapter from the ICE. The ICE50 hooks up over a fast serial communications link (in the future it will also use USB). When you select RUN in AVR Studio, AVR Studio downloads the code to execute together with information about breakpoints, tracepoints, processor speed, you name it, to the ICE, and the tells the ICE to run until it hits a breakpoint in the code or a break condition occurs. The ICE behaves EXACTLY like the chip it emulates. When a break condition is hit, the ICE50 will notify AVR Studio, and the AVR Studio will request information about all details of the chip that is in display in the screen, such as the value of all internal registers, the stack pointer, memory contents and so forth. The ICE50 is an FPGA based implementation of the part with additional HW for emulating the analog parts of the device. It also includes trace, which basically means that every instruction it executes including arguments is stored in memory, and when the user breaks, all instructions can be displayed in readable form in a trace view. This can be an excellent tool for finding errors in the execution flow. This is an indispensable tool for large high level programming language projects, and it is also an excellent tool for finding errors in the target HW design.

  • JTAGICE. This is also a rather new low cost high performance In Circuit Emulator. The larger ATmega devices (the ones with >= 16KByte flash memory) includes a JTAG/OCD high speed communication port. In HW on those devices (currently ATmega128, ATmega323, ATmega32, ATmega16) there is circuitry that can stop the part and read out the internal state of the part including the value of internal memories and registers.

  • STK500 / 501 is a very successful Starter Kit. It supports all AVR devices, it has LED's and switches so you can write programs for your device that reacts to real life events, and all programming modes of the device is supported. You can also use it as a test target for ICE50 or JTAGICE. STK501 is a mezzanine board that supports the ATmega128 TQFP package. It includes adapter for the JTAGICE.

  • AVRISP. The new In System Programmer. Make an ISP port on your target design and program / reprogram your device. Simple as that.

Together, AVR Studio 4, ICE50, JTAGICE, STK500/501 and AVRISP makes a complete code creation, simulation, emulation, programming and test environment for the new Atmel AVR parts.


Overview Project Management

AVR Studio projects

Introduction

AVR studio is an Integrated Development Environment (IDE) for writing and debugging AVR applications. Currently as a code writing environment, it supports the included AVR Assembler and any external AVR GCC compiler in a complete IDE environment.

Many object file formats are also supported from various compiler vendors. You can open and debug these files, but you are not able to edit the code from within AVR Studio. Using your own editor to edit code and AVR Studio to debug (use the reload button), you still have a powerful code/debug environment.

Using AVR Studio as an IDE gives you 2 main advantages:

  1. Edit and debug in the same application windows. Faster error tracking.

  2. Breakpoints are saved and restored between sessions, even if code are edited

Save and open projects

All projects are saved with your selected name with the ending APS. When the user wants to reopen a project, this can be done under the file menu and the recently used file list, or under the project menu, open project.

Project Output view

After building,assembling or compiling the project, the build output window prompts with messages. If any errors occur, the user can double-click on the message, and the marker will show correct position in the source window.

See also
New project
Select platform and device


Startup wizard

The startup wizard are displayed every time you start AVR Studio 4. From within this dialog you can quickly reopen the latest used projects, change debug platform/device setup or create a new project. Just double-click on the wanted project and it will automatically open and restore to its last settings.

The startup/project wizard can also be opened from the project menu.

Other functions are described in more detail below.

Show this dialog at startup

Uncheck this checkbox if you don't want to display this dialog on startup.

New project

If you want to create a new project, use this function. This is described in more detail here

Open

If you want to load an existing project or a single debug object file, press this button.

Next Step

This button is highlighted when a project is selected. Press next to select platform and device to eventual change the debug platform or device setup for the selected project.

Load

Load the selected project.

Help

Open this page

See also
New project
Select platform and device


New project

Description

Select Project->new project from the menu, and the dialog below will appear. The startup wizard will also have this option.

Project types

Currently two project types are available listed in the project type list box. Atmel AVR Assembler and AVR GCC. The assembler (AVRASM2) are distributed with AVR Studio, but you have to download a GCC compiler to create and use an AVR GCC project.

Projects can also be created by loading supported object files. File->Open file must be used to create such projects.

Project name and initial file

Input the project name. Default the initial file will have the same name (ASM or C) and will be created, but this can be changed. A folder with the project name can be created, but this is not default selected.

Next Step

If project name and project type are ok, press next to select platform and device to simulate/emulate. You can also finish now, but then the debug platform and device must be selected when a debug session is started.

See also
Assembler project
Object files
AVR GCC project
Select platform and device


Object files

Description

Object files can be loaded by using the menu command Open file. See the Object files format and support for more information.

If the project is moved from the original location where it was build, you will be asked to select a folder where the source files resists. The source will then be re-mapped and saved in the project file for use next time you load the project. The mapping can be cleared by deleting the project file (APS)

The project view will display all your project files, but them will be set as read only.


Create new project

Assembler project

Description

When a new project is created or an old project is loaded, the project view will be displayed with all the project files. Files can be added, created or removed from the project list using the context menu.

Source files
All the source files are listed below this item. The entry file is marked with a special icon [image], and can be changed using the context menu. Double click on any file to open it in the editor.

Included Files
All include files are listed here. Double click on any file to open it in the editor.

Labels
All labels in your assembler program are listed her. Double click (or use space) on any item to show its location in the source. A blue marker will point to the correct line.

Output
All output files will be displayed below this item

Object file
Name of the output object file

Context menu

Rigth click menu, commands | Shortcut | Description
Set as entry file | SPACE | Set the selected file as entry file
Open file | ENTER | Open the selected file
Remove file | DEL | Remove the selected file from the project
Create new file | Shift-INS | Create a new file and add it to the project
Add existing file | INS | Add an existing file to the project

Docking
This is a docking view. You can switch between docked and un-docked with the right menu command Docking view

Build menu and toolbar

Two build commands are available from the menu and toolbar:

Assemble (F7)
Will assemble the entry file.

Assemble and run(CTRL+F7)
Will assemble the entry file and start debugging automatically if the assemble operation succeed.

See also
Assembler options


Assembly project

Assembler Options

Open the options window on the menu Project->Assembler Options. This menu item is only available when an assembler project is open.

fig, Assembler setup dialog, default settings shown.

Description of the various settings

Hex Output format
The following file formats can be selected as additional output format:
1. Intel Hex
2. Generic Hex
3. Motorola Hex (S-record)

Create Map file
This option is always set on. A MAP file will be created and added to the project view when the build command is executed.

Create List file
A LST file can be created when the build command is executed. Default this option is off.

Wrap relative jumps
The AVR RJMP/RCALL instructions allow a 12-bit PC-relative offset, corresponding to +/-2k words. For devices with 4k words (8k bytes) or less FLASH program memory, the Wrap option causes the assembler's offset calculation to wrap around over the addressable program memory range, enabling the entire program memory to be addressed using these instructions.

For devices with more than 4k words of program memory, using this option may cause unpredictable results and it should be turned off.
If it is left on, the assembler will produce a warning when wrap takes effect:

warning: Wrap rjmp/rcall illegal for device > 4k words - Turn off wrap option and use jmp/call

This diagnostic is given as a warning and not an error to retain compatibility with earlier versions of the assembler, but should be treated as an error by the user. The JMP/CALL 2-word instructions take 22-bit absolute addresses and should be used instead.

AVR Assembler
Select between assembler v2(default) and assembler v1. If you have compatibility problems with the new Assembler v2, you can optionally use the old Assembler v1. Options for Additional parameters and Unsupported Instructions will not be available when using Assembler v1.

Unsupported Instructions
Default this option is set to give an error when the assembler finds unsupported instructions for the actual device. Optionally, you can output a warning. NOTE: You have to include the correct include file for this option to work properly.
This option is only available for Assembler v2.

Additional Include Path
Additional Include path can be set when using the Assembler v2. The default include path can be changed when using Assembler v1.

Assembler v2 default path: \Atmel\AVR Tools\AvrAssembler2\Appnotes
Assembler v1 default path: \Atmel\AVR Tools\AvrAssembler\Appnotes

Additional Parameters
Additional parameters (options) can be set when using the Assembler v2. Note the question mark (?) which give you a direct link to the assembler help page which describes the additional parameters.

Descriptions of the buttons

OK
The Dialog will be closed down and the actual settings will be effective. The project settings are saved to the project file when the project are closed or manually saved.

Cancel
The Dialog will be closed and the actual changes in the settings will not take effect.

Set Default
Set the current settings as default settings when creating a new project. All the visible options are saved, not the advanced options.

Reset settings
Restore the current settings to original default settings. Note that the advanced options are not affected.

Advanced
Open a dialog with pre- and post- assembler settings. Optional command line sequences can be executed before assembling (pre) and after assembling (post).

Help
Open this help page


Debug platform

Debug platform selection

Description

AVR Studio can be targeted towards the built-in AVR Simulator, or an AVR In-Circuit Emulator (bought separately). Check out device selection for how to select your debug platform and device.

Platform Independent Debug Environment
Independent of which debug platform is running, the AVR Studio environment will appear identical. When switching between debug platforms, all environment options are kept for the new platform. Some platforms have unique features, and new functionality/windows will appear.

Differences between Platforms
Although all debug platforms appear identical in the debug environment there will be small differences between them. A real-time emulator will be significantly faster than the simulator. An emulator will also allow debugging while the system is connected to the actual hardware environment, while the simulator only allow predefined stimulus to be applied. In the simulator, all registers are always potentially available to be displayed, which might not be the case with an emulator. While the AVR Studio User's Guide describe the general behaviour of AVR Studio, these differences are thoroughly described in the platform's User Guide.

Status Bar
The Status bar always indicate whether debugging is targeted at the AVR In-Circuit Emulator or the built-in AVR Simulator. The name of the actual device and debug platform is output on the lower status bar:


Device selection

Description

Debug platform and device selection can be done by selecting debug->Select debug platform and device. All on-system debug platforms and devices are listed. When selecting a platform name, all supported devices for that platform are listed in black color, and unsupported are listed in gray. Click finish when your selection is done.

For debug platforms like ICE50 and and JTAGICE (mkII) you need to specify a communication link. The connect selection in this dialog let the user select between the available communication links, if any. Default selection is Auto and this will search through the available communication links till the selected debug platform is detected. You can also setup the number of any COM ports to try in the tools->options menu.

A note for the ICE50:

Before the ICE50 can emulate the selected device, the corresponding ICE50 device file must be present in ICE50 memory. The ICE50 is capable of holding 4 device files in memory, but with more devices being released, ICE50 will support more than 4 parts. Thus, not all of them can reside in memory at the same time. Before the emulation is executed, AVR Studio checks with the ICE50 to see if the device file is present. If not, a dialog box will occur, and the user will be requested to load the appropriate device file before the emulation is started. For explicit configuration of the ICE50 and device files, use the ICE50 options dialog found in the Debug menu.

See also
Debug platform selection
Tools and device support


Object files format and support

Description

All debug sessions require that you load a debug object file that is supported by AVR Studio. Usually a debug file contains symbolic information which is not included in a "thinner" release file. The debug information enables AVR Studio to give extended possibilities when debugging, e.g. source file stepping and symbolic watches.

Below is a brief description of the object file formats that is supported by AVR studio.

Object file format | File | Description
Extended Intel hex | .hex | This format is usually produced by most of the developer packages and is targeted for release testing. No additional debug information is included, and therefore not a recommended format for debugging. The file contains only program memory data. Source file stepping and symbolic watches are not available.
UBROF | .d90 | UBROF is an IAR proprietary format. The debug output file contains a complete set of debug information and symbols to support all type of watches. UBROF8 and earlier versions are supported. This is the default output format of IAR EW 2.29 and earlier versions. See below how to force IAR EW 3.10 and later versions to generate UBROF8.
ELF/DWARF | .elf | ELF/DWARF debug information is an open standard. The debug format supports a complete set of debug information and symbols to support all type of watches. The version of the format read by AVR Studio is DWARF2. AVR-GCC versions configured for DWARF2 output can generate this format.
AVR COFF | .cof | COFF is an open standard intended for 3rd party vendors creating tools that give AVR Studio support. With AVR Studio 4.09 the AVR COFF format support is extended to support full debugging with source file stepping and complete watch support.
AVR Assembler format | .obj | The AVR assembler output file format contains source file info for source stepping and is an Atmel internal format only. The .map file are automatically parsed to get some watch information.

Before debugging, make sure you have set up your compiler/assembler to generate a debug file like one of the formats above.

3rd party compiler vendors should output the ELF/DWARF object file format. Contact us here for more information.

How to force IAR EW 3.10 and later versions to generate UBROF8

By default IAR EW 3.10 and later versions output UBROF9. Currently, AVR Studio does not read this format. To force the debug format to UBROF8 open the project options dialog for the project and select the XLINK tab. This will display the dialog shown below. Change the 'Output format' setting to 'ubrof 8 (forced)' as shown below. Note that the default file name extension is changed from '.d90' to '.dbg' when selecting this option. To keep the '.d90' extension, click the 'Override default' check button and change the extension.


Debug control

Description

Debug Control
Debug Control is used for controlling the execution of a program. All debug controls are available through menus, shortcuts and the Debug toolbar.

Note! If source level information is available in the object file, all debug operations will continue to execute executed until the first source statement is reached. If no source line is encountered, the program will keep executing. To stop execution, switch to disassembly mode before issuing a Break command.

Start Debugging
This command start the debugging process, and all debug control commands will be available. Normally in debug mode no code editing can be done. It connects to the debug platform, load the object file and performs a reset.

Stop Debugging
This command stop the debugging process. It disconnect the debug platform, and edit mode will be available.

Reset (SHIFT+F5)
The Reset command performs a Reset of the execution target. If a program is executing when the command is issued, execution will be stopped. If the user is in source level mode, the program will, after the Reset is completed, execute until it reaches the first source statement. After the Reset is completed, all information in all windows are updated.

Run (F5)
The Run command in the Debug menu starts (or resumes) execution of the program. The program will be executed until it is stopped (user action) or a breakpoint is encountered. The Run command is only available when the execution is stopped.

Break (CTRL-F5)
The Break command in the Debug menu stops the execution of the program. When the execution is stopped, all information in all windows are updated. The Break command is only available when a program is executing.

Single step, Trace Into (F11)
The Trace Into command in the Debug menu executes one instruction. When AVR Studio is in source mode, one source level instruction is executed, and when in disassembly level, one assembly level instruction is executed. After the Trace Into is completed, all information in all windows are updated.

Step Over (F10)
The Step Over command in the Debug menu executes one instruction. If the instruction contains a function call/subroutine call, the function/subroutine is executed as well. If a user breakpoint is encountered during Step Over, execution is halted. After the Step Over is completed, all information in all windows are updated.

Step Out (SHIFT+F11)
The Step Out command in the Debug menu executes until the current function has completed. If a user breakpoint is encountered during Step Over, execution is halted. If a Step Out command is issued when the program is on the top level, the program will continue executing until it reaches a breakpoint or it is stopped by the user. After the Step Out command is completed, all information in all windows are updated.

Run To Cursor (F7)
The Run to Cursor command in the Debug menu executes until the program has reached the instruction indicated by the cursor in the Source window. If a user breakpoint is encountered during a Run to Cursor command, execution is not halted. If the instruction indicated by the cursor is never reached, the program executes until it is stopped by the user. After the Run to Cursor command is completed, all information in all windows are updated. As the Run To Cursor instruction is dependent on a cursor position, it is only available when the Source Window is active.

Auto Step
The Auto Trace Into command in the Debug menu repeatedly executes Trace Into instructions. When AVR Studio is in source mode, one source level instruction is executed, and when in disassembly level, one assembly level instruction is executed. After each Trace Into is completed, all information in all windows are updated. Auto Trace Into run until it is stopped (user action) or a breakpoint is encountered (optional).

Set next statement
With this command you can set the yellow marker anywhere in the code. In the source editor, right-click on the source line on which you want to place the yellow marker. Chose the 'Set next statement' command from the context menu. The next single step or run command will execute from this point.

Show next statement
Set yellow marker at the actual program counter location. The actual window is focused.

Live Debug

Live debug is only available for AVR ONE!

Attach
The Attach command is used to attach to a running application. See AVR ONE! online help for further details.

Detach
The Detach command is used to exit safely from a live debug session. See AVR ONE! online help for further details.

See also
Breakpoint control


Breakpoint control

Description

You can set an unlimited number of both program and data breakpoints. All breakpoints are remembered between sessions, even if source code are changed.

Please refer to the ICE50/JTAGICE mkII/simulator help for more information about any limitations with breakpoints support.

Program breakpoint in source editor and disassembly view

When a breakpoint is set on a location (program breakpoint), the breakpoint is indicated by a mark on the left hand bar in the Source window. By clicking the right mouse button on a source line with a breakpoint, the user can toggle the breakpoint on and off, or disable it.

All program breakpoints are marked with a red circle in the gutter, both in the source editor and disassembly view. If it is marked with an information mark, it is a special program breakpoint, normally set with a hit count. When disabled, it is marked with a red and hollow circle.

Tooltip information is available with information about the breakpoint. Just place the mouse button above the red circle to display it.

Drag'n drop data breakpoints

The easiest way to set a data breakpoint is to drag'n drop your variable (or other symbol) from the source view to the breakpoints and tracepoint window. If it is a valid variable or symbol, it will be default enabled and set to an access (read and/or write) data breakpoint. Then double click on the entry in the window to open its properties to do any modifications.

Set data breakpoints in memory view and I/O window

Data breakpoints can also be set easily from the memory and I/O window. Just select any location in the memory window or any register name in the I/O window and open the context menu. The following choice will be available:

Control, navigate and modify breakpoints

With the breakpoints and tracepoints window you can get complete control with your breakpoints.

Commands

Toggle program breakpoint (F9)
The Toggle program breakpoint command toggles the breakpoint status for the instruction where the cursor is placed. Note that this function is only available when the source window or disassembly window is the active view.

Disable/enable breakpoints
Breakpoints can be disabled. This means they are not used, but a white circle shows where they were. This can be useful for toggling breaking on/off without losing the position of the breakpoints.

Clear all program breakpoints
This function clears all set program breakpoints, including breakpoints which have been disabled.

See also
Breakpoint control
ICE50 User guide
JTAGICE mkII User guide
Simulator User guide
Options, Breakpoint settings


Program breakpoints

Program breakpoint

Program breakpoint properties can be opened by clicking on the breakpoint in the breakpoints and tracepoints window. Alternatively use the context menu after selecting the actual line in the source editor.

Program break properties fields

Bound to
A program breakpoint can be bound to file, function or address. Default all breakpoints are bound to file and line. All breakpoints are saved and restored properly between project sessions even if source files or object files have changed, but address breakpoints are always set to the same address.

The File and Line edit fields are enabled when bound to file is selected. Use the [...] button to browse for files.

The Function edit field is enabled when bound to function is enabled. Use the [...] button to open the symbol browser to easy find your function. NOTE: This feature is only available in debug mode.

The Address field is enabled when bound to address is selected.

Break execution after [n] hits
Also known as hit count. Default this value is set to 1, and means that it will always break when hit.

Continue execution execution after the views have been updated
When this option is enabled, AVR Studio will update all visible views, and then automatically start execution again.

Enabled
Toggle this checkbox to disable or enable the breakpoint.

Special considerations

The current program breakpoint implementation does not support inlined (or other) code that expands to several code instances. In this case, the program breakpoint will be bound to an arbitrary instance of the inlined code.

Error messages and warnings

Any errors or warnings are output in the properties dialog above the OK,cancel and help button.

Debug platform support

Unlimited number of program break with hit count can be set on simulator. Unlimited number of program breakpoints can be set on ICE50, but limited to max 8 with hit count.

Hit counts are not supported on other debug platforms.

See also
Breakpoint control
ICE50 User guide
JTAGICE mkII User guide
Simulator User guide


Data breakpoints

Data breakpoint

Data breakpoint properties can be opened by clicking on the breakpoint in the breakpoints and tracepoints window.

Data break properties fields

Break when
The following conditions are available when using the simulator:

One or two value field may be displayed, but this depends on the condition selected.

Location
In this edit field you must name your variable or symbol, alternatively described with a scope. See more details about the syntax below on this page

Access type
You can select to break on read access, write access or both. Default setting is both.

Elements
This options is only available for access breakpoints. Here you can specify the number of elements, or range to cover.

MSB/Any byte
For variables with size larger than 1 byte, you can select to break on only access to the most significant byte or any byte in the variable. The default setting is MSB access on.

Custom data type
Base type and size can override the current variable type and size. Base type and size can also be used when setting break on an absolute address, e.g. "SRAM@0x10FA". When setting a compare condition the system needs to know whether the data is signed or unsigned (default). With the custom base type you can set compare condition like "less than" on absolute addresses with signed data to behave correct.

Custom Scope
A local scope can be specified. Program memory start address and end address must be input.

Break execution after [n] hits
Also known as hit count. Default this value is set to 1, and means that it will always break when hit.

Continue execution after the views have been updated
When this option is enabled, AVR Studio will update all visible views, and then automatically start execution again.

Enabled
Toggle this checkbox to disable or enable the breakpoint.

Location/variable syntax

The variable can be specified using the syntax described in the following table:

Syntax | Description
<variable> | This syntax is sufficient for global variables. When the breakpoint is added in edit mode, the system will try to look up the symbol in the global scope when debugging starts. When the breakpoint is added while stopped in debug mode, the system tries to look up the symbol in the current scope and then the enclosing scopes. The current scope is the code at the program counter.
{<file>} <variable> | Can be used to specify a file static symbol
{<function>} <variable> | Can be used to specify a local symbol in a file static function
{<file>, <function>} <variable> |
{<file>, <line>} <variable> | To specify a file and line where a symbol is visible. This syntax is used by the user interface when dragging a variable from the editor into the breakpoint list
<memtype> @ <address> | This syntax is used to set a breakpoint on a location in given memory. The valid values for <memtype> is SRAM, IO, FLASH and EEPROM.

In addition, all variables can be prefixed with the de-referencing operator '*' to indicate that the described variable or location is a pointer that should be de-referenced.

Below are a few examples on how variables can be specified:

foo                      // Variable 'foo' visible in the global or current scope.
mystruct.foo             // Member 'foo' in the struct instance 'mystruct'.
myarray[5].foo           // Member 'foo' in item 5 (a class) of array instance 'myarray'
"bar.c"} foo             // Static variable 'foo' visible on file level in file 'bar.c'
{main} foo               // Variable 'foo' visible in global function 'main'
{"bar.c", myfunc} foo    // Variable 'foo' visible in static function 'myfunc' in file 'bar.c'    {"bar.c", 123} foo       // Variable 'foo' visible at line 123 in file 'bar.c'
SRAM@0x110               // Location 0x110 in SRAM memory

Special considerations

Local variables must always be qualified with the function name. This is also the case if the user wants to add a variable from the function that the program has stopped in.
False hits on data breakpoints on local variables can be caused by reuse of registers. Depending of the level of optimalization, the compiler might try to reuse a register for several variables. Currently, only the IAR compiler in combination with the ICE50 will be able to mask out false hits caused by this. With other compilers, and other platforms such as the simulator or JTAGICE mkII, false hits may be a problem in some cases. In most cases the user can reveal the reason for false hits by examining the code in the disassembly window (or examining a dump of the object file if possible). The 'Custom Scope' settings in the data breakpoint property page can be used to specify a smaller scope for a data breakpoint if it is shared between variables within a function.

The expression parser used for the data breakpoint includes file static functions and variables in the global scope. In cases where several static functions or variables have the same name and are not explicitly qualified with the file name (using the form {<file> [,<function>]} <variable>}, the expression parser will select the first symbol it finds when it scans the symbol table.

The current implementation of the expression evaluator cannot differentiate between overloaded C++ functions. Currently, functions cannot be qualified with their argument list, which is necessary for selecting a specific function overload. The program breakpoint will be bound to an arbitrary instance of the overloaded function.

The data breakpoint implementation in the simulator and the ICE50 can in some cases fail to detect access to a location referenced by a pointer when msb access type is selected. The problem exists when the pointer is stored in X or Z, and ST/LD X/Y with increment is used to de-reference the pointer.

To make sure the debugger breaks, let access type 'Any' be selected.

Error messages and warnings

Any errors or warnings are output in the properties dialog above the OK,cancel and help button.

Debug platform support

Note that a debug platform can have limited resources and capabilities, meaning that it does not necessarily support all the features that are described in the above sections. The system supports masking away unsupported functionality and giving useful error messages to the user if this is the case.

See also
Breakpoint control
ICE50 User guide
JTAGICE mkII User guide
Simulator User guide


Program Tracepoint

Program tracepoints properties can be opened by clicking on the breakpoint in the breakpoints and tracepoints window. Alternatively use the context menu after selecting the actual line in the source editor.

Note! Trace is only supported by ICE50.

Program trace properties fields

Bound to
A program tracepoint can be bound to file, function or address. Default all tracepoints are bound to file and line. All tracepoints are saved and restored properly between project sessions even if source files or object files have changed, but address tracepoints are always set to the same address.

The File and Line edit fields are enabled when bound to file is selected. Use the [...] button to browse for files.

The Function edit field is enabled when bound to function is enabled. Use the [...] button to open the symbol browser to easy find your function. NOTE: This feature is only available in debug mode.

The Address field is enabled when bound to address is selected.

Trace Action
Can be set to Trace ON or Trace OFF

Trace ID
Can be set from 0 to 64

Enabled
Toggle this checkbox to disable or enable the tracepoint.

Error messages and warnings

Any errors or warnings are output in the properties dialog above the OK,cancel and help button.

Debug platform support

Unlimited number of program tracepoints can be set on ICE50. Currently, no other debug platform support trace.

See also
Breakpoint control
ICE50 User guide


Trace

Description

Trace is a debugging tool that you can use to examine the runtime behavior of your programs. By using the trace functionality, you can determine the execution flow of your program just prior to e.g. hitting a breakpoint.

Trace is only supported by the ICE50 platform. Please refer to the ICE50 help for more information on this topic.

See also
Trace Window.


Options

Description

The options dialog is split into 4 views and each of them are selectable in the left margin of the dialog. All options described here are not project dependent and will be saved in registry.

General - Generic GUI and debug settings

Breakpoint - Breakpoint settings

Workspace - Workspace settings

Editor - Editor settings, font and tabs

General

Hide Startup wizard
The startup wizard can be hidden on startup with this option set. Default OFF.

Auto open last project
Always automatically open the last used and saved project when AVR Studio is started. Default OFF.

Show current source code
Highlight the actual source code when single stepping though the source. Default this is OFF, and only the yellow marker which point to the line is visible. You may see strange behaviour with this option set if you have used .e.g. tabs in your source.

Reset desktop on restart
When this option is set, AVR Studio will reset the toolbars, menus, accelerator keys and docking windows to default when you start AVR Studio. Any customized setup will be lost. This option will be turned automatically off after AVR Studio is restarted.

Step over when Auto stepping
Default when using autostep the "trace into/single step" operation is executed. With this option set "step over" is executed.

Auto connect, Number of COM ports to try
Here you can select the number of COM ports to try when auto connecting to the debug platform. Default is 6.

Editor window, file tabs
The editor window tabs can be configured to show filename only (default), full path and full path outside project folder.

Breakpoint

Stop on breakpoint when Step out, step into and run to cursor
Enable/disable break on operations other than run.

Stop on breakpoint when autostepping
Enable/disable break during auto step

Disable data breakpoints while resetting
Enable or disable break on data breakpoints during user reset.

Workspace

When toggling disassembly window
When disassembly window is toggled you can select what AVR Studio will do: Show normal, Tile Horizontally or Tile vertically.

When opening files
When opening files in the editor window you can select what AVR Studio will do; Restore last position, Maximize, default, Tile horizontally or tile vertically.

Use XP style toolbar and menus
When this is selected the toolbars will look like this, flat look:

When not selected:

Restore desktop position and size when restarting
When this option is set the desktop will restore as it was when closed e.g. minimized or with other sizes. Default AVR Studio will maximize.

Smart docking
Enable/disable smart docking. default on. You must close and restart AVR Studio before the change will take effect.

Editor

Font size
Default size of the font

Tab width
Default tab size in the editor window

Restore default
Restore the default settings for the font size and tab width


Breakpoints and tracepoints window

Breakpoints and tracepoints view

Introduction

The breakpoints and tracepoints view give you a convenient overview of all breakpoints and tracepoints. New can be inserted, modified, deleted,enabled or disabled. You can quickly modify properties for all items by double clicking on a selected item and easy navigate in the source files by using the goto button. The view are fully customizable, for example can different columns for various properties be toggled on/off.

Note: trace are currently only supported on ICE50.

Drag'n drop

Break can be set on data variables by dragging the variable from the editor to the breakpoints and tracepoints view.

The yellow pointer show the breakpoint that caused the last break.

Commands, toolbar and context menu

Various commands can be executed in the view by using the local toolbar or the context menu.

Command | Description
New | Select a new program breakpoint, program tracepoint or data breakpoint
Remove | Remove the selected item. Multiple items can also be selected and removed
Enable | Enable the selected item. Multiple items can be selected and enabled. Click on the
Disable | Disable the selected item. Multiple items can be selected and disabled.
Properties | Open the properties dialog for the selected item
Clone | Make a copy of the selected item.
Go to Source | Go to the source location of the selected item. this is invalid for data breakpoints
Select All | Select all items in the list
Columns | Various columns can be toggled on/off. The default setting is that description and hit Count are on. All columns can be sorted by clicking on the header, and rearranged by dragging the header to the wanted location.
Font | Open the font properties dialog to see the set font or eventually change the settings.
Default Font | Set the font in the window to default system GUI font. Please see you OS description about how to change the default system settings.

See also
Breakpoint control
Program breakpoint properties
Program tracepoint properties
Data breakpoint properties


Disassembly window

Description

The disassembly window show your program code disassembled. Program execution and AVR instructions can be followed in this view. When any supported high level language is used, the source window is automatically displayed and the disassembly window is OFF. When no high level language is available (e.g. using .hex files) the disassembly window will prompt at startup.

Program execution is controlled as in the source view.

Example of disassembly code cut from the disassembly window

@000000B9: main
---- c:\user\test programs\core io test.c (alternate location) ------------------------------------
16:           MCUCR = 0;      //disable XRAM in order to use PORTA and PORTC as ordinary IO ports
+000000B9:   2700        CLR     R16              Exclusive OR
+000000BA:   BF05        OUT     0x35,R16         Out to I/O location
17:           MCUCSR = 0x80;
+000000BB:   E800        LDI     R16,0x80         Load immediate
+000000BC:   BF04        OUT     0x34,R16         Out to I/O location

All lines starting with the + sign is the disassembled code. The first field is the actual program address. The next is the 2 byte value of the instruction. Then follows the instruction and a textual description.

The line starting with @ and address present the high level label, in this case the c main label.

Configuring output
The window can be configured to toggle ON/OFF the following sections; program code, instruction help, source, source file header and labels.

Read memory from object file parser or debug platform
The window can be configured by the right click menu to read from the debug platform or the object file parser. It is usually faster to read from the object file parser when using for example an ICE. If you are making a boot loader code and using the spm instruction, it is recommended to update the data from the debug platform target.

Note: When in run mode the disassembly view will be blanked out when using the scrollbar or resizing. This will happen only if the view is configured to update its data from the debug platform target. You may here toggle the option to update the data from the parser to get visible data.

Commands

Function | Toolbar | Menu | Shortcut
Toggle disassembler |  |  |


Editor window

Description

In edit mode you can write and edit your code for any project. See table below for a summary of different commands and shortcuts.

The editor supports syntax coloring. Which keywords that are colored depends on the programming language used, and are connected to the name extension of the source file.

The right mouse button menu provides a lot of options easily available to the user, like toggling bookmarks, executing debug commands and controlling breakpoints and trace points.

If in edit mode

Undo
Redo
Cut
Copy
Paste
Select All
Insert Breakpoint
Toggle Bookmark

If project is an AVR Assembler project

Rebuild Project

If on a line with breakpoint

Remove Breakpoint
Disable Breakpoint

If on a line with .include

Open Document + name of include file

If in debug mode

Run to cursor
Show Next Statement
Set Next Statement

If pointing at a word in the text

Add word to watch

Commands

Function | Toolbar | Menu | Shortcut
Create an empty text file |  | File->New File | CTRL+N
Open an existing text file |  | File->Open File | CTRL+O
Save current text file |  | File->Save (Save as, Save all) | CTRL+S
Cut from text file |  | Edit->Cut | CTRL+X
Copy from text file |  | Edit->Copy | CTRL+C
Paste into text file |  | Edit->Paste | CTRL+V
Print text file |  | File->Print (Print preview,setup) | CTRL+P
Toggle bookmark |  |  | CTRL+F2
Next bookmark |  |  | F2
Previous bookmark |  |  |
Clear bookmarks |  |  |
Increase indent |  |  |
Decrease indent |  |  |
Undo |  | Edit->Undo | CTRL+Z
Redo |  | Edit->Redo |
Select font and colors |  |  |

Shortcuts

Description | Shortcut
Moving cursor |
Line down | down arrow
Scroll down | CTRL +arrow down
Line up | up arrow
Scroll up | CTRL + up arrow
Move right | right arrow
Move left | left arrow
Line end | end
Page down | Page Down
Page Up | Page Up
Document end | CTRL + end
Document start | CTRL + home
Tab | Tab
Back Tab | SHIFT + Tab
Bookmarks |
Next bookmark | F2
Toggle bookmark | CTRL+F2
Previous bookmark | SHIFT+F2
Delete all bookmarks | CTRL+SHIFT+F2
Breakpoints |
Toggle Breakpoint | F9
Next breakpoint | CTRL+F9
Breakpoint settings |
Find | alt+F9
Find | CTRL+F
Find next | F3
Find next word | CTRL+F3
Find previous | SHIFT+F3
Find previous word | CTRL+SHIFT+F3
Next open file | CTRL+F6
Other |
View whitespace | CTRL+SHIFT+8
Select all | CTRL+A
Copy | CTRL+C
Line Cut | CTRL+L
Line delete | CTRL+SHIFT+L
Line Cut and insert | CTRL+L CTRL+V
Selection lowercase | CTRL+U
Selection uppercase | CTRL+SHIFT+U
Edit paste | CTRL+V
Delete back | Backspace
Delete to start of word | SHIFT+backspace
Undo | CTRL + Z
Undo | ALT + backspace
Redo | ALT + SHIFT + backspace
Delete char | Delete
Delete word to end | CTRL + Delete
Cut | SHIFT + Delete
Clear selection | ESC
Extend selection | SHIFT + movement command
Select Word | SHIFT + w


IO window

I/O view

Description

With the I/O view the user can display and edit all the peripheral and I/O memory values in debug stop mode. All values are updated in the display when a break occurs, and changed values for visible items are painted with a red color. This new view offers many powerful customization features, many of them explained below. All settings are preserved between the project sessions.

The view has three different display/presentation modes:
1) Split mode with module and register pane
2) Flat register mode
3) Tree view (equal to I/O view as presented in v4.12 and earlier versions)

Use the command Change presentation mode to switch between the three different modes. You can also use the pull-down menu and directly select the wanted mode. See the toolbar figure below where the presentation mode command can be found.

In split mode the text search combo box will be populated with names of all the peripheral modules for easier and quick navigating between the modules. Toggle on/off the modules and register pane are also only available in the split mode.

Display modes explained

1) Split mode

In the split mode the I/O view are presented in a modules pane (on top) and a register pane (at the bottom). You can select one or many entries in the modules pane to show all the related registers displayed in the bottom pane.

Peripheral modules that can be expanded contain verbose settings for all register values that can be configured. This can either be a checkbox that can be toggled on or off, a value field that can be edited or a combo box with a selection of the different configuration modes. The settings are always synchronised with the values in the register pane. Important note: Only a limited number of devices will contain this feature for the first release (m128 and tx5 family). More devices will be on the list when new service packs and studio releases are distributed.

2) Flat Register view Mode

In this mode all registers are shown sorted after name or address. This view is very size effective and helpful if you want to display many registers at once.

3) I/O view tree view mode

The tree mode is a hierarchical presentation with the module/peripheral as the top node and all related registers as sub nodes. This is equal to how the I/O view has been presented in former versions of AVR Studio 4.

Edit values and bits in stop mode

Click on any value field to edit the value. Click on the checkbox in the bits columns to toggle the bit on or off. Note that some values or bits are not editable. Read more about this in the user guide for the selected debugger. All changed values are written and then read back, so the user can promptly see the change.

Other commands and functions explained

Context sensitive commands are available by using the right mouse button. Available functions depends on what display mode you are in and what pane you click in.

Hexadecimal display
Hexadecimal display can be toggled on or off using the context menu. This setting is default on.

Columns and sorting
Header columns can be toggled on or off. Use the command reset columns to enable all columns. Address and value header columns can be sorted by clicking on the relevant column.

Add, remove,save and load group
A new group can be added to the module view. Any register can be added and saved for other project sessions (register bits can't be added). These functions are only available in split mode.

Show tooltip/bit number
You can toggle on or off tooltip information for all registers and bits. This setting is default on. You can also enable display of bit number in the check boxes. This setting is default off.

Hide and show groups
Any selected module/peripheral/group can be hidden and later shown again.

Pin/Unpin registers
You can pin or unpin any register in the registers view. This is useful in the split mode to lock registers you want to view all the time.

Export
You can save all registers and values to a file for e.g. project documentation or specification. All registers that is selected in the register pane will be saved.

See also
Memory view
Processor view


Memory window

Memory view

Description

With the memory view the user can look at and edit all memory types for the selected debug platform. Memory types include SRAM, EEPROM, external SRAM and I/O memory.

Note: It is not possible to edit the target flash content using the Program Memory View in AVR Studio, or by editing flash constants in the Watch Window.

All visible locations which are changed with the latest debug command (e.g. single step) will be marked by red.

You can edit all locations directly by clicking on the actual location and start typing. Alternatively, double-click on the actual location to display an edit box.

Memory type
Select type of memory from the drop down list on the top left.

8/16 bit view
Press the "8/16" button to group the data into 16-bit words.

ASCII view
Press the "abc" button to toggle the ASCII pane on the right side of the window.

Address
The address field shows the address of the first data location shown in the memory window. You can quickly jump to a new location by enetering a new value in the address field.

Columns
You can select how many columns of data the memory window should display, from 2 to 32 columns. The Auto selection causes the contents to fit the window size.

Right mouse click menu
If you right-click inside the memory window, this menu is shown. Here you can control the behaviour of the memory window.

Locate address (I/O-memory only) | Marks the selected address in the I/O view (if the I/O view is visible)
Hexadecimal | The data is displayed in hexadecimal
Decimal | The data is displayed in decimal
1 Byte | Show data as 8-bit bytes
2 Byte | Show data as 16-bit words
Byte address | Toggle byte/word addresses
Font | Select which font to use
Default Font | Sets the default font
Docking View | Toggle if the view should be docked or not
Show Tooltip | Enable/disable showing the tooltip
Help on memoryview | Opens this help page

Editing
Change the value by clicking on the location and type a new value. This can also be done with the ASCII values in the right border (if shown). If you doble-click on a value, a dialog box opens, which let you enter values in hexadecimal, decimal, octal or binary.

Navigating
Scroll up/down in the memory with the arrows, scrollbar or PageUp/PageDown, Home/End-buttons. Jump to a specific location by typing it in the address field. This is always treated as hex-value.

TIP: You can display up to three memory windows at the same time. Select from the View menu.

Commands

Function | Toolbar | Menu | Shortcut
Toggle memory window |  | Views->Memory view | Alt-4
Add New Memory window |  | Views->Memory view 2 |
Add New Memory window |  | Views->Memory view 3 |

See also
I/O view
Processor view


Output window

Output views

Description

Placed at the bottom of the AVR Studio desktop is a group of windows that includes the follw

The Build, Message, Find in files and Breakpoints view are default grouped together on first start-up.

Build
When compiling or building projects output messages and warnings are printed in this view. Double click on an error or warning and a blue marker will point you to the source code location. The key F4 can also be used, and will go to the next error.

Messages
Errors, warnings, info and debug messages are printed in this view. The filter may be toggled on for each category on the right mouse click menu. Default errors and warnings are showed. The debug filter should not be turned on and is only for special debug and support situations only. Time stamp can be toggled ON/OFF.

Find in files
Output from the function find in files are printed in this view. Double click on a line and the relevant file will show its position with a blue marker.

Breakpoints and tracepoints

Context menu

Rigth mouse click menu command | Shortcut | Description
Clear |  | Clear all messages in the view
Copy |  | Copy all the text from the view to clipboard
(Project [image] Next error) | F4 | Show next error/warning
Filter Error/Warning/Info/Debug |  | Toggle filter ON/OFF for each category
Time stamp |  | Toggle Time stamp ON/OFF
Docking view |  | Toggle ON/OFF docking

fig, Output view


Files window

Processor view

Description

The processor view is a debug view that show important values like the current program counter, stack pointer values, X/Y/Z pointer, cycle pointer, status registers and registers from r0 to r32. All the values are updated when entering stop mode and changed values are coloured red. All values can be edited in both hexadecimal and decimal mode.

Description of the register fields and values

Program Counter (PC)
Program execution pointer. Location is marked with a yellow marker in the source window.

Stack Pointer (SP)
The Stack pointer points to a SRAM/Data location. The 16 bit value of I/O register SPH and SPL.

X Pointer
This show R26 and R27 as a 16bit value.

Y Register
This show R28 and R29 as a 16bit value.

Z Register
This show R30 and R31 as a 16bit value.

Cycle Counter
The number of cycles executed after reset. (Not available on all debug platforms)

Frequency
This field show the frequency read from the debug platform. (Not available on all debug platforms)

Stop Watch
The stop watch is showing time used. This is a product of the cycle counter and the frequency. Right click on the value to reset the stopwatch and toggle between microseconds and milliseconds.

Commands and functions explained

Context sensitive commands are available by using the right mouse button. Available functions depends on what window section you click in.

Hexadecimal display
Use this command to toggle between hexadecimal display and decimal display. Note that the Program counter is fixed to a hexadecimal display and the cycle counter is fixed to a decimal display.

Reset Cycle counter
Use this command to set the cycle counter to zero. Note that this command and the cycle counter is not available for all debug platforms and will then be disabled.

Reset Stop Watch
Use this command to set the stopwatch to zero. Note that this command and the stop watch is not available for all debug platforms and will then be disabled.

Show stop watch as microseconds or milliseconds
Use this command to switch between microseconds or milliseconds.

Font settings and help
Use the command Font to alter font settings and Default Font to reset to factory/default settings. Use the command help to show this help page.

See also
I/O view
Processor view


Register window

Register view

Description

All the registers R0-R31 can be viewed and edited in the register view. All visible locations that are changed with the latest debug command (e.g. single step) will be marked by red.

Edit Value

To edit just click at the wanted location and type the value. Navigate with the cursor keys.

Alternatively double click on the actual value and an edit box will appear.

Edit label

Double click on any register/label, and you can enter any custom name.

Hexadecimal/decimal switch

Accessed by the right click menu, the displayed values can be toggled between hexadecimal and decimal output.

Commands

Function | Toolbar | Menu | Shortcut
Toggle register view |  | View->Register | Alt-0


Trace window

Trace view

Description

Note: Trace functions are currently supported by IC40/ICE50. Trace commands are found below the debug menu and its local toolbar. These commands are only enabled when using ICE50 or ICE40.

The trace view are used to view the traced data. Various settings and commands are available from the context menu.

Navigating
Scroll up/down in the trace buffer with the arrows, scroll bars or PageUp/PageDown, Home/End-buttons.
Dragging the scroll bar will not redraw trace view until mouse button is released.
Size and current position in trace buffer are shown on information bar in bottom of screen.

Right mouse click context menu

Menu Item | Function
Show Source | Toggle Source code on/off
Color Coding | Toggle color coding of trace ids
Source Only | Show only high level statements
Link to Source | Toggle green arrow marker on/off
Goto Source | Show current trace statement in source code. (Current statement: where you right click)
Next Statement | Show Next Trace record in source code
Previous Statement | Show previous statement in source code
Define Filter | Display Filter Dialog
Filtering | Enable or disable filter
Save to textfile | Save content of trace buffer to text file
Save to binary file | Save content of trace buffer in binary format
Show Tooltip | Toggle tool tip on/off
Docking View | Toggle docking state of window. Window must be manually moved
Reset Trace | Empty trace buffer and reset trace window

Filtering
When a filer is defined, a "F" is displayed in the upper left corner of the trace window, on the left position in the header. Press this to toggle filer on/off. Enter Filer Dialog to remove filter completely.

Header
Change column width by dragging dividers. Double-clicking on divider auto adjust width.
Change column order by dragging labels left/right.
Select columns to display by right clicking on header and toggle columns on/off.

Options

Break on tracebuffer full:
When enabled, execution of program will break when tracebuffer in platform is filled.

Interrupt coloring:
Select interrupt color from button.
Enable/disable interrupt coloring.

Id coloring:
Colors for each Id is predefined for the first 10, change by clicking on Id-number and select from color dialog.
Reset button: Reset colors to default.
Enable/disable Break on trace buffer full.

Note on use of id colors:
If a color has values of red, green and blue that are all less than 130 (on RGB-value), text is set to white for better visibility.

Commands

Function | Toolbar | Menu | Shortcut
Toggle Trace window |  | Debug->Trace->TraceView |
Select Trace Type |  | Debug->Trace->Type |
Toggle Tracepoint in source |  | Debug->Trace->Toggle TracePoint | F8
Remove All Tracepoint |  | Debug->Trace->Remove All Tracepoint |
Reset Tracebuffer |  | Debug->Trace->Reset Tracebuffer |
Trace Options |  | Debug->Trace->Options |
Show Next Statement |  | RightClick in TraceView->Next Statement | Alt+F12 (See Note)
Show Previous Statement |  | RightClick in TraceView->Previous Statement | Ctrl+F12 (See Note)
Save Tracebuffer to textfile |  | RightClick in TraceView->Save To Textfile |
Show Sourcecode |  | RightClick in TraceView->Show Sourcecode |
Show Highlevel code only |  | RightClick in TraceView->Hioghlevel Only |
Toggle Colorcoding |  | RightClick in TraceView->Colorcoding |
Toggle Tooltip |  | RightClick in TraceView->Show Tooltip |
Set TraceId |  | Debug->Trace->Set Current Id |
IncreaseTrace Id |  | RightClick in Editor->Trace->Increase Trace Id | Alt+F8
Define filter for trace data |  | Debug->Trace->Filter |
Decrease Trace Id |  | RightClick in Editor->Trace->DecreaseTrace Id | Ctrl+F8

Note: If the key assignments does not work properly, try resetting the key definitions by Tools->Customize, Keyboard tab and Reset All.

See also
ICE50 User guide


Watch window

Watch view

Description

With the watch window you can view and edit all defined symbols when debugging. Functionality depends on the type of object file you have loaded. There are 4 different tabs (watch #1-#4) and all can contain different variables and settings. The settings and contents will automatically be saved when project are closed. It will restore to its last state when project are reloaded.

Watching many items at once can slow down debugging speed, especially on ICE's which uses the serial communication line. A good idea is to make the actual variables visible during any debug operation as only the visible items are updated.

Name, type, value and location are displayed for each item. When watching structs and arrays, they can be expanded by clicking the + sign.

Edit
Double click on an empty line to type a variable name. Variables can be dragged into the view from the source/editor window. Remove any variable by selecting it and select remove variable from the right click menu or pressing the DEL key. The INS key inserts a new entry. Use space to select an entry (name or value) for editing.

When editing values the prefix 0x or 0X indicates a hexadecimal value. Starting with 0 interpret as octal.

Quick watch
Highlight the variable you want to watch in the editor and select quickwatch. You can look at the variable and its contents and alternatively add it to the watch view.

Header control
Double click on the header splitter to automatic adjust its size.

Commands

Function | Toolbar | Menu | Shortcut
Toggle Watch window |  | View->watch | Alt-1
Quick watch |  |  |

See also
Object files format and support


Menus

Menus and commands

File, Project, Build, Edit, View, Tools, Debug, Window, Help

File Menu

New File | Create empty text file
Open File | Open a file in text editor or an object file for debugging
Close | Close the active text file
Save | Save current text file
Save As... | Save current text file under given name
Save All | Save all files and project settings
Print | Print active text file
Print Preview | Preview active text file
Print Setup | Setup printer
Exit | Exit AVR Studio, project are saved when exiting.

Project Menu

Project Wizard

Open the project wizard. You must close the current project first.

New Project

Open the new project dialog. You must close the current project first.

Open Project

Open a new project, either an APS project file or an object file.

Save Project

Save the current project with all settings

Close Project

Close the current project

Recent Projects

Show a list of recent project, select one to open

Configuration Options

Note: this option is only available when the project is a code writing project. E.g. an assembler or AVR GCC project.
This command open the configuration dialog for the current project.

Build Menu

Note: This menu is empty when only an object file is loaded. The menu items can be different related to the current project type. The below items are active when using an AVR GCC project.

Build | Build the current project
Rebuild All | Rebuild all the modules in the project
Build and run | Build, and if error free , start debugging session
Compile | Compile the current source file
Clean | Clean the current project
Export Makefile | Save the current settings in a new make file

Edit menu

Undo | Undo last editor action
Redo | Redo any undo action
Cut | Cut and copy selected text from editor
Copy | Copy selected text from editor
Paste | Paste any text from clipboard to the editor
Toggle Bookmark | Toggle bookmark on/off at the selected line in the editor
Remove Bookmarks | Remove all bookmarks
Find | Open a find dialog to search through the current source file.
Find in Files | Open a find in files dialog to search through all project files.
Next Error | Locate and jump to the next build error if any
Show whitespace | Toggle on/off whitespace markings
Font and color | Open a font dialog to view/edit font settings in the source editor

View menu

Toolbars | Sub menu toggles toolbars on/off, access to customize-dialog. Described here
Status Bar | Toggle status bar on/of (status bar is the line in the bottom of the screen)
Disassembler | Toggle on/off the disassembly window
Watch | Toggle on/off the watch view
Memory | Toggle on/off the memory view
Memory 2 | Toggle on/off the memory view 2
Memory 3 | Toggle on/off the memory view 3
Register | Toggle on/off the register view

View->Toolbars sub menu

Note: This menu and available commands can vary dependant on which plug-ins that are installed.

Standard toolbar | Toggle the standard toolbar on/off
Edit | Toggle the edit toolbar on/off
Debug | Toggle the debug toolbar on/off
Debug Windows | Toggle the debug windows toolbar on/off
MDI Tabs | Toggle the MDI tabs on/off. Not recommended!
AVRGCCPLUGIN | Toggle the AVR GCC plugin toolbar on/off
STK500 | Toggle the STK500 toolbar on/off
TraceBar | Toggle the Trace toolbar on/off
I/O | Toggle the I/O view on/off
Info | Toggle the Info view on/off
Build Output | Toggle the build output view on/off
Message Output | Toggle the message output view on/off
Find Output | Toggle Find output view on/off
Breakpoints and Tracepoints | Toggle the Breakpoints and tracepoints view on/off
AVR GCC | Toggle the AVR GCC project view on/off

Tools menu

AVR Prog.. | Open the AVR Prog application dialog
ICE50 Upgrade | Open the ICE50 upgrade dialog. You must shutdown the current project to continue.
ICE50 Selftest | Open the ICE50 selftest dialog. You must shutdown the current project to continue.
JTAGICE mkII Upgrade | Open the JTAGICE mkII Upgrade dialog.
Customize... | Customize menus,toolbars and commands
Options... | Open the generic options dialog for workspace,breakpoints and editor settings
Show Key Assignments | Show all shortcut key assignments
Plug-in Manager | Open the plug-in manager to enable/disable plug-ins.
Program AVR | Program your AVR

Debug menu

Start Debugging | Start debugging with the current project.
Stop Debugging | Stop the current debugging session. Any COM/USB connections will be disconnected.
Run | Run the active code
Break | Break if in run mode
Reset | Break and reset to location 0 or main
Step Into | Single step over the current instruction or source statement.
Step Over | Step over the current instruction, source statement or function call.
Step Out | Step out of the current function
Run to Cursor | Run to the selected cursor
Auto Step | Auto single step or step over till any break condition or user break.
New Breakpoint | Add a new breakpoint
Toggle Breakpoint | Toggle on/off a program breakpoint at the current source location
Remove all Breakpoints | Remove all breakpoints
Trace | Trace commands
Stack Monitor | Open the stack monitor settings dialog. NOTE: Currently only available for the ICE50
Show Next Statement | Locate and place the yellow marker at the current statement.
Quickwatch | Open the quick watch dialog
Select Platform and Device | Open a dialog to select debug platform and/or device.
Up/Download Memory | Open a dialog to download any memory blocks to the current debug session.
AVR Simulator Options | Open the current debug platform settings dialog. NOTE: This may vary dependant on the actual platform used.

Window menu

Workspace | Save or load your configured workspaces.
Split | Split the current source window in two
Cascade | cascade the current source windows.
Tile Horizontally | Tile the current source windows horizontally
Tile Vertically | Tile the current source windows vertically
Arrange Icons | Arrange icons
Windows | Manage the currently open windows.

Help

AVR Tools User Guide | Display the AVR Tools user guide
AVR Studio User Guide | Display the AVR Studio user guide
Release Notes and Known Issues | Display the release notes for current installed version
AVR GCC Plug-in Help | Display the AVR GCC IDE user guide
avr-libc Reference Manual | Display the avr-libc reference manual
About AVR Studio... | Display the about box about AVR Studio. Version information is located here.


toolbandshorts

Toolbars

Overview

Listed below are all the default toolbars in AVR Studio. All toolbars can be toggled on/off with the menu View->Toolbars->

Standard toolbar
Debug toolbar
Debug windows toolbar
Edit toolbar
STK500 toolbar


introduction

The AVR Studio Programming Front-end

The programming front-end in AVR Studio supports the STK500 and STK600 starter kits as well as the JTAGICE, JTAGICE mkII, AVR Dragon, AVRISP, AVRISP mkII and AVR ONE!

Note: The help books for the various programmers and emulators contain information about how to configure the hardware for programming specific devices, and informations about troubleshooting. Please read the help section of the specific platforms carefully in addition to this section.

Starting the Programmer Front-end

Start the Select AVR Programmer dialog by pressing the [image] button on the AVR Studio toolbar. This brings up the following dialog:

Select a platform and port, and press the "Connect" button to connect to the given platform. The programming front-end will appear after a few seconds.

To connect directly to the platform and port that was selected the last time the Select AVR Programmer dialog was open, press the [image] button in the toolbar.

If the selected platform cannot be detected, the Select AVR Programmer dialog will reappear after a few seconds. If this happens, check that the RS232 or USB cable is properly connected and that the tool is not already connected in a debug or programming session in the same or another instance of AVR Studio.

See Also
  • Introduction
  • Main tab
  • Program tab
  • Fuse tab
  • Lock Bits tab
  • Advanced tab
  • HW Settings tab
  • HW Info tab
  • Auto tab


Main tab

The Main Tab

The device and programming mode is selected in the main tab. This tab also contains buttons for erasing the device and reading the signature.

For STK600 it displays the required routing and socket card combination for the selected device.

For AVR ONE! the selection of programming mode happens automatically.

Selecting the Device, Erasing the Device, and Reading Signature Bytes

The correct device and programming interface must be set before any programming operations. Note: For AVR ONE! only device selection must be made since the selection of programming mode happens automatically.

Select the device in the Device combo-box. This makes sure that the correct programming algorithms are used for the device, and that only features that are available for the device are displayed in the dialog. Next, specify the programming interface (if needed) as described in the following section.

Pressing the "Read Signature" button reads the device's signature. The dialog checks if the signature matches the selected device. Please refer to the AVR datasheets to read more about signature bytes.

A full chip-erase is performed by pressing the "Erase Device" button. This erases the entire contents of the connected device, including FLASH, EEPROM (unless the EESAVE fuse is programmed) and lock-bits.

Selecting Programming Interface and Adjusting Target Settings

The platform specific help books describe how to connect the tool to the target device via the selected interface. The programming front end must be set up accordingly (AVR ONE! performs this automatically). The currently available programming interfaces are:

  • ISP (In-System Programming)

  • PP/HVSP (High-Voltage Parallel or Serial Programming)

  • JTAG

  • PDI (For Xmega family only)

If either ISP or JTAG is selected, further settings for the interface can be specified by clicking the "Settings" button. There are no further setting for the PP/HVSP interface.

ISP settings

In ISP mode pressing the "Settings" button brings up the ISP clock configuration dialog.

ISP clock frequency (SCK) must be less than 1/4 of the target clock. However this requires a 50/50 duty cycle on both target clock and ISP clock. Using an ISP frequency of less than 1/5 of the target clock is recommended.

Note: Some AVR devices have a CKDIV fuse. When this fuse is set, the AVR core will run on a divided clock. Make sure that the ISP frequency is set correctly according to this clock, e.g. if the DIV8 fuse is programmed the ISP frequency must be less than 1/32 (1/40 recommended) of the target clock source.

JTAG settings

In JTAG mode pressing the "Settings" button brings up the JTAG daisy chain configuration dialog.

Note that since the JTAG daisy chain setup is a part of the initial configuration of the starter kit/emulator, the programming dialog must be closed and re-opened for these parameters to take effect.

JTAG Settings for AVR ONE!

In JTAG mode pressing the "Settings" button brings up the JTAG daisy chain configuration dialog.
The dialog will present 3 different options as well as the setting of target communication frequency.

  • "Target is not part of a daisy chain". Select this option when using only one target device.

  • "Auto". Press the Detect button to detect devices attached to the JTAG daisy chain. Select from the drop down list which device to communicate with. Note that in order for this to work properly all devices must be 8-bit AVR devices.

  • "Manual". Use this setting for manually specifying the daisy chain settings.

Note that the new JTAG daisy chain setting will be available immediately after pressing OK.

PDI settings (only valid for AVR ONE!)

In PDI mode pressing the "Settings" button brings up the PDI communication frequency configuration dialog.

Routing/Socket Card information (STK600 only)

For STK600, the dialog also displays information about which routing and socket cards should be used with the currently selected device.

See Also
  • Introduction
  • Main tab
  • Program tab
  • Fuse tab
  • Lock Bits tab
  • Advanced tab
  • HW Settings tab
  • HW Info tab
  • Auto tab


Program tab

The Program Tab

The program tab allows memory programming, as well as performing a chip erase. For the xmega family a new erase feature is added. See Xmega Erase Modes.

Device

A full chip erase is performed by pressing the Erase Device button. The check boxes specifies options for subsequent programming: a chip-erase can be performed before memory programing operations, and memory programming can be automatically verified.

FLASH

The FLASH contents of the connected device can be programmed, verified and read out by pressing the appropriate buttons. Before the FLASH can be programmed, the input file must be specified.

If the source code is stored in a separate HEX file, select the "Input HEX File" option. Browse to the correct file by pressing the [image] button, or write the complete path and filename in the text field. The selected file must be in "Intel-hex" format or "extended Intel-hex" format.

If a project is loaded in AVR Studio, it is also possible to transfer the FLASH memory contents in the debugger (the same as displayed in the memory window) to the connected device. To do this, select the "Use Current Simulator/Emulator FLASH Memory" option.

EEPROM

The options for EEPROM programming are the same as for FLASH.

ELF Production File Format

The production file format can hold the contents of both FLASH and EEPROM as well as the fuse- and lock bit configuration in one single file. The format is based on the Executable and Linkable Format (ELF).

Prior to creating the ELF file, the FLASH and EEPROM contents must be specified and the fuses and lockbits must be configured. Specify the FLASH and EEPROM input HEX files on the Program tab. Then go to the fuse tab and specify the wanted fuse bit configuration. Do the same on the lock bits tab. Back on the Program tab, press the "Save to ELF" button" go generate the ELF file.

The generated ELF file can be specified as input to the programming dialog so that all contents of the file is programmed in one operation. Specify the file name in the 'Input ELF File' edit box or browse for the file, then press 'Program'.

The ELF file can also be used as input to the command line tool for STK600. Command line tools for other platforms will have be supported in the future.

Xmega Erase Modes

Note that when using the xmega part family a new erase feature will be available. The new erase feature allow the user to select different erase options. The following options are available:

  • Erase Chip, Erase Application, Erase Boot Section, Erase Eeprom, Erase Flash and Erase User Signature

See Also

  • Introduction
  • Main tab
  • Program tab
  • Fuse tab
  • Lock Bits tab
  • Advanced tab
  • HW Settings tab
  • HW Info tab
  • Auto tab


Fuse tab

Fuse Settings

The "Fuses Settings" tab presents the fuses of the selected device.

Press the "Read" button to read the current value of the fuses, and the "Write" button to write the current fuse setting to the device. Fuse settings are presented as check boxes or as drop down lists.

Detailed information on which fuses are available in the different programming modes and their functions can be found in the device data sheet. Note that the selected fuse setting is not affected by erasing the device with a chip-erase cycle (i.e. pressing "Chip Erase" button in the "Program" settings).

Fuse values can also be written directly into the Extended, High and Low fuse registers in the lower pane.

The check boxes at the bottom specifies if; the fuses in the device should be read automatically when the fuse tab is displayed; if warnings should be displayed if the user selects a potentially dangerous fuse setting; and if fuses should be automatically verified after programming.

Some fuses are only available in high-voltage programming mode. The fuses will be displayed, but not accessible if ISP programming mode is selected in the main tab. Also, some parts do not support the ISP or High-Voltage programming modes. The appearance of the check box describes whether the fuse is readable and/or writable in the active programming mode.

The fuse bit is readable and writable in the active programming mode.
The fuse bit is readable but not writable in the active programming mode.
The fuse bit is not readable but writable in the active programming mode.
The fuse bit is neither readable nor writable in the active programming mode.

If a fuse is not readable in the active programming mode, the value displayed in the window cannot be trusted.

See Also

  • Introduction
  • Main tab
  • Program tab
  • Fuse tab
  • Lock Bits tab
  • Advanced tab
  • HW Settings tab
  • HW Info tab
  • Auto tab


Lock bits tab

Lock Bits Settings

Similar to the "Fuses" tab, the "Lock Bits" tab shows which lock modes are applicable to the selected device.

A lock mode may consist of a combination of setting multiple lock bits. This is handled by STK600/STK500 User Interface, and the correct lock bits are programmed automatically for the selected Lock mode. Once a "Lock mode" protection level is enabled it is not possible to lower the protection level by selecting a "lower" degree of protection by setting a different "Lock mode".

The only way of removing a programmed lock bit is to do a complete chip-erase.

For devices that support ISP programming, all lock bits are accessible in both ISP and High-Voltage programming mode. Note that some parts do not support either ISP programming mode or High-Voltage programming. The appearance of the Lock Bit view describes whether the lock bit is readable and/or writable in the active programming mode.

If a lock bit is not readable in the active programming mode, the value displayed in the window cannot be trusted.

See Also

  • Introduction
  • Main tab
  • Program tab
  • Fuse tab
  • Lock Bits tab
  • Advanced tab
  • HW Settings tab
  • HW Info tab
  • Auto tab


Advanced tab

Advanced Settings

Note that the Advanced Settings can have two views base on part family. The classic view is supported by the tiny and mega parts while xmega has its own view.

Oscillator Calibration Byte(s) for Tiny and Mega parts

The oscillator calibration byte is a value that can be written to the OSCCAL register found in selected devices, in order to tune the internal RC Oscillator to run as close to a chosen clock frequency as possible.

The oscillator calibration byte is stored in the device during manufacturing and can not be erased or altered by the user. It is automatically transferred to the OSCCAL register during device start-up, or set during program initialization, depending on the device. On devices where the application sets it during program initialization, it must be transferred to FLASH or EEPROM first, using the programming dialog or the command line tools.

Reading/Writing the Oscillator Calibration Byte for Tiny and Mega parts

The calibration value is read from the storage in the device and shown in the "Value" text box by pressing the "Read Cal. Byte" button. If this option is grayed out, the selected device does not have a tunable internal RC Oscillator.

The calibration byte is programmed into FLASH or EEPROM memory by pressing the "Write to Memory" button. Memory type and address must be specified first.

XMEGA Adanced Settings

When using an xmega part the avanced settings page changes to the page below. Two new memory types called production signature and user signature will appear.

Production Signature Xmega

The xmega production signature contains part specific information regarding the production of the part. E.g. wafer number, wafer coordinate, lot number and more. See figure below.

User Signature Xmega

The xmega family contain a memory type for user defined values. This memory type could be used to store e.g. calibration values. The size of this memory type is the same as one flash page. Normally 512 bytes.

The user signature memory space can be edited in two ways. Either by using hex-files as input or by directly editing the memory in a hex editor. See figure below for the hex editor.

See Also

  • Introduction
  • Main tab
  • Program tab
  • Fuse tab
  • Lock Bits tab
  • Advanced tab
  • HW Settings tab
  • HW Info tab
  • Auto tab


Hardware Settings tab

HW Settings

The HW Settings tab displays the operating conditions on the STK500 and STK600 Development Boards.

NOTE: For STK500 it is possible to force the operating conditions beyond the recommended and maximum specifications for the device. Doing this is not recommended, and may damage the target device. For STK600 the maximum limits are controlled by the installed routing card, but it is still possible to set the voltage beyond the recommended value.

The recommended operating conditions for the part can be found in the device data sheet.

Voltages

The VTARGET setting controls the operating voltage for the target board. The voltage can be regulated between 0 and 5.5 V in 0.1V steps for the STK600, and between 0 and 6.0 V in 0.1V steps for STK500. For other tools than STK500/STK600, VTARGET is read only.

The AREF settings controls the Analog Reference Voltage for the ADC converter. This setting only apply to devices with AD converters. For STK600, AREF0 and ARREF1 can be regulated between 0 and 5.5 V in 0.01 V steps. For STK500, AREF can be regulated between 0 and 6.0 V in 0.1V steps. Refer to the device data sheet for information about the valid voltage range for the selected device (STK600 automatically selects this).

It is not possible to set AREF higher than VTARGET because this will permanently damage the AVR.

All voltages are read by pressing the "Read" button, and written by pressing the "Write" button.

Clock Generator

The Clock Generator settings displays and controls the STK500 Target Clock generated on XTAL1, or the STK600 Target Clock generated on XTAL.

The settings are not available for other tools than STK500 and STK600.

See Also

  • Introduction
  • Main tab
  • Program tab
  • Fuse tab
  • Lock Bits tab
  • Advanced tab
  • HW Settings tab
  • HW Info tab
  • Auto tab


Hardware Info tab

HW Info

The HW info tab displays the hardware and firmware revision numbers of the connected tool.

For STK600 it displays detailed information about the installed routing and socket cards. Devices that are supported by the currently mounted routing/socket cards are listed in the drop down list, and the names of the connected routing-, socket- , and/or expansion cards are displayed along with the maximum operating voltage this card allows.

See Also

  • Introduction
  • Main tab
  • Program tab
  • Fuse tab
  • Lock Bits tab
  • Advanced tab
  • HW Settings tab
  • HW Info tab
  • Auto tab


Auto tab

Auto Settings

When programming multiple devices with the same code, the Auto tab offers a powerful method of automatically going through a user-defined sequence of commands. The commands are listed in the order they are executed (if selected). To enable a command the appropriate check box should be checked. E.g. If only "Program FLASH" is checked, by pressing the "Start" button the FLASH memory will be programmed with the HEX file specified in the "Program" settings.

It is possible to log the command execution to a text file by checking the "Log to file" check box.

Setting up the System for Auto Programming

Click on the check boxes for the commands that you want the User Interface to perform. A typical sequence would for instance be one where the device is erased and then programmed in one cycle. The chip is erased, both memories programmed and verified, and finally fuses and lock bits are programmed.

Once configured, the same programming sequence is executed every time the "Start" button is pressed. This reduces both work and possibilities for errors due to operational errors.

Logging the Auto Programming to a File

By clicking on the "Log to file" check box all output from the commands are written to a text file. The file is selected/created by pressing the "Browse" button, and navigate to the location where the file is placed, or should be created. The output is directed to this file, and can be viewed and edited using a text editor.

See Also
  • Introduction
  • Main tab
  • Program tab
  • Fuse tab
  • Lock Bits tab
  • Advanced tab
  • HW Settings tab
  • HW Info tab
  • Auto tab


AVR GCC project

Description

Please refer to the AVR GCC IDE User guide for more information about this project type.


Overview Simulator

Simulator Overview

Description

This section describes how some of the functionality of AVR Studio's built in simulator varies from default behavior as described in the AVR Studio User's Guide.

The simulator supports all existing new AVR devices, look at the tools and device support for an overview. It simulates not only the CPU, but nearly all the on-chip I/O modules and memory, as well as the I/O ports. Special care has been taken to ensure proper simulation of the device, and there are only small differences between simulated and actual behaviour. The simulator does not connect to outside hardware and has to be stimulated from pre-calculated stimuli files. But as the device is simulated entirely inside the PC memory, the user has extended visibility of all the on-chip functions.

Some I/O modules are not fully supported. See below for a link to an overview of the supported modules and known issues.

When AVR Studio is launched, the simulator will reset all program memories, SRAM and EEprom to 0xFF. IO locations are set to 0x00.

The full functionality of the memory/IO windows is supported by the simulator. But the following should be noted:

The memory contents will not be updated when the simulator is running. The simulator must break before the memory window can be updated.

The memory contents can not be modified when the simulator is running. The simulator must break before new values can be written into the data area.

When simulating Target Devices supporting External Data Memories, the entire external memory is regular SRAM. If the object file contains initial data for the external memories, this memory will be written to external memory when the project is opened. A target Reset will NOT restore these initial memory settings.

See also
What's new
Simulator options
Port logging and stimuli
Simulator modules
Known issues

Send feedback to Atmel. All requests for AVR Studio and other tools are welcome!


Port logging and stimuli

Description

Logging Ports

The user can log the activity on the output ports to a file or to the output window.

The user must select which of the Ports to log. If a Port is selected, the user must also select the file (or screen) to place the logged data on. It is the contents of the Port’s PORT register which is placed on the file. Each line of the log file has the following format:

Cycle:Data

IMPORTANT: The Cycle field is in decimal format and the Data field is in hexadecimal format. Maximum 9 digits for the cycle value. If the contents of the port register is unchanged in a cycle, no output is produced.

The log files are deleted each time the program is reset. Logging must be activated manually each time a program is loaded into AVR Studio, settings are not saved between project sessions.

External Stimuli

The user can set values on any of the available ports from a file.

If a Port is selected, the user must inform where the stimuli file is placed. The values in the stimuli file are placed in the PIN register on the specified port on the specified cycle. The format of the stimuli file is the same as for the Port logging. Example:

000000000:00
000000009:AB
000000014:AC

Note that only pins set as inputs are affected.

The last line of the stimuli file must be like this:

999999999:FF

fig, stimuli and logging options

See also

Simulator options
Simulator modules

Send feedback to Atmel. All requests for AVR Studio and other tools are welcome!


Project window

Project view

The project view is part of the workspace window. It lets you organize your files and functions. The functionality depends on the type of project you have created.

Assembler project

If your current project is an assembler project, the project view lets you insert files, create new files, open included files and set entry file. The commands are reached from the right mouse click menu and/or shortcut keys.

The entry file is your main file of many in your project. Only one entry file exists per project.

To get information about the path of any files, point on the file and the path will be available as tooltip information.