Skip to content
Snippets Groups Projects
Commit 69d9b719 authored by Peter Gerwinski's avatar Peter Gerwinski
Browse files

Notizen und Beispiele 31.5.2022

parent 29c53e6a
No related branches found
No related tags found
No related merge requests found
Showing
with 860 additions and 0 deletions
%.elf: %.c
avr-gcc -Wall -Os -mmcu=atmega328p $< -o $@
%.hex: %.elf
avr-objcopy -O ihex $< $@
download:
./download.sh
#include <avr/io.h>
#define F_CPU 8000000
#include <util/delay.h>
int main (void)
{
DDRB = 0xff; // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8)
while (1)
{
_delay_ms (500);
PORTB = 0x00;
_delay_ms (500);
PORTB = 0x20;
}
return 0;
}
:100000000C9434000C943E000C943E000C943E0082
:100010000C943E000C943E000C943E000C943E0068
:100020000C943E000C943E000C943E000C943E0058
:100030000C943E000C943E000C943E000C943E0048
:100040000C943E000C943E000C943E000C943E0038
:100050000C943E000C943E000C943E000C943E0028
:100060000C943E000C943E0011241FBECFEFD8E04C
:10007000DEBFCDBF0E9440000C9458000C940000DD
:1000800081E080932A008BB92FEF34E39CE021506C
:1000900030409040E1F700C000001BB82FEF34E380
:1000A0009CE0215030409040E1F700C00000EBCFD1
:0400B000F894FFCFF2
:00000001FF
#include <avr/io.h>
#define F_CPU 8000000
#include <util/delay.h>
int main (void)
{
DDRB = 0xff; // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8)
while (1)
{
_delay_ms (500);
PORTB = 0x10; // LED an Ausgang 12 an (Bit Nr. 4), alle anderen aus
_delay_ms (500);
PORTB = 0x20; // LED an Ausgang 13 an (Bit Nr. 5), alle anderen aus
}
return 0;
}
#include <avr/io.h>
#define F_CPU 8000000
#include <util/delay.h>
int main (void)
{
DDRB = 0xff; // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
while (1)
{
PORTB = 0x10; // LED an Ausgang 12 an (Bit Nr. 4), alle anderen aus
_delay_ms (500);
PORTB = 0x20; // LED an Ausgang 13 an (Bit Nr. 5), alle anderen aus
_delay_ms (500);
PORTB = 0x08; // LED an Ausgang 11 an (Bit Nr. 3), alle anderen aus
_delay_ms (500);
}
return 0;
}
#include <avr/io.h>
#define F_CPU 8000000
#include <util/delay.h>
int main (void)
{
DDRB = 0xff; // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
while (1)
{
PORTB = 0x10; // LED an Ausgang 12 an (Bit Nr. 4), alle anderen aus
_delay_ms (500);
PORTB = 0x20; // LED an Ausgang 13 an (Bit Nr. 5), alle anderen aus
_delay_ms (500);
PORTB = 0x08; // LED an Ausgang 11 an (Bit Nr. 3), alle anderen aus
_delay_ms (500);
PORTB = 0x34; // LEDs an Ausgang 11, 12 und 13 an (Bit Nr. 3, 4 und 5), alle anderen aus
_delay_ms (500);
}
return 0;
}
#include <avr/io.h>
#define F_CPU 8000000
#include <util/delay.h>
int main (void)
{
DDRB = 0xff; // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
while (1)
{
PORTB = 0x10; // rote LED an Ausgang 12 an (Bit Nr. 4), alle anderen aus
_delay_ms (500);
PORTB = 0x20; // interne gelbe LED an Ausgang 13 an (Bit Nr. 5), alle anderen aus
_delay_ms (500);
PORTB = 0x08; // grüne LED an Ausgang 11 an (Bit Nr. 3), alle anderen aus
_delay_ms (500);
PORTB = 0x38; // LEDs an Ausgang 11, 12 und 13 an (Bit Nr. 3, 4 und 5), alle anderen aus
_delay_ms (500);
}
return 0;
}
#include <avr/io.h>
#define F_CPU 8000000
#include <util/delay.h>
int main (void)
{
DDRB = 0xff; // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
while (1)
{
PORTB = 0x10; // rote LED an Ausgang 12 an (Bit Nr. 4), alle anderen aus
_delay_ms (500);
PORTB = 0x20; // interne gelbe LED an Ausgang 13 an (Bit Nr. 5), alle anderen aus
_delay_ms (500);
PORTB = 0x08; // grüne LED an Ausgang 11 an (Bit Nr. 3), alle anderen aus
_delay_ms (500);
PORTB = 0x38; // LEDs an Ausgang 11, 12 und 13 an (Bit Nr. 3, 4 und 5), alle anderen aus
_delay_ms (500);
PORTB = 0x00; // alle LEDs aus
_delay_ms (500);
}
return 0;
}
#include <avr/io.h>
#define F_CPU 8000000
#include <util/delay.h>
int main (void)
{
DDRB = 0xff; // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
while (1)
{
PORTB = 0x00; // alle LEDs aus
_delay_ms (500);
// rote LED (Ausgang 12, Bit Nr. 4) einschalten
PORTB |= 0x10; // Oder-Verknüpfung mit Maske: 0001 0000 = 0x10
_delay_ms (500);
// interne gelbe LED (Ausgang 13, Bit Nr. 5) einschalten
PORTB |= 0x20; // Maske: 0010 0000 = 0x20
_delay_ms (500);
// grüne LED (Ausgang 11, Bit Nr. 3) einschalten
PORTB |= 0x08; // Maske: 0000 1000 = 0x08
_delay_ms (500); // digitalWrite (11, HIGH);
}
return 0;
}
#include <avr/io.h>
#define F_CPU 8000000
#include <util/delay.h>
int main (void)
{
DDRB = 0xff; // alle 8 Ausgänge als Outputs verwenden ("pinMode" für alle 8)
while (1)
{
PORTB = 0x00; // alle LEDs aus
_delay_ms (500);
// rote LED (Ausgang 12, Bit Nr. 4) einschalten
PORTB |= 0x10; // Oder-Verknüpfung mit Maske: 0001 0000 = 0x10
_delay_ms (500);
// interne gelbe LED (Ausgang 13, Bit Nr. 5) einschalten
PORTB |= 0x20; // Maske: 0010 0000 = 0x20
_delay_ms (500);
// grüne LED (Ausgang 11, Bit Nr. 3) einschalten
PORTB |= 0x08; // Maske: 0000 1000 = 0x08
_delay_ms (500); // digitalWrite (11, HIGH);
// rote LED (Ausgang 12, Bit Nr. 4) ausschalten
PORTB &= 0xef; // Oder-Verknüpfung mit Maske: 1110 1111 = 0xef
_delay_ms (500);
// interne gelbe LED (Ausgang 13, Bit Nr. 5) ausschalten
PORTB &= 0xdf; // Maske: 1101 1111 = 0xdf
_delay_ms (500);
// grüne LED (Ausgang 11, Bit Nr. 3) ausschalten
PORTB &= 0xf7; // Maske: 1111 0111 = 0xf7
_delay_ms (500); // digitalWrite (11, HIGH);
}
return 0;
}
.file "blink.c"
__SP_H__ = 0x3e
__SP_L__ = 0x3d
__SREG__ = 0x3f
__tmp_reg__ = 0
__zero_reg__ = 1
.section .text.startup,"ax",@progbits
.global pruzzel
.type pruzzel, @function
pruzzel:
/* prologue: function */
/* frame size = 0 */
/* stack size = 0 */
.L__stack_usage = 0
ldi r24,lo8(1)
out 0xa,r24
.L3:
out 0xb,r24
ldi r18,lo8(799999)
ldi r19,hi8(799999)
ldi r25,hlo8(799999)
1: subi r18,1
sbci r19,0
sbci r25,0
brne 1b
rjmp .
nop
out 0xb,__zero_reg__
ldi r18,lo8(799999)
ldi r19,hi8(799999)
ldi r25,hlo8(799999)
1: subi r18,1
sbci r19,0
sbci r25,0
brne 1b
rjmp .
nop
rjmp .L3
.size pruzzel, .-pruzzel
.ident "GCC: (GNU) 5.4.0"
extern "C" { extern void pruzzel (); }
void setup ()
{
pruzzel ();
}
void loop ()
{
/* empty */
}
#include <avr/io.h>
#define F_CPU 8000000
#include <util/delay.h>
int main (void)
{
DDRD = 0x01;
PORTD = 0x01;
while (1)
{
_delay_ms (500);
PORTD = 0x00;
_delay_ms (500);
PORTD = 0x01;
}
return 0;
}
:100000000C9434000C943E000C943E000C943E0082
:100010000C943E000C943E000C943E000C943E0068
:100020000C943E000C943E000C943E000C943E0058
:100030000C943E000C943E000C943E000C943E0048
:100040000C943E000C943E000C943E000C943E0038
:100050000C943E000C943E000C943E000C943E0028
:100060000C943E000C943E0011241FBECFEFD8E04C
:10007000DEBFCDBF0E9440000C9457000C940000DE
:1000800081E08AB98BB92FEF34E39CE021503040F6
:100090009040E1F700C000001BB82FEF34E39CE074
:1000A000215030409040E1F700C00000EBCFF894C1
:0200B000FFCF80
:00000001FF
.file "blink.c"
__SP_H__ = 0x3e
__SP_L__ = 0x3d
__SREG__ = 0x3f
__tmp_reg__ = 0
__zero_reg__ = 1
.stabs "/home/peter/bo/2022ss/rtech/20220531/",100,0,2,.Ltext0
.stabs "blink.c",100,0,2,.Ltext0
.text
.Ltext0:
.stabs "gcc2_compiled.",60,0,0,0
.stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
.stabs "char:t(0,2)=r(0,2);0;127;",128,0,0,0
.stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
.stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
.stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
.stabs "__int128:t(0,6)=@s128;r(0,6);02000000000000000000000000000000000000000000;01777777777777777777777777777777777777777777;",128,0,0,0
.stabs "__int128 unsigned:t(0,7)=@s128;r(0,7);0;03777777777777777777777777777777777777777777;",128,0,0,0
.stabs "long long int:t(0,8)=@s64;r(0,8);01000000000000000000000;00777777777777777777777;",128,0,0,0
.stabs "long long unsigned int:t(0,9)=@s64;r(0,9);0;01777777777777777777777;",128,0,0,0
.stabs "short int:t(0,10)=r(0,10);-32768;32767;",128,0,0,0
.stabs "short unsigned int:t(0,11)=r(0,11);0;0177777;",128,0,0,0
.stabs "signed char:t(0,12)=@s8;r(0,12);-128;127;",128,0,0,0
.stabs "unsigned char:t(0,13)=@s8;r(0,13);0;255;",128,0,0,0
.stabs "float:t(0,14)=r(0,1);4;0;",128,0,0,0
.stabs "double:t(0,15)=r(0,1);4;0;",128,0,0,0
.stabs "long double:t(0,16)=r(0,1);4;0;",128,0,0,0
.stabs "short _Fract:t(0,17)=r(0,1);1;0;",128,0,0,0
.stabs "_Fract:t(0,18)=r(0,1);2;0;",128,0,0,0
.stabs "long _Fract:t(0,19)=r(0,1);4;0;",128,0,0,0
.stabs "long long _Fract:t(0,20)=r(0,1);8;0;",128,0,0,0
.stabs "unsigned short _Fract:t(0,21)=r(0,1);1;0;",128,0,0,0
.stabs "unsigned _Fract:t(0,22)=r(0,1);2;0;",128,0,0,0
.stabs "unsigned long _Fract:t(0,23)=r(0,1);4;0;",128,0,0,0
.stabs "unsigned long long _Fract:t(0,24)=r(0,1);8;0;",128,0,0,0
.stabs "_Sat short _Fract:t(0,25)=r(0,1);1;0;",128,0,0,0
.stabs "_Sat _Fract:t(0,26)=r(0,1);2;0;",128,0,0,0
.stabs "_Sat long _Fract:t(0,27)=r(0,1);4;0;",128,0,0,0
.stabs "_Sat long long _Fract:t(0,28)=r(0,1);8;0;",128,0,0,0
.stabs "_Sat unsigned short _Fract:t(0,29)=r(0,1);1;0;",128,0,0,0
.stabs "_Sat unsigned _Fract:t(0,30)=r(0,1);2;0;",128,0,0,0
.stabs "_Sat unsigned long _Fract:t(0,31)=r(0,1);4;0;",128,0,0,0
.stabs "_Sat unsigned long long _Fract:t(0,32)=r(0,1);8;0;",128,0,0,0
.stabs "short _Accum:t(0,33)=r(0,1);2;0;",128,0,0,0
.stabs "_Accum:t(0,34)=r(0,1);4;0;",128,0,0,0
.stabs "long _Accum:t(0,35)=r(0,1);8;0;",128,0,0,0
.stabs "long long _Accum:t(0,36)=r(0,1);8;0;",128,0,0,0
.stabs "unsigned short _Accum:t(0,37)=r(0,1);2;0;",128,0,0,0
.stabs "unsigned _Accum:t(0,38)=r(0,1);4;0;",128,0,0,0
.stabs "unsigned long _Accum:t(0,39)=r(0,1);8;0;",128,0,0,0
.stabs "unsigned long long _Accum:t(0,40)=r(0,1);8;0;",128,0,0,0
.stabs "_Sat short _Accum:t(0,41)=r(0,1);2;0;",128,0,0,0
.stabs "_Sat _Accum:t(0,42)=r(0,1);4;0;",128,0,0,0
.stabs "_Sat long _Accum:t(0,43)=r(0,1);8;0;",128,0,0,0
.stabs "_Sat long long _Accum:t(0,44)=r(0,1);8;0;",128,0,0,0
.stabs "_Sat unsigned short _Accum:t(0,45)=r(0,1);2;0;",128,0,0,0
.stabs "_Sat unsigned _Accum:t(0,46)=r(0,1);4;0;",128,0,0,0
.stabs "_Sat unsigned long _Accum:t(0,47)=r(0,1);8;0;",128,0,0,0
.stabs "_Sat unsigned long long _Accum:t(0,48)=r(0,1);8;0;",128,0,0,0
.stabs "void:t(0,49)=(0,49)",128,0,0,0
.stabs "/usr/lib/avr/include/avr/io.h",130,0,0,0
.stabs "/usr/lib/avr/include/avr/sfr_defs.h",130,0,0,0
.stabs "/usr/lib/avr/include/inttypes.h",130,0,0,0
.stabs "/usr/lib/gcc/avr/5.4.0/include/stdint.h",130,0,0,0
.stabs "/usr/lib/avr/include/stdint.h",130,0,0,0
.stabs "int8_t:t(5,1)=(0,12)",128,0,125,0
.stabs "uint8_t:t(5,2)=(0,13)",128,0,126,0
.stabs "int16_t:t(5,3)=(0,1)",128,0,127,0
.stabs "uint16_t:t(5,4)=(0,4)",128,0,128,0
.stabs "int32_t:t(5,5)=(0,3)",128,0,129,0
.stabs "uint32_t:t(5,6)=(0,5)",128,0,130,0
.stabs "int64_t:t(5,7)=(0,8)",128,0,132,0
.stabs "uint64_t:t(5,8)=(0,9)",128,0,133,0
.stabs "intptr_t:t(5,9)=(5,3)",128,0,146,0
.stabs "uintptr_t:t(5,10)=(5,4)",128,0,151,0
.stabs "int_least8_t:t(5,11)=(5,1)",128,0,163,0
.stabs "uint_least8_t:t(5,12)=(5,2)",128,0,168,0
.stabs "int_least16_t:t(5,13)=(5,3)",128,0,173,0
.stabs "uint_least16_t:t(5,14)=(5,4)",128,0,178,0
.stabs "int_least32_t:t(5,15)=(5,5)",128,0,183,0
.stabs "uint_least32_t:t(5,16)=(5,6)",128,0,188,0
.stabs "int_least64_t:t(5,17)=(5,7)",128,0,196,0
.stabs "uint_least64_t:t(5,18)=(5,8)",128,0,203,0
.stabs "int_fast8_t:t(5,19)=(5,1)",128,0,217,0
.stabs "uint_fast8_t:t(5,20)=(5,2)",128,0,222,0
.stabs "int_fast16_t:t(5,21)=(5,3)",128,0,227,0
.stabs "uint_fast16_t:t(5,22)=(5,4)",128,0,232,0
.stabs "int_fast32_t:t(5,23)=(5,5)",128,0,237,0
.stabs "uint_fast32_t:t(5,24)=(5,6)",128,0,242,0
.stabs "int_fast64_t:t(5,25)=(5,7)",128,0,250,0
.stabs "uint_fast64_t:t(5,26)=(5,8)",128,0,257,0
.stabs "intmax_t:t(5,27)=(5,7)",128,0,277,0
.stabs "uintmax_t:t(5,28)=(5,8)",128,0,282,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.stabs "int_farptr_t:t(3,1)=(5,5)",128,0,77,0
.stabs "uint_farptr_t:t(3,2)=(5,6)",128,0,81,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.stabs "/usr/lib/avr/include/avr/fuse.h",130,0,0,0
.stabs "__fuse_t:t(6,1)=(6,2)=s3low:(0,13),0,8;high:(0,13),8,8;extended:(0,13),16,8;;",128,0,244,0
.stabn 162,0,0,0
.stabn 162,0,0,0
.global __mulsf3
.global __ltsf2
.global __gtsf2
.global __fixunssfsi
.stabs "main:F(0,1)",36,0,6,main
.global main
.type main, @function
main:
.stabd 46,0,0
.stabn 68,0,7,.LM0-.LFBB1
.LM0:
.LFBB1:
push r28
push r29
in r28,__SP_L__
in r29,__SP_H__
sbiw r28,28
in __tmp_reg__,__SREG__
cli
out __SP_H__,r29
out __SREG__,__tmp_reg__
out __SP_L__,r28
/* prologue: function */
/* frame size = 28 */
/* stack size = 30 */
.L__stack_usage = 30
.stabn 68,0,8,.LM1-.LFBB1
.LM1:
ldi r24,lo8(42)
ldi r25,0
ldi r18,lo8(1)
movw r30,r24
st Z,r18
.stabn 68,0,9,.LM2-.LFBB1
.LM2:
ldi r24,lo8(43)
ldi r25,0
ldi r18,lo8(1)
movw r30,r24
st Z,r18
.L18:
ldi r24,0
ldi r25,0
ldi r26,lo8(-6)
ldi r27,lo8(67)
std Y+1,r24
std Y+2,r25
std Y+3,r26
std Y+4,r27
.LBB18:
.LBB19:
.stabs "/usr/lib/avr/include/util/delay.h",132,0,0,.Ltext1
.Ltext1:
.stabn 68,0,191,.LM3-.LFBB1
.LM3:
ldi r18,0
ldi r19,0
ldi r20,lo8(-6)
ldi r21,lo8(68)
ldd r22,Y+1
ldd r23,Y+2
ldd r24,Y+3
ldd r25,Y+4
call __mulsf3
movw r26,r24
movw r24,r22
std Y+19,r24
std Y+20,r25
std Y+21,r26
std Y+22,r27
.stabn 68,0,192,.LM4-.LFBB1
.LM4:
ldi r18,0
ldi r19,0
ldi r20,lo8(-128)
ldi r21,lo8(63)
ldd r22,Y+19
ldd r23,Y+20
ldd r24,Y+21
ldd r25,Y+22
call __ltsf2
tst r24
brge .L23
.stabn 68,0,193,.LM5-.LFBB1
.LM5:
ldi r24,lo8(1)
ldi r25,0
std Y+24,r25
std Y+23,r24
rjmp .L4
.L23:
.stabn 68,0,194,.LM6-.LFBB1
.LM6:
ldi r18,0
ldi r19,lo8(-1)
ldi r20,lo8(127)
ldi r21,lo8(71)
ldd r22,Y+19
ldd r23,Y+20
ldd r24,Y+21
ldd r25,Y+22
call __gtsf2
cp __zero_reg__,r24
brge .L24
.stabn 68,0,197,.LM7-.LFBB1
.LM7:
ldi r18,0
ldi r19,0
ldi r20,lo8(32)
ldi r21,lo8(65)
ldd r22,Y+1
ldd r23,Y+2
ldd r24,Y+3
ldd r25,Y+4
call __mulsf3
movw r26,r24
movw r24,r22
movw r22,r24
movw r24,r26
call __fixunssfsi
movw r26,r24
movw r24,r22
std Y+24,r25
std Y+23,r24
rjmp .L7
.L8:
ldi r24,lo8(-56)
ldi r25,0
std Y+26,r25
std Y+25,r24
.LBB20:
.LBB21:
.stabs "/usr/lib/avr/include/util/delay_basic.h",132,0,0,.Ltext2
.Ltext2:
.stabn 68,0,105,.LM8-.LFBB1
.LM8:
ldd r24,Y+25
ldd r25,Y+26
/* #APP */
; 105 "/usr/lib/avr/include/util/delay_basic.h" 1
1: sbiw r24,1
brne 1b
; 0 "" 2
/* #NOAPP */
std Y+26,r25
std Y+25,r24
.LBE21:
.LBE20:
.stabs "/usr/lib/avr/include/util/delay.h",132,0,0,.Ltext3
.Ltext3:
.stabn 68,0,202,.LM9-.LFBB1
.LM9:
ldd r24,Y+23
ldd r25,Y+24
sbiw r24,1
std Y+24,r25
std Y+23,r24
.L7:
.stabn 68,0,198,.LM10-.LFBB1
.LM10:
ldd r24,Y+23
ldd r25,Y+24
or r24,r25
brne .L8
rjmp .L9
.L24:
.stabn 68,0,207,.LM11-.LFBB1
.LM11:
ldd r22,Y+19
ldd r23,Y+20
ldd r24,Y+21
ldd r25,Y+22
call __fixunssfsi
movw r26,r24
movw r24,r22
std Y+24,r25
std Y+23,r24
.L4:
ldd r24,Y+23
ldd r25,Y+24
std Y+28,r25
std Y+27,r24
.LBB22:
.LBB23:
.stabs "/usr/lib/avr/include/util/delay_basic.h",132,0,0,.Ltext4
.Ltext4:
.stabn 68,0,105,.LM12-.LFBB1
.LM12:
ldd r24,Y+27
ldd r25,Y+28
/* #APP */
; 105 "/usr/lib/avr/include/util/delay_basic.h" 1
1: sbiw r24,1
brne 1b
; 0 "" 2
/* #NOAPP */
std Y+28,r25
std Y+27,r24
.L9:
.LBE23:
.LBE22:
.LBE19:
.LBE18:
.stabs "blink.c",132,0,0,.Ltext5
.Ltext5:
.stabn 68,0,13,.LM13-.LFBB1
.LM13:
ldi r24,lo8(43)
ldi r25,0
movw r30,r24
st Z,__zero_reg__
ldi r24,0
ldi r25,0
ldi r26,lo8(-6)
ldi r27,lo8(67)
std Y+5,r24
std Y+6,r25
std Y+7,r26
std Y+8,r27
.LBB24:
.LBB25:
.stabs "/usr/lib/avr/include/util/delay.h",132,0,0,.Ltext6
.Ltext6:
.stabn 68,0,191,.LM14-.LFBB1
.LM14:
ldi r18,0
ldi r19,0
ldi r20,lo8(-6)
ldi r21,lo8(68)
ldd r22,Y+5
ldd r23,Y+6
ldd r24,Y+7
ldd r25,Y+8
call __mulsf3
movw r26,r24
movw r24,r22
std Y+9,r24
std Y+10,r25
std Y+11,r26
std Y+12,r27
.stabn 68,0,192,.LM15-.LFBB1
.LM15:
ldi r18,0
ldi r19,0
ldi r20,lo8(-128)
ldi r21,lo8(63)
ldd r22,Y+9
ldd r23,Y+10
ldd r24,Y+11
ldd r25,Y+12
call __ltsf2
tst r24
brge .L25
.stabn 68,0,193,.LM16-.LFBB1
.LM16:
ldi r24,lo8(1)
ldi r25,0
std Y+14,r25
std Y+13,r24
rjmp .L12
.L25:
.stabn 68,0,194,.LM17-.LFBB1
.LM17:
ldi r18,0
ldi r19,lo8(-1)
ldi r20,lo8(127)
ldi r21,lo8(71)
ldd r22,Y+9
ldd r23,Y+10
ldd r24,Y+11
ldd r25,Y+12
call __gtsf2
cp __zero_reg__,r24
brge .L26
.stabn 68,0,197,.LM18-.LFBB1
.LM18:
ldi r18,0
ldi r19,0
ldi r20,lo8(32)
ldi r21,lo8(65)
ldd r22,Y+5
ldd r23,Y+6
ldd r24,Y+7
ldd r25,Y+8
call __mulsf3
movw r26,r24
movw r24,r22
movw r22,r24
movw r24,r26
call __fixunssfsi
movw r26,r24
movw r24,r22
std Y+14,r25
std Y+13,r24
rjmp .L15
.L16:
ldi r24,lo8(-56)
ldi r25,0
std Y+16,r25
std Y+15,r24
.LBB26:
.LBB27:
.stabs "/usr/lib/avr/include/util/delay_basic.h",132,0,0,.Ltext7
.Ltext7:
.stabn 68,0,105,.LM19-.LFBB1
.LM19:
ldd r24,Y+15
ldd r25,Y+16
/* #APP */
; 105 "/usr/lib/avr/include/util/delay_basic.h" 1
1: sbiw r24,1
brne 1b
; 0 "" 2
/* #NOAPP */
std Y+16,r25
std Y+15,r24
.LBE27:
.LBE26:
.stabs "/usr/lib/avr/include/util/delay.h",132,0,0,.Ltext8
.Ltext8:
.stabn 68,0,202,.LM20-.LFBB1
.LM20:
ldd r24,Y+13
ldd r25,Y+14
sbiw r24,1
std Y+14,r25
std Y+13,r24
.L15:
.stabn 68,0,198,.LM21-.LFBB1
.LM21:
ldd r24,Y+13
ldd r25,Y+14
or r24,r25
brne .L16
rjmp .L17
.L26:
.stabn 68,0,207,.LM22-.LFBB1
.LM22:
ldd r22,Y+9
ldd r23,Y+10
ldd r24,Y+11
ldd r25,Y+12
call __fixunssfsi
movw r26,r24
movw r24,r22
std Y+14,r25
std Y+13,r24
.L12:
ldd r24,Y+13
ldd r25,Y+14
std Y+18,r25
std Y+17,r24
.LBB28:
.LBB29:
.stabs "/usr/lib/avr/include/util/delay_basic.h",132,0,0,.Ltext9
.Ltext9:
.stabn 68,0,105,.LM23-.LFBB1
.LM23:
ldd r24,Y+17
ldd r25,Y+18
/* #APP */
; 105 "/usr/lib/avr/include/util/delay_basic.h" 1
1: sbiw r24,1
brne 1b
; 0 "" 2
/* #NOAPP */
std Y+18,r25
std Y+17,r24
.L17:
.LBE29:
.LBE28:
.LBE25:
.LBE24:
.stabs "blink.c",132,0,0,.Ltext10
.Ltext10:
.stabn 68,0,15,.LM24-.LFBB1
.LM24:
ldi r24,lo8(43)
ldi r25,0
ldi r18,lo8(1)
movw r30,r24
st Z,r18
.stabn 68,0,16,.LM25-.LFBB1
.LM25:
rjmp .L18
.size main, .-main
.Lscope1:
.stabs "",36,0,0,.Lscope1-.LFBB1
.stabd 78,0,0
.stabs "",100,0,0,.Letext0
.Letext0:
.ident "GCC: (GNU) 5.4.0"
.file "blink.c"
__SP_H__ = 0x3e
__SP_L__ = 0x3d
__SREG__ = 0x3f
__tmp_reg__ = 0
__zero_reg__ = 1
.section .text.startup,"ax",@progbits
.global main
.type main, @function
main:
/* prologue: function */
/* frame size = 0 */
/* stack size = 0 */
.L__stack_usage = 0
ldi r24,lo8(1)
out 0xa,r24
.L3:
out 0xb,r24
ldi r18,lo8(799999)
ldi r19,hi8(799999)
ldi r25,hlo8(799999)
1: subi r18,1
sbci r19,0
sbci r25,0
brne 1b
rjmp .
nop
out 0xb,__zero_reg__
ldi r18,lo8(799999)
ldi r19,hi8(799999)
ldi r25,hlo8(799999)
1: subi r18,1
sbci r19,0
sbci r25,0
brne 1b
rjmp .
nop
rjmp .L3
.size main, .-main
.ident "GCC: (GNU) 5.4.0"
port=$(ls -rt /dev/ttyACM* | tail -1)
echo avrdude -P $port -c arduino -p m328p -U flash:w:$(ls -rt *.hex | tail -1)
avrdude -P $port -c arduino -p m328p -U flash:w:$(ls -rt *.hex | tail -1) 2>/dev/null
Aus dem Datenblatt des ATMega 328P, Seite 615, erfahren wir:
Die Variable DDRD liegt an Speicherzelle 0x2a.
Die Variable PORTD liegt an Speicherzelle 0x2b.
#include <stdint.h>
uint8_t x = 3;
int main (void)
{
x = 7;
return 0;
}
.file "variables-00.c"
__SP_H__ = 0x3e
__SP_L__ = 0x3d
__SREG__ = 0x3f
__tmp_reg__ = 0
__zero_reg__ = 1
.section .text.startup,"ax",@progbits
.global main
.type main, @function
main:
/* prologue: function */
/* frame size = 0 */
/* stack size = 0 */
.L__stack_usage = 0
ldi r24,lo8(7) ; #include <stdint.h>
sts x,r24 ;
ldi r24,0 ; uint8_t x = 3;
ldi r25,0 ;
ret ; int main (void)
.size main, .-main ; {
.global x ; x = 7;
.data ; return 0;
.type x, @object ; }
.size x, 1
x:
.byte 3
.ident "GCC: (GNU) 5.4.0"
.global __do_copy_data
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment