SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

Quick description of avr-gdb.

Today avr-gdb works only as in circuit debugger because I don't have a simulator.
avr-gdb needed in monitor.

Monitor consists of two parts:
1) AVR part (0x1d0 bytes of code and 0x40 bytes of data); 2) PC part.

PC part of monitor can (with help of AVR part of monitor): - read/write AVR registers (include SREG, PC and SP); - read/write AVR memory;
- read/write AVR IO.
- put/clear up to 8 breakpoints;
- step one instruction.

AVR part of monitor written in C (avr-gcc).

AVR part of monitor stops only on source coded breakpoints (`TRAP()'). After stopping you can work with the AVR part (with chip).

PC and AVR connected as:

Connect AVR with parallel port

        AVR                       Parallel Port
   Signal name   Pin             Pin  Signal name
   GND           20 ------------ 19   GND
   GND           20 ------------ 21   GND
   SCK            8 ------------  1   Strobe
   MOSI           6 ------------ 12   Out of paper
   MISO           7 ------------ 11   Busy
   Reset          9 ------------ 16   Init
   Connect parallel port pin 12 with parallel port pin 2 through diod
                                 Out of paper 12 ----|>|--- 2 Data 0

This connection allow to use send_byte and program AVR flash with Uros Platise `uisp' in `-dapa' mode.


How the avr-gdb works:

The avr-gdb connects with monitor (PC part of monitor) through TCP After connection: program in AVR runs until TRAP() executed. (TRAP () is a source coded breakpoint). After a AVR program trap's you can :
- watch any global variables;
- disassemble functions;
- watch registers and local variables;
- up's and down's by stack;
- list source texts;
- run any function with parameters in AVR chip; - any thing which GDB can;
- step one instruction;
- put breakpoints (up to 8);
- clear breakpoints;
- continue execution until next TRAP(); - stepping until TRAP () or any breakpoint;

continue AVR program only if no breakpoint sets (gdb command `c'). stepping AVR program if one or more breakpoint sets (gdb command `c').

Under emacs all this works as a native PC debugging except source coded TRAP()'s.

You can use any gdb GUI frontend: xxgdb, Source Navigator, ...


How to run

  1. Compile a C program with `-g' command line option;
  2. Write this program to AVR Flash. I'm use:

    avr-ld --oformat=srec a.out -o a.srec uisp -dapa --erase uisp -dapa --upload if=a.srec -v=3

  3. Run AVR monitor. (`mon localhost' or `remon localhost');
  4. Run avr-gdb;
  5. Type following commands under avr-gdb:

    file a.out target avr localhost:11111

  6. The program in AVR chip will be executed until the program reaches a source coded breakpoint ( TRAP(); ).


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.