Presentation is loading. Please wait.

Presentation is loading. Please wait.

ECE 353 WinAVR and C Debugging Tutorial By Adam Bailin ECE 353 Fall ‘06.

Similar presentations


Presentation on theme: "ECE 353 WinAVR and C Debugging Tutorial By Adam Bailin ECE 353 Fall ‘06."— Presentation transcript:

1 ECE 353 WinAVR and C Debugging Tutorial By Adam Bailin ECE 353 Fall ‘06

2 2 ECE 353 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

3 3 ECE 353 Installing  Fairly easy to install (for use at home)  http://winavr.sourceforge.net/ http://winavr.sourceforge.net/  Comes with all the tools you need: Programmer’s Notepad, MFile

4 4 ECE 353 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)

5 5 ECE 353 Adding external tools  In Programmer’s Notepad, select Tools->Options, and select “Tools” on the left side of screen

6 6 ECE 353 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

7 7 ECE 353 Example C Program // blinky.c #include // Standard AVR header #include // 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 }

8 8 ECE 353 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

9 9 ECE 353 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)

10 10 ECE 353 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:\WinAVR\doc\gnu\make.html for more info

11 11 ECE 353 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

12 12 ECE 353 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

13 13 ECE 353 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!

14 14 ECE 353 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)

15 15 ECE 353

16 16 ECE 353 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):

17 17 ECE 353

18 18 ECE 353 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!

19 19 ECE 353

20 20 ECE 353 Additional Information  Additional Information can be found at the WinAVR website: winavr.sourceforge.net


Download ppt "ECE 353 WinAVR and C Debugging Tutorial By Adam Bailin ECE 353 Fall ‘06."

Similar presentations


Ads by Google