• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Win avr presentation_2006

Win avr presentation_2006






Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds


Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Win avr presentation_2006 Win avr presentation_2006 Presentation Transcript

    • WinAVR and C Debugging Tutorial By Adam Bailin ECE 353 Fall ‘06
    • Introduction
      • WinAVR is a set of developing tools for Atmel AVR RISC microprocessors
      • Programs written in C, compiled with GCC and avr-libc
      • Open source, obtained at: winavr.sourceforge.net
    • Installing
      • Fairly easy to install (for use at home)
      • http://winavr.sourceforge.net/
      • Comes with all the tools you need: Programmer’s Notepad, MFile
    • Programmer’s Notepad
      • Programmer’s Notepad is the main tool you will be using to write your C code
      • Just like any other compiler
        • syntax highlighting
        • Support for different programming languages
        • Ability to compile your code (using gcc compiler)
    • Adding external tools
      • In Programmer’s Notepad, select Tools->Options, and select “Tools” on the left side of screen
    • Adding external tools (continued)
      • Select a Scheme (C/C++)
      • Click on “Add”
      • “ Name” is an identifier for this tool
      • Command is the command used
      • Folder should be %d (Path of file)
      • This tool will call “make extcoff”, and is now available under “Tools” menu
      • We will need this later for debugging in AVR Studio
    • Example C Program
      • // blinky.c
      • #include <avr/io.h> // Standard AVR header
      • #include <avr/delay.h> // Delay loop functions
      • int main(void)
      • {
      • DDRA = 0xFF; // PORTA is output
      • while (1) {
      • for (int i=1; i<=128; i*=2) {
      • PORTA = i;
      • _delay_loop_2(30000);
      • }
      • for (int i=128; i>1; i/=2) {
      • PORTA = i;
      • _delay_loop_2(30000);
      • }
      • } // end while
      • }
    • Building your source
      • Write your C source, save as blinky.c
      • Open up MFile
        • Makefile -> Main File Name = blinky (no .c)
        • Makefile -> MCU Type = atmega32
      • Other values should be fine at default
      • File -> Save As to blinky.c directory
      • In Programmer’s Notepad: Select Tools ->Make All
    • MFile
      • Simple program to make Makefiles for compiling your C code
      • A Makefile is a configuration file that tells the compiler how to compile your code
        • What chip you’re using (atmega32)
        • Target filename (blinky.c)
    • GNU Make
      • WinAVR uses “Makefiles” when building projects, with GNU Make
      • GNU Make builds dependencies and then source files
      • Will only rebuild files from updated or new source (saves time)
      • Very powerful tool: see C:WinAVRdocgnumake.html for more info
    • Makefiles (continued)
      • Makefiles are tab-sensitive: tab != space
      • Lines starting with tab are executed as commands
      • Misuse of tabs will lead to “improper separator” error
    • Example Makefile
      • ## ‘all’ and ‘clean’ targets must be defined!
      • # ‘make’ or ‘make all’ will build dependencies in the order they are given
      • all: begin project2 end
      • begin:
      • @echo “Starting build”
      • project2:
      • avr-gcc project2.c
      • end:
      • @echo “Build complete”
      • clean:
      • rm project2.o
    • Programming your ATmega32
      • To program your chip with the C code you wrote:
        • Go to AVR Studio
        • Connect to your chip using JTAG ICE
        • Go to Fuses tab, make sure Ext Clock is set
        • In Program tab, flash your chip with the .hex file you compiled in Programmer’s Notepad
        • That’s it!
    • C Debugging in AVR Studio
      • Use the editor to edit the flags in makefile :
        • DEBUG = stabs // will allow for C debugging
        • OPT = 0 // will turn off compiler’s optimization
      • Save the makefile
      AVR Studio provides a way to debug both the C source code and the assembly code. To do that you just need to change the type of the COF file generated by the compiler. Open the Programmer’s Notepad (WinAVR)
    • Building C code for Debugging
      • Go to Tools  Options  Tools
      • Pull down the Schemes window and click on C/C++ option
      • A make extcoff option will appear; click OK
      • Click on Tools again
      • Click on make extcoff to generate the COF file
      • (this will generate the correct debug file for AVR Studio that includes the C code information)
      In the Programmer’s Notepad (WinAVR):
    • Debugging in AVR Studio
      • Connect Olimex to PC and JTAG
      • Open the AVR Studio
        • Open the COF file
        • (it will guide you to select the debug platform (JTAG) and the device (Atmega 32))
        • The C code will appear in the main window
        • Optional (useful!) view the assembly code:
          • go to View  Dissassembler
        • You can put assembly code next to C code
          • ( tile vertically ) and step through both codes!
    • Additional Information
      • Additional Information can be found at the WinAVR website:
          • winavr.sourceforge.net