13
C. Norona, cnorona1@gma il.com 1 AVR-GCC Programming Presented by: Charles Norona November 17th, 2011 Using C Development Tools to program your Arduino Microcontrollers.

AVR-GCC Programming

Embed Size (px)

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

Page 1: AVR-GCC Programming

C. Norona, [email protected]

1

AVR-GCC Programming

Presented by: Charles NoronaNovember 17th, 2011

Using C Development Tools to program your Arduino Microcontrollers.

Page 2: AVR-GCC Programming

C. Norona, [email protected]

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)

Page 3: AVR-GCC Programming

C. Norona, [email protected]

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.

Page 4: AVR-GCC Programming

C. Norona, [email protected]

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.

Page 5: AVR-GCC Programming

C. Norona, [email protected]

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

Page 6: AVR-GCC Programming

C. Norona, [email protected]

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.

Page 7: AVR-GCC Programming

C. Norona, [email protected]

7

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

Page 8: AVR-GCC Programming

C. Norona, [email protected]

8

Setting Up and Using an IDEMake All Command

Name: Make All

Command: make

Folder: %d

Parameters: all

Save: Current File

Page 9: AVR-GCC Programming

C. Norona, [email protected]

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.

Page 10: AVR-GCC Programming

C. Norona, [email protected]

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:

Page 11: AVR-GCC Programming

C. Norona, [email protected]

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;}

Page 12: AVR-GCC Programming

C. Norona, [email protected]

12

Demo Time!

Page 13: AVR-GCC Programming

C. Norona, [email protected]

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/.