AVR-GCC Programming

Preview:

DESCRIPTION

AVR-GCC Programming. Using C Development Tools to program your Arduino Microcontrollers. Presented by: Charles Norona November 17th, 2011. Intro to WinAVR. Set of tools for developing Arduino M/Cs. Includes: Avr-gcc (command line compiler) Avr-libc (compiler library) - PowerPoint PPT Presentation

Citation preview

C. Norona, cnorona1@gmail.com

1

AVR-GCC Programming

Presented by: Charles NoronaNovember 17th, 2011

Using C Development Tools to program your Arduino Microcontrollers.

C. Norona, cnorona1@gmail.com

2

Intro to WinAVR

Set of tools for developing Arduino M/Cs. Includes:

Avr-gcc (command line compiler) Avr-libc (compiler library) Avr-as (assembler library) AVRDude (Programming Interface) Avarice (JTAG ICE interface) Avr-gdb (Debugger) Programmer's Notepad (IDE/Code Editor)

C. Norona, cnorona1@gmail.com

3

Getting WinAVR

Download the latest version of WinAVR at the download page.

Latest version as of Nov. 15, 2011 is 20100110. Run the installer once downloaded.

C. Norona, cnorona1@gmail.com

4

Setting Up the Dev Environment

Steps involved: Editing the Makefile.

Explanation of the makefile. Resources for editing.

Setting up and using an IDE. In this case: Programmer's Notepad.

Adding custom commands Setting up the project. Running the program.

C. Norona, cnorona1@gmail.com

5

Editing the Make File

Explanation of important Makefile instructions. Refer to “Main Tutorial for WinAVR” reference.

References for navigating the Makefile:

– AVRDude Options (lists of acceptable parameters and commands usage).

– Microcontroller Datasheet (tech specs).

– AVRDude.conf (configuration file for AVRDude).• Can generally found at: ../AVRDude-

XXXXXXXX/bin/avrdude.conf

C. Norona, cnorona1@gmail.com

6

Setting Up and Using an IDE

Our IDE needs to be set up with proper build and make commands.

– Make All

– Make Clean

– Program Device

– Make Extcoff

– Make Coff (deprecated)

COFF – Common Object File Format. However in the context of the AVR it is referred to as the fileformat that AVR Studio uses for its debugging. AVR Studio 4.07 and later also supports an extendedCOFF format that has a few extra features. The WinAVR package is able to make both types of COFFfiles, although you may need to add the COFF extension package on.

C. Norona, cnorona1@gmail.com

7

Setting Up and Using an IDEIn Programmer's Notepad the tools customization can be accessed by Tools → Options

C. Norona, cnorona1@gmail.com

8

Setting Up and Using an IDEMake All Command

Name: Make All

Command: make

Folder: %d

Parameters: all

Save: Current File

C. Norona, cnorona1@gmail.com

9

Setting Up and Using an IDEMake All Command

Capture output: enabled and uses main window.

Clear output: optional

Output Parsing: Use built-in error parser.

C. Norona, cnorona1@gmail.com

10

Setting Up and Using an IDE

Ensure that the rest of the commands are implemented. The following are the corresponding settings for each command:

C. Norona, cnorona1@gmail.com

11

Running a Program

Add this code to the new file, test01.c.

Do not forget to edit the Makefile with appropriate values.

Code will have errors for sake of exemplification.

#include <avr/io.h>#include <avr/delay.h>

void main (void){ unsigned char counter;

//set PORTB for output DRB = 0xFF;

while (1) { //set PORTB.2 high PORTB |= 1<<2; //wait (10 * 120000) cycles = wait 1200000 cycles counter = 0;

while (counter != 5) { //wait (30000 x 4) cycles = wait 120000 cycles _delay_loop_2(30000); counter++ }

//set PORTB.2 low PORTB &= ~(1<<2);

//wait (10 * 120000) cycles = wait 1200000 cycles counter = 0;

while (counter != 5) { //wait (30000 x 4) cycles = wait 120000 cycles

_delay_loop_2(30000); counter++ } } return 1;}

C. Norona, cnorona1@gmail.com

12

Demo Time!

C. Norona, cnorona1@gmail.com

13

References

Main page for WinAVR. http://winavr.sourceforge.net/helpme.html.

Main Tutorial for WinAVR which this presentation is based on. http://winavr.sourceforge.net/install_config_WinAVR.pdf. By C. O'Flynn and E. Weddington

AVRDUDE Info. http://www.nongnu.org/avrdude/user-manual/avrdude_4.html.

WinAVR Download link. http://sourceforge.net/projects/winavr/files/WinAVR/20100110/.

Arduino Duemilanove Listing. http://arduino.cc/en/Main/arduinoBoardDuemilanove.

WinAVR GCC Tutorials Source. Contains plenty of tutorials to do various things with your arduino. http://winavr.scienceprog.com/.

Recommended