Topics / Index / deutsch

WINAVR

Content (automatic)

Warning

Some Codesnips are translated badly see #bad_codesnips

My Code

I have my WINAVR source codes in home/avr/... see avr/topics.htm and avr/00idx.htm

Download and install

Download from http://winavr.sourceforge.net
Install as usual
Help will be in ../../../../WinAVR/WinAVR-user-manual.html
Have in PATH= C:\WinAVR\bin;C:\WinAVR\utils\bin; [Start] [Settings] [COntrol Panel] [System] [Advanced] [Environment Variables]

Usage

[Start] [Programs] [WinAvr] [Programmers Notepad (WinAvr)]
Create in a subdirectory a makefile and a name.c (not .cpp) file - an example for the makefile is in WinAVR/examples/demo
copy "\WinAVR\examples\demo\makefile" .
Use [Tools] [[WinAVR]Make All]
By this the follow files are created:

name.bin

name.elf
To be used with AVR Insight
name.hex

name.lst

name.map

name.o

name.srec
Motorola S-Records
name_eeprom.bin

name_eeprom.hex
name_eeprom.srec

To compile my CPP programs:
Start Programmers Notepad
open a project as e.g. /home/cc/qq/avr/qqmain/qqmain.pnproj

If an own / new CPP program has to be added:
Create a subdirectory e.g. /home/cc/????/avr/??????
Copy an existing Makefile e.g. from /home/cc/qq/avr/qqmain/makefile

The Compiler switches

D:\WinAVR\bin>avr-gcc --help
Usage: avr-gcc [options] file...
Options:
  -pass-exit-codes         Exit with highest error code from a phase
  --help                   Display this information
  --target-help            Display target specific command line options
  (Use '-v --help' to display command line options of sub-processes)
  -dumpspecs               Display all of the built in spec strings
  -dumpversion             Display the version of the compiler
  -dumpmachine             Display the compiler's target processor
  -print-search-dirs       Display the directories in the compiler's search path

  -print-libgcc-file-name  Display the name of the compiler's companion library
  -print-file-name=<lib>   Display the full path to library <lib>
  -print-prog-name=<prog>  Display the full path to compiler component <prog>
  -print-multi-directory   Display the root directory for versions of libgcc
  -print-multi-lib         Display the mapping between command line options and
                           multiple library search directories
  -print-multi-os-directory Display the relative path to OS libraries
  -Wa,<options>            Pass comma-separated <options> on to the assembler
  -Wp,<options>            Pass comma-separated <options> on to the preprocessor

  -Wl,<options>            Pass comma-separated <options> on to the linker
  -Xassembler <arg>        Pass <arg> on to the assembler
  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor
  -Xlinker <arg>           Pass <arg> on to the linker
  -save-temps              Do not delete intermediate files
  -pipe                    Use pipes rather than intermediate files
  -time                    Time the execution of each subprocess
  -specs=<file>            Override built-in specs with the contents of <file>
  -std=<standard>          Assume that the input sources are for <standard>
  -B <directory>           Add <directory> to the compiler's search paths
  -b <machine>             Run gcc for target <machine>, if installed
  -V <version>             Run gcc version number <version>, if installed
  -v                       Display the programs invoked by the compiler
  -###                     Like -v but options quoted and commands not executed
  -E                       Preprocess only; do not compile, assemble or link
  -S                       Compile only; do not assemble or link
  -c                       Compile and assemble, but do not link
  -o <file>                Place the output into <file>
  -x <language>            Specify the language of the following input files
                           Permissible languages include: c c++ assembler none
                           'none' means revert to the default behavior of
                           guessing the language based on the file's extension

Options starting with -g, -f, -m, -O, -W, or --param are automatically
 passed on to the various sub-processes invoked by avr-gcc.  In order to pass
 other options on to these processes the -W<letter> options must be used.

For bug reporting instructions, please see:
<URL:http://gcc.gnu.org/bugs.html>.

D:\WinAVR\bin>

See also : ../cc/english/oskgcc.htm  /

Predefined preprocessor variables

__GNUC__ 3
__VERSION__
I predefine AVR in the makefile

Selecting a device
A list of possible #define is in C:\WinAVR\avr\include\ . e.g. #elif defined(__AVR_ATmega8535__)

avr-ar : Die Libraries bearbeiten

Anzeigen von Libraries mit t

Beispiel:

D:\HOME\CC\LQ\AVR>dir
...
2005-06-28  07:48p              12,116 liblq.a
...
D:\HOME\CC\LQ\AVR>avr-ar t liblq.a
vt.o

D:\HOME\CC\LQ\AVR>avr-ar tv liblq.a
rw-rw-rw- 0/0  11340 Jun 28 19:43 2005 vt.o

D:\HOME\CC\LQ\AVR>

Damit ist angezeigt, dass das Modul (Datei) vt.o in der Library ist.

Herausziehen eines einzelnen Object-Files aus einer Library mit x:

Das Herausziehen geht mit avr-ar x library.a file.o
Beispiel :
avr-ar x liblq.a vt.o

Anzeigen von definierten und verlangen Symbolen

D:\HOME\CC\LQ\AVR>avr-objdump -t liblq.a
In archive liblq.a:

vt.o:     file format elf32-avr

SYMBOL TABLE:
00000000 l    df *ABS*  00000000 vt.cpp
00000000 l    d  .text  00000000
00000000 l    d  .data  00000000
00000000 l    d  .bss   00000000
0000003f l       *ABS*  00000000 __SREG__
0000003e l       *ABS*  00000000 __SP_H__
0000003d l       *ABS*  00000000 __SP_L__
00000000 l       *ABS*  00000000 __tmp_reg__
00000001 l       *ABS*  00000000 __zero_reg__
00000005 l     O .data  00000004 attriblist
000000b2 l     O .bss   00000002 sOperatingsys
00000030 l     O .data  000000a2 _ZZ5vtkeyvE7pattern
000000d2 l     O .data  00000002 FSYSTEMCASESENSITIVE
000000d4 l     O .data  00000002 EPOCHTOTXT_BUFFER_SIZE
000000d6 l     O .data  00000004 DAYCOUNT_1970_1_1
00000000         *UND*  00000000 __do_copy_data
00000000         *UND*  00000000 __do_clear_bss
00000000 g     O .data  00000002 vt_xmax
00000002 g     O .data  00000002 vt_ymax
00000000 g     O .bss   00000001 vt_uses_screen
00000001 g     O .bss   00000050 screen
00000051 g     O .bss   00000050 act_screen
000000a1 g     O .bss   00000002 vt_curr_line
000000a3 g     O .bss   00000002 vt_curr_col
000000a5 g     O .bss   00000002 act_vt_curr_line
000000a7 g     O .bss   00000002 act_vt_curr_col
00000004 g     O .data  00000001 vt_current_attribute
000000a9 g     O .bss   00000002 vt_scrol_ymin
000000ab g     O .bss   00000002 vt_scrol_ymax
00000000 g     F .text  0000004a _Z8vtcolorshh
0000004a g     F .text  00000040 _Z6vtattrh
0000008a g     F .text  000000bc _Z5vtclsv
00000000         *UND*  00000000 strcmp
00000edc g     F .text  0000013a _Z8xxvtopenv
00000146 g     F .text  00000010 _Z8vtcurdisv
00000b4a g     F .text  00000344 _Z9vtrefreshv
00000156 g     F .text  00000050 _Z10vtsetscrolhh
000001a6 g     F .text  0000023a _Z6vtochac
00000000         *UND*  00000000 __mulhi3
00000890 g     F .text  0000020a _Z4vtnlv
00000000         *UND*  00000000 __iob
00000000         *UND*  00000000 fputc
000003e0 g     F .text  00000068 _Z6vtputsPKc
00000448 g     F .text  000000ae _Z8vtdeleolv
000004f6 g     F .text  00000074 _Z8vtdelbolv
0000056a g     F .text  00000178 _Z7vtcurdnv
000006e2 g     F .text  000001ae _Z7vtcurupv
00000a9a g     F .text  0000006e _Z8vtcurposjj
00000b08 g     F .text  00000042 _Z9vtgcurposPhS_
000000ad g     O .bss   00000005 vt_raw_sequence
00000000         *UND*  00000000 printf
00000e8e g     F .text  0000002c _Z7vtclosev
00000eba g     F .text  00000010 _Z14vtclose_forcedv
00000eca g     F .text  00000012 _Z6vtopenv
00001016 g     F .text  0000000e _Z7vtiskeyv
00001024 g     F .text  0000000e _Z11vtiskeyfastv
00001032 g     F .text  00000034 _Z13getrawkeycodev
00001066 g     F .text  000001d2 _Z5vtkeyv
00000000         *UND*  00000000 _Z7getmsecv
00000000         *UND*  00000000 _Z8diffmsecm
00000000         *UND*  00000000 _Z6iswordPKcS0_
00001238 g     F .text  00000098 _Z10xxvtcurposii

D:\HOME\CC\LQ\AVR>

Simulation


See ../../../../WinAVR/doc/simulavr-0.1.2.1/html/index.html
There are good and easy to understand examples.

Simulation with GUI

Enter in a first DOS-BOX :
C:\HOME\CC\QQ\AVR\QQMAIN>simulavr -d at90s8515 -g

Simulating a at90s8515 device.

MESSAGE: file ../../simulavr-0.1.2.1/src/decoder.c: line 3872: generating opcode
 lookup_table
MESSAGE: file ../../simulavr-0.1.2.1/src/main.c: line 413: Simulating clock freq
uency of 8000000 Hz
Waiting on port 1212 for gdb client to connect...
Connection opened by host 127.0.0.1, port 1358.
Waiting on port 1212 for gdb client to connect...


Enter in a second DOS-BOX : avr-insight
A GUI Windows opens, use

Bad Code Snip 1

C-Program
ha =            1 ; // = 00 00 80 3F
hb =          256 ; // = 00 00 80 3F
hr = hb - ha ; if ( hr.x !=          255 )
 goto Error ;  //  = 00 00 7F 43
hr = ha + hb ; if ( hr.x !=          257 )
 goto Error ;  //  = 00 80 80 43
hr = ha - hb ; if ( hr.x !=         -255 )
 goto Error ;  //  = 00 00 7F C3
hr = hb + ha ; if ( hr.x !=          257 )
 goto Error ;  //  = 00 80 80 43

Compilation
      ca:    0f 2e           mov    r0, r31
      cc:    f0 e0           ldi    r31, 0x00    ; 0
      ce:    ef 2e           mov    r14, r31
      d0:    f0 e0           ldi    r31, 0x00    ; 0
      d2:    ff 2e           mov    r15, r31
      d4:    f0 e8           ldi    r31, 0x80    ; 128
      d6:    0f 2f           mov    r16, r31
      d8:    ff e3           ldi    r31, 0x3F    ; 63
      da:    1f 2f           mov    r17, r31
      dc:    f0 2d           mov    r31, r0
      de:    e0 92 80 00     sts    0x0080, r14
      e2:    f0 92 81 00     sts    0x0081, r15
      e6:    00 93 82 00     sts    0x0082, r16
      ea:    10 93 83 00     sts    0x0083, r17
      ee:    0f 2e           mov    r0, r31
      f0:    f0 e0           ldi    r31, 0x00    ; 0
      f2:    af 2e           mov    r10, r31
      f4:    f0 e0           ldi    r31, 0x00    ; 0
      f6:    bf 2e           mov    r11, r31
      f8:    f0 e8           ldi    r31, 0x80    ; 128
      fa:    cf 2e           mov    r12, r31
      fc:    f3 e4           ldi    r31, 0x43    ; 67
      fe:    df 2e           mov    r13, r31
     100:    f0 2d           mov    r31, r0
     102:    a0 92 7c 00     sts    0x007C, r10
     106:    b0 92 7d 00     sts    0x007D, r11
     10a:    c0 92 7e 00     sts    0x007E, r12
     10e:    d0 92 7f 00     sts    0x007F, r13
     112:    b8 01           movw    r22, r16
     114:    a7 01           movw    r20, r14
     116:    8c e7           ldi    r24, 0x7C    ; 124
     118:    90 e0           ldi    r25, 0x00    ; 0
     11a:    56 d4           rcall    .+2220       ; 0x9c8 <_ZN3upfmiES_>
     11c:    dc 01           movw    r26, r24
     11e:    cb 01           movw    r24, r22
     120:    80 93 70 00     sts    0x0070, r24
     124:    90 93 71 00     sts    0x0071, r25
     128:    a0 93 72 00     sts    0x0072, r26
     12c:    b0 93 73 00     sts    0x0073, r27

ha =            1 ; // = 00 00 80 3F
hb =          256 ; // = 00 00 80 3F
hr = hb - ha ; if ( hr.x !=          255 )
     130:    20 e0           ldi    r18, 0x00    ; 0 r21r20r19r18 : = 256
     132:    30 e0           ldi    r19, 0x00    ; 0
     134:    4f e7           ldi    r20, 0x7F    ; 127
     136:    53 e4           ldi    r21, 0x43    ; 67
     138:    bc 01           movw    r22, r24
     13a:    cd 01           movw    r24, r26
     13c:    82 da           rcall    .-2812       ; 0xfffff642 <__eeprom_end+0xff7ef642>
     13e:    88 23           and    r24, r24
     140:    21 f6           brne    .-120        ; 0xca <_Z4fun1v+0xc>
     142:    80 91 7c 00     lds    r24, 0x007C
     146:    90 91 7d 00     lds    r25, 0x007D
     14a:    a0 91 7e 00     lds    r26, 0x007E
     14e:    b0 91 7f 00     lds    r27, 0x007F
     152:    ac 01           movw    r20, r24
     154:    bd 01           movw    r22, r26
     156:    80 e8           ldi    r24, 0x80    ; 128
     158:    90 e0           ldi    r25, 0x00    ; 0
     15a:    37 d4           rcall    .+2158       ; 0x9ca <_ZN3upfplES_>
     15c:    dc 01           movw    r26, r24
     15e:    cb 01           movw    r24, r22
     160:    80 93 70 00     sts    0x0070, r24
     164:    90 93 71 00     sts    0x0071, r25
     168:    a0 93 72 00     sts    0x0072, r26
     16c:    b0 93 73 00     sts    0x0073, r27
 goto Error ;  //  = 00 00 7F 43
hr = ha + hb ; if ( hr.x !=          257 )
     170:    20 e0           ldi    r18, 0x00    ; 0
     172:    30 e8           ldi    r19, 0x80    ; 128
     174:    40 e8           ldi    r20, 0x80    ; 128
     176:    53 e4           ldi    r21, 0x43    ; 67
     178:    bc 01           movw    r22, r24
     17a:    cd 01           movw    r24, r26
     17c:    62 da           rcall    .-2876       ; 0xfffff642 <__eeprom_end+0xff7ef642>
     17e:    88 23           and    r24, r24
     180:    09 f0           breq    .+2          ; 0x184 <_Z4fun1v+0xc6>
     182:    a3 cf           rjmp    .-186        ; 0xca <_Z4fun1v+0xc>
     184:    80 91 7c 00     lds    r24, 0x007C
     188:    90 91 7d 00     lds    r25, 0x007D
     18c:    a0 91 7e 00     lds    r26, 0x007E
     190:    b0 91 7f 00     lds    r27, 0x007F
     194:    ac 01           movw    r20, r24
     196:    bd 01           movw    r22, r26
     198:    80 e8           ldi    r24, 0x80    ; 128
     19a:    90 e0           ldi    r25, 0x00    ; 0
     19c:    15 d4           rcall    .+2090       ; 0x9c8 <_ZN3upfmiES_>
     19e:    dc 01           movw    r26, r24   ; return Value to FLoating Point Accu
     1a0:    cb 01           movw    r24, r22
     1a2:    80 93 70 00     sts    0x0070, r24
     1a6:    90 93 71 00     sts    0x0071, r25
     1aa:    a0 93 72 00     sts    0x0072, r26
     1ae:    b0 93 73 00     sts    0x0073, r27
 goto Error ;  //  = 00 80 80 43
hr = ha - hb ; if ( hr.x !=         -255 )
     1b2:    20 e0           ldi    r18, 0x00    ; 0
     1b4:    30 e0           ldi    r19, 0x00    ; 0
     1b6:    4f e7           ldi    r20, 0x7F    ; 127
     1b8:    53 ec           ldi    r21, 0xC3    ; 195
     1ba:    bc 01           movw    r22, r24
     1bc:    cd 01           movw    r24, r26
     1be:    41 da           rcall    .-2942       ; 0xfffff642 <__eeprom_end+0xff7ef642>
     1c0:    88 23           and    r24, r24
     1c2:    09 f0           breq    .+2          ; 0x1c6 <_Z4fun1v+0x108>
     1c4:    82 cf           rjmp    .-252        ; 0xca <_Z4fun1v+0xc>
     1c6:    80 91 80 00     lds    r24, 0x0080
     1ca:    90 91 81 00     lds    r25, 0x0081
     1ce:    a0 91 82 00     lds    r26, 0x0082
     1d2:    b0 91 83 00     lds    r27, 0x0083   ; LOad hb to floating point akku
     1d6:    ac 01           movw    r20, r24
     1d8:    bd 01           movw    r22, r26
     1da:    8c e7           ldi    r24, 0x7C    ; 124 Adresse of ha
     1dc:    90 e0           ldi    r25, 0x00    ; 0
     1de:    f5 d3           rcall    .+2026       ; 0x9ca <_ZN3upfplES_>
     1e0:    dc 01           movw    r26, r24
     1e2:    cb 01           movw    r24, r22
     1e4:    80 93 70 00     sts    0x0070, r24
     1e8:    90 93 71 00     sts    0x0071, r25
     1ec:    a0 93 72 00     sts    0x0072, r26
     1f0:    b0 93 73 00     sts    0x0073, r27
 goto Error ;  //  = 00 00 7F C3
hr = hb + ha ; if ( hr.x !=          257 )
     1f4:    20 e0           ldi    r18, 0x00    ; 0
     1f6:    30 e8           ldi    r19, 0x80    ; 128
     1f8:    40 e8           ldi    r20, 0x80    ; 128
     1fa:    53 e4           ldi    r21, 0x43    ; 67
     1fc:    bc 01           movw    r22, r24
     1fe:    cd 01           movw    r24, r26
     200:    20 da           rcall    .-3008       ; 0xfffff642 <__eeprom_end+0xff7ef642>
     202:    88 23           and    r24, r24
     204:    09 f0           breq    .+2          ; 0x208 <_Z4fun1v+0x14a>
     206:    61 cf           rjmp    .-318        ; 0xca <_Z4fun1v+0xc>
     208:    e0 92 80 00     sts    0x0080, r14
     20c:    f0 92 81 00     sts    0x0081, r15
     210:    00 93 82 00     sts    0x0082, r16
     214:    10 93 83 00     sts    0x0083, r17
     218:    80 e0           ldi    r24, 0x00    ; 0
     21a:    90 e0           ldi    r25, 0x00    ; 0
     21c:    af e7           ldi    r26, 0x7F    ; 127
     21e:    b3 e4           ldi    r27, 0x43    ; 67
     220:    80 93 7c 00     sts    0x007C, r24
     224:    90 93 7d 00     sts    0x007D, r25
     228:    a0 93 7e 00     sts    0x007E, r26
     22c:    b0 93 7f 00     sts    0x007F, r27
     230:    b8 01           movw    r22, r16
     232:    a7 01           movw    r20, r14
     234:    8c e7           ldi    r24, 0x7C    ; 124
     236:    90 e0           ldi    r25, 0x00    ; 0
     238:    c7 d3           rcall    .+1934       ; 0x9c8 <_ZN3upfmiES_>
     23a:    dc 01           movw    r26, r24
     23c:    cb 01           movw    r24, r22
     23e:    80 93 70 00     sts    0x0070, r24
     242:    90 93 71 00     sts    0x0071, r25
     246:    a0 93 72 00     sts    0x0072, r26
     24a:    b0 93 73 00     sts    0x0073, r27
 goto Error ;  //  = 00 80 80 43

ha =            1 ; // = 00 00 80 3F
hb =          255 ; // = 00 00 80 3F
hr = hb - ha ; if ( hr.x !=          254 )
     24e:    20 e0           ldi    r18, 0x00    ; 0
     250:    30 e0           ldi    r19, 0x00    ; 0
     252:    4e e7           ldi    r20, 0x7E    ; 126
     254:    53 e4           ldi    r21, 0x43    ; 67
     256:    bc 01           movw    r22, r24
     258:    cd 01           movw    r24, r26
     25a:    f3 d9           rcall    .-3098       ; 0xfffff642 <__eeprom_end+0xff7ef642>
     25c:    88 23           and    r24, r24
     25e:    09 f0           breq    .+2          ; 0x262 <__stack+0x3>
     260:    34 cf           rjmp    .-408        ; 0xca <_Z4fun1v+0xc>
     262:    80 91 7c 00     lds    r24, 0x007C
     266:    90 91 7d 00     lds    r25, 0x007D
     26a:    a0 91 7e 00     lds    r26, 0x007E
     26e:    b0 91 7f 00     lds    r27, 0x007F
     272:    ac 01           movw    r20, r24
     274:    bd 01           movw    r22, r26
     276:    80 e8           ldi    r24, 0x80    ; 128
     278:    90 e0           ldi    r25, 0x00    ; 0
     27a:    a7 d3           rcall    .+1870       ; 0x9ca <_ZN3upfplES_>
     27c:    dc 01           movw    r26, r24
     27e:    cb 01           movw    r24, r22
     280:    80 93 70 00     sts    0x0070, r24
     284:    90 93 71 00     sts    0x0071, r25
     288:    a0 93 72 00     sts    0x0072, r26
     28c:    b0 93 73 00     sts    0x0073, r27
 goto Error ;  //  = 00 00 7E 43
hr = ha + hb ; if ( hr.x !=          256 )
     290:    a6 01           movw    r20, r12
     292:    95 01           movw    r18, r10
     294:    bc 01           movw    r22, r24
     296:    cd 01           movw    r24, r26
     298:    d4 d9           rcall    .-3160       ; 0xfffff642 <__eeprom_end+0xff7ef642>
     29a:    88 23           and    r24, r24
     29c:    09 f0           breq    .+2          ; 0x2a0 <__stack+0x41>
     29e:    15 cf           rjmp    .-470        ; 0xca <_Z4fun1v+0xc>
     2a0:    80 91 7c 00     lds    r24, 0x007C
     2a4:    90 91 7d 00     lds    r25, 0x007D
     2a8:    a0 91 7e 00     lds    r26, 0x007E
     2ac:    b0 91 7f 00     lds    r27, 0x007F
     2b0:    ac 01           movw    r20, r24
     2b2:    bd 01           movw    r22, r26
     2b4:    80 e8           ldi    r24, 0x80    ; 128
     2b6:    90 e0           ldi    r25, 0x00    ; 0
     2b8:    87 d3           rcall    .+1806       ; 0x9c8 <_ZN3upfmiES_>
     2ba:    dc 01           movw    r26, r24
     2bc:    cb 01           movw    r24, r22
     2be:    80 93 70 00     sts    0x0070, r24
     2c2:    90 93 71 00     sts    0x0071, r25
     2c6:    a0 93 72 00     sts    0x0072, r26
     2ca:    b0 93 73 00     sts    0x0073, r27
 goto Error ;  //  = 00 00 80 43
hr = ha - hb ; if ( hr.x !=         -254 )
     2ce:    20 e0           ldi    r18, 0x00    ; 0
     2d0:    30 e0           ldi    r19, 0x00    ; 0
     2d2:    4e e7           ldi    r20, 0x7E    ; 126
     2d4:    53 ec           ldi    r21, 0xC3    ; 195
     2d6:    bc 01           movw    r22, r24
     2d8:    cd 01           movw    r24, r26
     2da:    b3 d9           rcall    .-3226       ; 0xfffff642 <__eeprom_end+0xff7ef642>
     2dc:    88 23           and    r24, r24
     2de:    09 f0           breq    .+2          ; 0x2e2 <__stack+0x83>
     2e0:    f4 ce           rjmp    .-536        ; 0xca <_Z4fun1v+0xc>
     2e2:    80 91 80 00     lds    r24, 0x0080
     2e6:    90 91 81 00     lds    r25, 0x0081
     2ea:    a0 91 82 00     lds    r26, 0x0082
     2ee:    b0 91 83 00     lds    r27, 0x0083
     2f2:    ac 01           movw    r20, r24
     2f4:    bd 01           movw    r22, r26
     2f6:    8c e7           ldi    r24, 0x7C    ; 124
     2f8:    90 e0           ldi    r25, 0x00    ; 0
     2fa:    67 d3           rcall    .+1742       ; 0x9ca <_ZN3upfplES_>
     2fc:    dc 01           movw    r26, r24
     2fe:    cb 01           movw    r24, r22
     300:    80 93 70 00     sts    0x0070, r24
     304:    90 93 71 00     sts    0x0071, r25
     308:    a0 93 72 00     sts    0x0072, r26
     30c:    b0 93 73 00     sts    0x0073, r27
 goto Error ;  //  = 00 00 7E C3
hr = hb + ha ; if ( hr.x !=          256 )
     310:    a6 01           movw    r20, r12
     312:    95 01           movw    r18, r10
     314:    bc 01           movw    r22, r24
     316:    cd 01           movw    r24, r26
     318:    94 d9           rcall    .-3288       ; 0xfffff642 <__eeprom_end+0xff7ef642>
     31a:    88 23           and    r24, r24
     31c:    09 f0           breq    .+2          ; 0x320 <__stack+0xc1>
     31e:    d5 ce           rjmp    .-598        ; 0xca <_Z4fun1v+0xc>
     320:    e0 92 80 00     sts    0x0080, r14
     324:    f0 92 81 00     sts    0x0081, r15
     328:    00 93 82 00     sts    0x0082, r16
     32c:    10 93 83 00     sts    0x0083, r17
     330:    0f 2e           mov    r0, r31
     332:    f0 e0           ldi    r31, 0x00    ; 0
     334:    af 2e           mov    r10, r31
     336:    ff ef           ldi    r31, 0xFF    ; 255
     338:    bf 2e           mov    r11, r31
     33a:    ff e7           ldi    r31, 0x7F    ; 127
     33c:    cf 2e           mov    r12, r31
     33e:    f7 e4           ldi    r31, 0x47    ; 71
     340:    df 2e           mov    r13, r31
     342:    f0 2d           mov    r31, r0
     344:    a0 92 7c 00     sts    0x007C, r10
     348:    b0 92 7d 00     sts    0x007D, r11
     34c:    c0 92 7e 00     sts    0x007E, r12
     350:    d0 92 7f 00     sts    0x007F, r13
     354:    b8 01           movw    r22, r16
     356:    a7 01           movw    r20, r14
     358:    8c e7           ldi    r24, 0x7C    ; 124
     35a:    90 e0           ldi    r25, 0x00    ; 0
     35c:    35 d3           rcall    .+1642       ; 0x9c8 <_ZN3upfmiES_>
     35e:    dc 01           movw    r26, r24
     360:    cb 01           movw    r24, r22
     362:    80 93 70 00     sts    0x0070, r24
     366:    90 93 71 00     sts    0x0071, r25
     36a:    a0 93 72 00     sts    0x0072, r26
     36e:    b0 93 73 00     sts    0x0073, r27
 goto Error ;  //  = 00 00 80 43




See also

linavr.htm - How to compile with a Linux Computer
The documentation in C:\WinAVR\doc\avr-libc\avr-libc-user-manual-1.4.3.pdf

www

http://www.microcontroller.net - German wiki and discussions
http://8515.avrfreaks.net - can upload / download projects from there
http://www.atmel.com - documents about all the different processors