130 likes | 152 Views
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)
E N D
C. Norona, cnorona1@gmail.com AVR-GCC Programming Using C Development Tools to program your Arduino Microcontrollers. Presented by: Charles Norona November 17th, 2011
C. Norona, cnorona1@gmail.com 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 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 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 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 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 file format that AVR Studio uses for its debugging. AVR Studio 4.07 and later also supports an extended COFF format that has a few extra features. The WinAVR package is able to make both types of COFF files, although you may need to add the COFF extension package on.
C. Norona, cnorona1@gmail.com Setting Up and Using an IDE In Programmer's Notepad the tools customization can be accessed by Tools → Options
C. Norona, cnorona1@gmail.com Setting Up and Using an IDE Make All Command • Name: Make All • Command: make • Folder: %d • Parameters: all • Save: Current File
C. Norona, cnorona1@gmail.com Setting Up and Using an IDE Make All Command • Capture output: enabled and uses main window. • Clear output: optional • Output Parsing: Use built-in error parser.
C. Norona, cnorona1@gmail.com 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 Running a Program #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; } 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.
C. Norona, cnorona1@gmail.com Demo Time!
C. Norona, cnorona1@gmail.com 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/.