From 45a267a6ee0bd4d99e3fc0774a9cbcad9a63630f Mon Sep 17 00:00:00 2001 From: Peter Gerwinski <peter.gerwinski@hs-bochum.de> Date: Tue, 6 Jun 2023 14:51:15 +0200 Subject: [PATCH] Vortragsfolien und Beispiele 6.6.2023 --- 20230606/Makefile | 8 + 20230606/blink-01.c | 18 + 20230606/blink-02.c | 21 + 20230606/blink-02.s | 44 + 20230606/blink-03.c | 20 + 20230606/blink-04.c | 16 + 20230606/blink-04.s | 35 + 20230606/blink-05.c | 20 + 20230606/blink-06.c | 23 + 20230606/blink-06.s | 74 + 20230606/blink-06a.s | 74 + 20230606/blink-06b.s | 74 + 20230606/blink-07.c | 31 + 20230606/blink-07.s | 89 ++ 20230606/blink-08.c | 31 + 20230606/blink-08.s | 86 ++ 20230606/download.sh | 3 + 20230606/io-ports-and-interrupts.pdf | 1 + .../logo-hochschule-bochum-cvh-text-v2.pdf | 1 + 20230606/logo-hochschule-bochum.pdf | 1 + 20230606/pgslides.sty | 1 + 20230606/rtech-20230606.pdf | Bin 0 -> 104335 bytes 20230606/rtech-20230606.tex | 1208 +++++++++++++++++ 23 files changed, 1879 insertions(+) create mode 100644 20230606/Makefile create mode 100644 20230606/blink-01.c create mode 100644 20230606/blink-02.c create mode 100644 20230606/blink-02.s create mode 100644 20230606/blink-03.c create mode 100644 20230606/blink-04.c create mode 100644 20230606/blink-04.s create mode 100644 20230606/blink-05.c create mode 100644 20230606/blink-06.c create mode 100644 20230606/blink-06.s create mode 100644 20230606/blink-06a.s create mode 100644 20230606/blink-06b.s create mode 100644 20230606/blink-07.c create mode 100644 20230606/blink-07.s create mode 100644 20230606/blink-08.c create mode 100644 20230606/blink-08.s create mode 100755 20230606/download.sh create mode 120000 20230606/io-ports-and-interrupts.pdf create mode 120000 20230606/logo-hochschule-bochum-cvh-text-v2.pdf create mode 120000 20230606/logo-hochschule-bochum.pdf create mode 120000 20230606/pgslides.sty create mode 100644 20230606/rtech-20230606.pdf create mode 100644 20230606/rtech-20230606.tex diff --git a/20230606/Makefile b/20230606/Makefile new file mode 100644 index 0000000..7ae33df --- /dev/null +++ b/20230606/Makefile @@ -0,0 +1,8 @@ +%.elf: %.c + avr-gcc -Wall -Os -mmcu=atmega328p $< -o $@ + +%.hex: %.elf + avr-objcopy -O ihex $< $@ + +download: + ./download.sh diff --git a/20230606/blink-01.c b/20230606/blink-01.c new file mode 100644 index 0000000..d8e41fe --- /dev/null +++ b/20230606/blink-01.c @@ -0,0 +1,18 @@ +#include <avr/io.h> + +#define F_CPU 16000000 +#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 (250); + PORTB = 0x00; /* Hexadezimalzahl. Binär: 0000 0000 */ + _delay_ms (250); + PORTB = 0x20; /* Hexadezimalzahl. Binär: 0010 0000 */ + } /* Bits zählen: ^ ^ ^------ Bit 0 */ + return 0; /* rechts anfangen | `-------- Bit 2 */ +} /* mit 0 anfangen `------------ Bit 5 */ diff --git a/20230606/blink-02.c b/20230606/blink-02.c new file mode 100644 index 0000000..a6dd74e --- /dev/null +++ b/20230606/blink-02.c @@ -0,0 +1,21 @@ +#include <avr/io.h> + +#define F_CPU 16000000 +#include <util/delay.h> + +int main (void) +{ + DDRB = 0xfe; // Bit Nr. 0 als Input nutzen + PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8) + while (1) + { + if (PINB & 0x01) + { + _delay_ms (250); + PORTB = 0x00; + _delay_ms (250); + PORTB = 0x20; + } + } + return 0; +} diff --git a/20230606/blink-02.s b/20230606/blink-02.s new file mode 100644 index 0000000..4603429 --- /dev/null +++ b/20230606/blink-02.s @@ -0,0 +1,44 @@ + .file "blink-02.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(-2) + out 0x4,r24 + ldi r24,lo8(32) ; #include <avr/io.h> +.L6: ; + out 0x5,r24 ; #define F_CPU 16000000 +.L2: ; #include <util/delay.h> + sbis 0x3,0 ; + rjmp .L2 ; int main (void) + ldi r18,lo8(799999) ; { + ldi r19,hi8(799999) ; DDRB = 0xfe; // Bit Nr. 0 als Input nutzen + ldi r25,hlo8(799999) ; PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8) +1: subi r18,1 ; while (1) + sbci r19,0 ; { + sbci r25,0 ; if (PINB & 0x01) + brne 1b ; { + rjmp . ; _delay_ms (250); + nop ; PORTB = 0x00; + out 0x5,__zero_reg__ ; _delay_ms (250); + ldi r18,lo8(799999) ; PORTB = 0x20; + ldi r19,hi8(799999) ; } + ldi r25,hlo8(799999) ; } +1: subi r18,1 ; return 0; + sbci r19,0 ; } + sbci r25,0 + brne 1b + rjmp . + nop + rjmp .L6 + .size main, .-main + .ident "GCC: (GNU) 5.4.0" diff --git a/20230606/blink-03.c b/20230606/blink-03.c new file mode 100644 index 0000000..1472da8 --- /dev/null +++ b/20230606/blink-03.c @@ -0,0 +1,20 @@ +#include <avr/io.h> + +#define F_CPU 16000000 +#include <util/delay.h> + +int main (void) +{ + DDRB = 0xfe; // Bit Nr. 0 als Input nutzen + PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8) + while (1) + { + while ((PINB & 0x01) == 0) + ; /* just wait */ + _delay_ms (250); + PORTB = 0x00; + _delay_ms (250); + PORTB = 0x20; + } + return 0; +} diff --git a/20230606/blink-04.c b/20230606/blink-04.c new file mode 100644 index 0000000..3cbe699 --- /dev/null +++ b/20230606/blink-04.c @@ -0,0 +1,16 @@ +#include <avr/io.h> + +#define F_CPU 16000000 +#include <util/delay.h> + +int main (void) +{ + DDRB = 0xfe; // Bit Nr. 0 als Input nutzen + PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8) + while (1) + { + _delay_ms (250); + PORTB ^= 0x20; + } + return 0; +} diff --git a/20230606/blink-04.s b/20230606/blink-04.s new file mode 100644 index 0000000..96a7b64 --- /dev/null +++ b/20230606/blink-04.s @@ -0,0 +1,35 @@ + .file "blink-04.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(-2) + out 0x4,r24 + ldi r24,lo8(32) + out 0x5,r24 + ldi r25,lo8(32) +.L2: + ldi r18,lo8(799999) + ldi r19,hi8(799999) + ldi r24,hlo8(799999) +1: subi r18,1 + sbci r19,0 + sbci r24,0 + brne 1b + rjmp . + nop + in r24,0x5 + eor r24,r25 + out 0x5,r24 + rjmp .L2 + .size main, .-main + .ident "GCC: (GNU) 5.4.0" diff --git a/20230606/blink-05.c b/20230606/blink-05.c new file mode 100644 index 0000000..7e7f686 --- /dev/null +++ b/20230606/blink-05.c @@ -0,0 +1,20 @@ +#include <avr/io.h> +#include <avr/interrupt.h> + +ISR (TIMER0_COMPB_vect) +{ + PORTB ^= 0x20; +} + +int main (void) +{ + cli (); + TCCR0B = (1 << CS01) | (1 << CS00); /* Takt durch 64 dividieren */ + TIMSK0 = 1 << OCIE0B; /* Interrupt einschalten */ + sei (); + DDRB = 0xfe; // Bit Nr. 0 als Input nutzen + PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8) + while (1) + ; /* do very imporant stuff */ + return 0; +} diff --git a/20230606/blink-06.c b/20230606/blink-06.c new file mode 100644 index 0000000..993f9d8 --- /dev/null +++ b/20230606/blink-06.c @@ -0,0 +1,23 @@ +#include <avr/io.h> +#include <avr/interrupt.h> +#include <stdint.h> + +ISR (TIMER0_COMPB_vect) +{ + static uint8_t counter = 0; + if (counter++ == 0) + PORTB ^= 0x20; +} + +int main (void) +{ + cli (); + TCCR0B = (1 << CS01) | (1 << CS00); /* Takt durch 64 dividieren */ + TIMSK0 = 1 << OCIE0B; /* Interrupt einschalten */ + sei (); + DDRB = 0xfe; // Bit Nr. 0 als Input nutzen + PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8) + while (1) + ; /* do very imporant stuff */ + return 0; +} diff --git a/20230606/blink-06.s b/20230606/blink-06.s new file mode 100644 index 0000000..73aff1e --- /dev/null +++ b/20230606/blink-06.s @@ -0,0 +1,74 @@ + .file "blink-06.c" +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__SREG__ = 0x3f +__tmp_reg__ = 0 +__zero_reg__ = 1 + .text +.global __vector_15 + .type __vector_15, @function +__vector_15: + push r1 + push r0 + in r0,__SREG__ + push r0 + clr __zero_reg__ + push r24 + push r25 +/* prologue: Signal */ +/* frame size = 0 */ +/* stack size = 5 */ +.L__stack_usage = 5 + lds r24,counter.1606 + ldi r25,lo8(1) + add r25,r24 + sts counter.1606,r25 + cpse r24,__zero_reg__ + rjmp .L1 + in r25,0x5 + ldi r24,lo8(32) + eor r24,r25 + out 0x5,r24 +.L1: +/* epilogue start */ + pop r25 + pop r24 + pop r0 + out __SREG__,r0 + pop r0 + pop r1 + reti + .size __vector_15, .-__vector_15 + .section .text.startup,"ax",@progbits +.global main + .type main, @function +main: +/* prologue: function */ +/* frame size = 0 */ +/* stack size = 0 */ +.L__stack_usage = 0 +/* #APP */ + ; 14 "blink-06.c" 1 + cli + ; 0 "" 2 +/* #NOAPP */ + ldi r24,lo8(3) + out 0x25,r24 + ldi r24,lo8(4) + sts 110,r24 +/* #APP */ + ; 17 "blink-06.c" 1 + sei + ; 0 "" 2 +/* #NOAPP */ + ldi r24,lo8(-2) + out 0x4,r24 + ldi r24,lo8(32) + out 0x5,r24 +.L5: + rjmp .L5 + .size main, .-main + .local counter.1606 + .comm counter.1606,1,1 + .ident "GCC: (GNU) 5.4.0" +.global __do_clear_bss diff --git a/20230606/blink-06a.s b/20230606/blink-06a.s new file mode 100644 index 0000000..a8682ac --- /dev/null +++ b/20230606/blink-06a.s @@ -0,0 +1,74 @@ + .file "blink-06.c" +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__SREG__ = 0x3f +__tmp_reg__ = 0 +__zero_reg__ = 1 + .text +.global __vector_15 + .type __vector_15, @function +__vector_15: + push r1 + push r0 + in r0,__SREG__ + push r0 ; #include <avr/io.h> + clr __zero_reg__ ; #include <avr/interrupt.h> + push r24 ; #include <stdint.h> + push r25 ; +/* prologue: Signal */ ; ISR (TIMER0_COMPB_vect) +/* frame size = 0 */ ; { +/* stack size = 5 */ ; static uint8_t counter = 0; +.L__stack_usage = 5 ; if (counter++ == 0) + lds r24,counter.1606 ; PORTB ^= 0x20; + subi r25, lo8(-1) ; ldi r25,lo8(1) ; } + ; add r25,r24 ; + sts counter.1606,r24 ; sts counter.1606,r25 ; int main (void) + cpse r24,__zero_reg__ ; { + rjmp .L1 ; cli (); + in r25,0x5 ; TCCR0B = (1 << CS01) | (1 << CS00); /* Takt durch 64 dividieren */ + ldi r24,lo8(32) ; TIMSK0 = 1 << OCIE0B; /* Interrupt einschalten */ + eor r24,r25 ; sei (); + out 0x5,r24 ; DDRB = 0xfe; // Bit Nr. 0 als Input nutzen +.L1: ; PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8) +/* epilogue start */ ; while (1) + pop r25 ; ; /* do very imporant stuff */ + pop r24 ; return 0; + pop r0 ; } + out __SREG__,r0 + pop r0 + pop r1 + reti + .size __vector_15, .-__vector_15 + .section .text.startup,"ax",@progbits +.global main + .type main, @function +main: +/* prologue: function */ +/* frame size = 0 */ +/* stack size = 0 */ +.L__stack_usage = 0 +/* #APP */ + ; 14 "blink-06.c" 1 + cli + ; 0 "" 2 +/* #NOAPP */ + ldi r24,lo8(3) + out 0x25,r24 + ldi r24,lo8(4) + sts 110,r24 +/* #APP */ + ; 17 "blink-06.c" 1 + sei + ; 0 "" 2 +/* #NOAPP */ + ldi r24,lo8(-2) + out 0x4,r24 + ldi r24,lo8(32) + out 0x5,r24 +.L5: + rjmp .L5 + .size main, .-main + .local counter.1606 + .comm counter.1606,1,1 + .ident "GCC: (GNU) 5.4.0" +.global __do_clear_bss diff --git a/20230606/blink-06b.s b/20230606/blink-06b.s new file mode 100644 index 0000000..18d7901 --- /dev/null +++ b/20230606/blink-06b.s @@ -0,0 +1,74 @@ + .file "blink-06.c" +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__SREG__ = 0x3f +__tmp_reg__ = 0 +__zero_reg__ = 1 + .text +.global __vector_15 + .type __vector_15, @function +__vector_15: + push r1 + push r0 + in r0,__SREG__ + push r0 ; #include <avr/io.h> + clr __zero_reg__ ; #include <avr/interrupt.h> + push r24 ; #include <stdint.h> + push r25 ; +/* prologue: Signal */ ; ISR (TIMER0_COMPB_vect) +/* frame size = 0 */ ; { +/* stack size = 5 */ ; static uint8_t counter = 0; +.L__stack_usage = 5 ; if (++counter == 0) ; if (counter++ == 0) + lds r24,counter.1606 ; PORTB ^= 0x20; + subi r24, lo8(-1) ; ldi r25,lo8(1) ; } + ; add r25,r24 ; + sts counter.1606,r24 ; sts counter.1606,r25 ; int main (void) + cpse r24,__zero_reg__ ; { + rjmp .L1 ; cli (); + in r25,0x5 ; TCCR0B = (1 << CS01) | (1 << CS00); /* Takt durch 64 dividieren */ + ldi r24,lo8(32) ; TIMSK0 = 1 << OCIE0B; /* Interrupt einschalten */ + eor r24,r25 ; sei (); + out 0x5,r24 ; DDRB = 0xfe; // Bit Nr. 0 als Input nutzen +.L1: ; PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8) +/* epilogue start */ ; while (1) + pop r25 ; ; /* do very imporant stuff */ + pop r24 ; return 0; + pop r0 ; } + out __SREG__,r0 + pop r0 + pop r1 + reti + .size __vector_15, .-__vector_15 + .section .text.startup,"ax",@progbits +.global main + .type main, @function +main: +/* prologue: function */ +/* frame size = 0 */ +/* stack size = 0 */ +.L__stack_usage = 0 +/* #APP */ + ; 14 "blink-06.c" 1 + cli + ; 0 "" 2 +/* #NOAPP */ + ldi r24,lo8(3) + out 0x25,r24 + ldi r24,lo8(4) + sts 110,r24 +/* #APP */ + ; 17 "blink-06.c" 1 + sei + ; 0 "" 2 +/* #NOAPP */ + ldi r24,lo8(-2) + out 0x4,r24 + ldi r24,lo8(32) + out 0x5,r24 +.L5: + rjmp .L5 + .size main, .-main + .local counter.1606 + .comm counter.1606,1,1 + .ident "GCC: (GNU) 5.4.0" +.global __do_clear_bss diff --git a/20230606/blink-07.c b/20230606/blink-07.c new file mode 100644 index 0000000..59563be --- /dev/null +++ b/20230606/blink-07.c @@ -0,0 +1,31 @@ +#include <avr/io.h> +#include <avr/interrupt.h> +#include <stdint.h> + +uint8_t flag = 0; + +ISR (TIMER0_COMPB_vect) +{ + static uint8_t counter = 0; + if (counter++ == 0) + flag = 1; +} + +int main (void) +{ + cli (); + TCCR0B = (1 << CS01) | (1 << CS00); /* Takt durch 64 dividieren */ + TIMSK0 = 1 << OCIE0B; /* Interrupt einschalten */ + sei (); + DDRB = 0xfe; // Bit Nr. 0 als Input nutzen + PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8) + while (1) + { + if (flag) + { + PORTB ^= 0x20; + flag = 0; + } + } + return 0; +} diff --git a/20230606/blink-07.s b/20230606/blink-07.s new file mode 100644 index 0000000..50f1760 --- /dev/null +++ b/20230606/blink-07.s @@ -0,0 +1,89 @@ + .file "blink-07.c" +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__SREG__ = 0x3f +__tmp_reg__ = 0 +__zero_reg__ = 1 + .text +.global __vector_15 + .type __vector_15, @function +__vector_15: + push r1 + push r0 + in r0,__SREG__ + push r0 + clr __zero_reg__ ; #include <avr/io.h> + push r24 ; #include <avr/interrupt.h> + push r25 ; #include <stdint.h> +/* prologue: Signal */ ; +/* frame size = 0 */ ; uint8_t flag = 0; +/* stack size = 5 */ ; +.L__stack_usage = 5 ; ISR (TIMER0_COMPB_vect) + lds r24,counter.1607 ; { + ldi r25,lo8(1) ; static uint8_t counter = 0; + add r25,r24 ; if (counter++ == 0) + sts counter.1607,r25 ; flag = 1; + cpse r24,__zero_reg__ ; } + rjmp .L1 ; + ldi r24,lo8(1) ; int main (void) + sts flag,r24 ; { +.L1: ; cli (); +/* epilogue start */ ; TCCR0B = (1 << CS01) | (1 << CS00); /* Takt durch 64 dividieren */ + pop r25 ; TIMSK0 = 1 << OCIE0B; /* Interrupt einschalten */ + pop r24 ; sei (); + pop r0 ; DDRB = 0xfe; // Bit Nr. 0 als Input nutzen + out __SREG__,r0 ; PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8) + pop r0 ; while (1) + pop r1 ; { + reti ; if (flag) + .size __vector_15, .-__vector_15 ; { + .section .text.startup,"ax",@progbits ; PORTB ^= 0x20; +.global main ; flag = 0; + .type main, @function ; } +main: ; } +/* prologue: function */ ; return 0; +/* frame size = 0 */ ; } +/* stack size = 0 */ +.L__stack_usage = 0 +/* #APP */ + ; 16 "blink-07.c" 1 + cli + ; 0 "" 2 +/* #NOAPP */ + ldi r24,lo8(3) + out 0x25,r24 + ldi r24,lo8(4) + sts 110,r24 +/* #APP */ + ; 19 "blink-07.c" 1 + sei + ; 0 "" 2 +/* #NOAPP */ + ldi r24,lo8(-2) + out 0x4,r24 + ldi r24,lo8(32) + out 0x5,r24 + ldi r25,lo8(32) +.L6: + lds r24,flag ; if (flag) + cpse r24,__zero_reg__ ; { ... } + rjmp .L9 ; else +.L8: ; while (1); + rjmp .L8 +.L9: + in r24,0x5 + eor r24,r25 + out 0x5,r24 + sts flag,__zero_reg__ + rjmp .L6 + .size main, .-main + .local counter.1607 + .comm counter.1607,1,1 +.global flag + .section .bss + .type flag, @object + .size flag, 1 +flag: + .zero 1 + .ident "GCC: (GNU) 5.4.0" +.global __do_clear_bss diff --git a/20230606/blink-08.c b/20230606/blink-08.c new file mode 100644 index 0000000..fed5d00 --- /dev/null +++ b/20230606/blink-08.c @@ -0,0 +1,31 @@ +#include <avr/io.h> +#include <avr/interrupt.h> +#include <stdint.h> + +volatile uint8_t flag = 0; + +ISR (TIMER0_COMPB_vect) +{ + static uint8_t counter = 0; + if (counter++ == 0) + flag = 1; +} + +int main (void) +{ + cli (); + TCCR0B = (1 << CS01) | (1 << CS00); /* Takt durch 64 dividieren */ + TIMSK0 = 1 << OCIE0B; /* Interrupt einschalten */ + sei (); + DDRB = 0xfe; // Bit Nr. 0 als Input nutzen + PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8) + while (1) + { + if (flag) + { + PORTB ^= 0x20; + flag = 0; + } + } + return 0; +} diff --git a/20230606/blink-08.s b/20230606/blink-08.s new file mode 100644 index 0000000..59e3f52 --- /dev/null +++ b/20230606/blink-08.s @@ -0,0 +1,86 @@ + .file "blink-08.c" +__SP_H__ = 0x3e +__SP_L__ = 0x3d +__SREG__ = 0x3f +__tmp_reg__ = 0 +__zero_reg__ = 1 + .text +.global __vector_15 + .type __vector_15, @function +__vector_15: + push r1 + push r0 + in r0,__SREG__ + push r0 + clr __zero_reg__ + push r24 + push r25 +/* prologue: Signal */ +/* frame size = 0 */ +/* stack size = 5 */ +.L__stack_usage = 5 + lds r24,counter.1607 + ldi r25,lo8(1) + add r25,r24 + sts counter.1607,r25 + cpse r24,__zero_reg__ + rjmp .L1 + ldi r24,lo8(1) + sts flag,r24 +.L1: +/* epilogue start */ + pop r25 + pop r24 + pop r0 + out __SREG__,r0 + pop r0 + pop r1 + reti + .size __vector_15, .-__vector_15 + .section .text.startup,"ax",@progbits +.global main + .type main, @function +main: +/* prologue: function */ +/* frame size = 0 */ +/* stack size = 0 */ +.L__stack_usage = 0 ; #include <avr/io.h> +/* #APP */ ; #include <avr/interrupt.h> + ; 16 "blink-08.c" 1 ; #include <stdint.h> + cli ; + ; 0 "" 2 ; volatile uint8_t flag = 0; +/* #NOAPP */ ; + ldi r24,lo8(3) ; ISR (TIMER0_COMPB_vect) + out 0x25,r24 ; { + ldi r24,lo8(4) ; static uint8_t counter = 0; + sts 110,r24 ; if (counter++ == 0) +/* #APP */ ; flag = 1; + ; 19 "blink-08.c" 1 ; } + sei ; + ; 0 "" 2 ; int main (void) +/* #NOAPP */ ; { + ldi r24,lo8(-2) ; cli (); + out 0x4,r24 ; TCCR0B = (1 << CS01) | (1 << CS00); /* Takt durch 64 dividieren */ + ldi r24,lo8(32) ; TIMSK0 = 1 << OCIE0B; /* Interrupt einschalten */ + out 0x5,r24 ; sei (); + ldi r25,lo8(32) ; DDRB = 0xfe; // Bit Nr. 0 als Input nutzen +.L5: ; PORTB = 0x20; // Bit Nr. 5 auf 1 setzen, alle anderen auf 0 ("digitalWrite" für alle 8) + lds r24,flag ; while (1) + tst r24 ; { + breq .L5 ; if (flag) + in r24,0x5 ; { + eor r24,r25 ; PORTB ^= 0x20; + out 0x5,r24 ; flag = 0; + sts flag,__zero_reg__ ; } + rjmp .L5 ; } + .size main, .-main ; return 0; + .local counter.1607 ; } + .comm counter.1607,1,1 +.global flag + .section .bss + .type flag, @object + .size flag, 1 +flag: + .zero 1 + .ident "GCC: (GNU) 5.4.0" +.global __do_clear_bss diff --git a/20230606/download.sh b/20230606/download.sh new file mode 100755 index 0000000..770c3b5 --- /dev/null +++ b/20230606/download.sh @@ -0,0 +1,3 @@ +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 diff --git a/20230606/io-ports-and-interrupts.pdf b/20230606/io-ports-and-interrupts.pdf new file mode 120000 index 0000000..bcd46f7 --- /dev/null +++ b/20230606/io-ports-and-interrupts.pdf @@ -0,0 +1 @@ +../common/io-ports-and-interrupts.pdf \ No newline at end of file diff --git a/20230606/logo-hochschule-bochum-cvh-text-v2.pdf b/20230606/logo-hochschule-bochum-cvh-text-v2.pdf new file mode 120000 index 0000000..4aa99b8 --- /dev/null +++ b/20230606/logo-hochschule-bochum-cvh-text-v2.pdf @@ -0,0 +1 @@ +../common/logo-hochschule-bochum-cvh-text-v2.pdf \ No newline at end of file diff --git a/20230606/logo-hochschule-bochum.pdf b/20230606/logo-hochschule-bochum.pdf new file mode 120000 index 0000000..b6b9491 --- /dev/null +++ b/20230606/logo-hochschule-bochum.pdf @@ -0,0 +1 @@ +../common/logo-hochschule-bochum.pdf \ No newline at end of file diff --git a/20230606/pgslides.sty b/20230606/pgslides.sty new file mode 120000 index 0000000..5be1416 --- /dev/null +++ b/20230606/pgslides.sty @@ -0,0 +1 @@ +../common/pgslides.sty \ No newline at end of file diff --git a/20230606/rtech-20230606.pdf b/20230606/rtech-20230606.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2af7520ecbfc3a8cf5e8597b6d750a351357da14 GIT binary patch literal 104335 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 MgiBS`)!&T^0E_TbasU7T literal 0 HcmV?d00001 diff --git a/20230606/rtech-20230606.tex b/20230606/rtech-20230606.tex new file mode 100644 index 0000000..0db3fc1 --- /dev/null +++ b/20230606/rtech-20230606.tex @@ -0,0 +1,1208 @@ +% rtech-20230606.pdf - Lecture Slides on Computer Technology +% Copyright (C) 2012, 2013, 2014, 2021, 2022, 2023 Peter Gerwinski +% +% This document is free software: you can redistribute it and/or +% modify it either under the terms of the Creative Commons +% Attribution-ShareAlike 3.0 License, or under the terms of the +% GNU General Public License as published by the Free Software +% Foundation, either version 3 of the License, or (at your option) +% any later version. +% +% This document is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this document. If not, see <http://www.gnu.org/licenses/>. +% +% You should have received a copy of the Creative Commons +% Attribution-ShareAlike 3.0 Unported License along with this +% document. If not, see <http://creativecommons.org/licenses/>. + +% README: Hardwarenahe Programmierung: Interrupts, Endianness, Dateiformate + +\documentclass[10pt,t]{beamer} + +\usepackage{pgslides} +\usepackage{pdftricks} +%\usepackage[obeyfamily=false,mathrm=mathsf,textrm=sffamily]{siunitx} +%\usepackage{eurosym} +\usepackage{tikz} + +\newcommand{\Cin}{C\raisebox{-0.5ex}{\footnotesize in}} +\newcommand{\Cout}{C\raisebox{-0.5ex}{\footnotesize out}} + +\lstdefinestyle{asm}{basicstyle=\color{structure}, + language={}, + gobble=4} + +\begin{psinputs} + \usepackage[utf8]{inputenc} + \usepackage[german]{babel} + \usepackage[T1]{fontenc} + \usepackage{helvet} + \renewcommand*\familydefault{\sfdefault} + \usepackage{pstricks,pst-grad,pst-circ-pg} + \newcommand{\invisible}{\tiny\color{white}} + \psset{unit=1cm} + \psset{logicLabelstyle=\invisible} + \newcommand{\logicSymbol}{\small\boldmath\bf\rule{0pt}{0.5cm}} + \psset{logicSymbolstyle=\logicSymbol} + \newcommand{\Cin}{C\raisebox{-0.5ex}{\footnotesize in}} + \newcommand{\Cout}{C\raisebox{-0.5ex}{\footnotesize out}} +\end{psinputs} + +\title{Rechnertechnik} +\author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski} +\date{6.\ Juni 2023} + +\begin{document} + +\maketitleframe + +\nosectionnonumber{\inserttitle} + +\begin{frame} + + \shownosectionnonumber + + \begin{itemize} + \item[\textbf{1}] \textbf{Einführung} + \item[\textbf{2}] \textbf{Vom Schaltkreis zum Computer} + \item[\textbf{3}] \textbf{Assember-Programmierung} +% \begin{itemize} +% \item[3.1] Struktur von Assembler-Programmen +% \item[3.2] Beispiel: Redcode +% \item[3.3] Architekturmerkmale von Prozessore +% \item[3.4] Der CPU-Stack +% \color{medgreen} +% \item[3.5] Computer-Sprachen +% \end{itemize} + \item[\textbf{4}] \textbf{Hardwarenahe Programmierung} + \begin{itemize} + \color{medgreen} + \item[4.1] Bit-Operationen + \item[4.2] I/O-Ports + \color{red} + \item[4.3] Interrupts + \item[4.4] Byte-Reihenfolge -- Endianness + \end{itemize} + \item[\textbf{5}] \textbf{Dateiformate} + \begin{itemize} + \color{red} + \item[5.1] Ausführbare Dateien + \item[5.2] Die Toolchain + \item[5.3] Besonderheiten von Mikrocontrollern + \item[\dots] + \end{itemize} + \item[\textbf{6}] \textbf{Pipelining} +% \item[\textbf{7}] \textbf{Bus-Systeme} +% \item[\textbf{8}] \textbf{Ausblick} +% \item[\textbf{\dots\hspace{-0.75em}}] + \end{itemize} + +\end{frame} + +\setcounter{section}{3} +\section{Hardwarenahe Programmierung} +\subsection{Bit-Operationen} +\subsubsection{Zahlensysteme} + +\begin{frame}[fragile] + + \showsection + \vspace*{-\smallskipamount} + \showsubsection + \vspace*{-\medskipamount} + \showsubsubsection + + \begin{tabular}{rlrl} + Basis & Name & Beispiel & Anwendung \\[\smallskipamount] + 2 & Binärsystem & 1\,0000\,0011 & Bit-Operationen \\ + 8 & Oktalsystem & \lstinline,0403, & Dateizugriffsrechte (Unix) \\ + 10 & Dezimalsystem & \lstinline,259, & Alltag \\ + 16 & Hexadezimalsystem & \lstinline,0x103, & Bit-Operationen \\ + 256 & (keiner gebräuchlich) & 0.0.1.3 & IP-Adressen (IPv4) + \end{tabular} + + \bigskip + + \begin{itemize} + \item + Computer rechnen im Binärsystem. + \item + Für viele Anwendungen (z.\,B.\ I/O-Ports, Grafik, \dots) ist es notwendig,\\ + Bits in Zahlen einzeln ansprechen zu können. + \end{itemize} + +\end{frame} + +\begin{frame}[fragile] + + \showsubsubsection + + \begin{tabular}{rlrlrc} + \qquad 000 & \bf 0 \hspace*{1.5cm} & 0000 & \bf 0 & \quad 1000 & \bf 8\\ + 001 & \bf 1 & 0001 & \bf 1 & 1001 & \bf 9\\ + 010 & \bf 2 & 0010 & \bf 2 & 1010 & \bf A\\ + 011 & \bf 3 & 0011 & \bf 3 & 1011 & \bf B\\[\smallskipamount] + 100 & \bf 4 & 0100 & \bf 4 & 1100 & \bf C\\ + 101 & \bf 5 & 0101 & \bf 5 & 1101 & \bf D\\ + 110 & \bf 6 & 0110 & \bf 6 & 1110 & \bf E\\ + 111 & \bf 7 & 0111 & \bf 7 & 1111 & \bf F\\ + \end{tabular} + + \medskip + + \begin{itemize} + \item + Oktal- und Hexadezimalzahlen lassen sich ziffernweise\\ + in Binär-Zahlen umrechnen. + \item + Hexadezimalzahlen sind eine Kurzschreibweise für Binärzahlen,\\ + gruppiert zu jeweils 4 Bits. + \item + Oktalzahlen sind eine Kurzschreibweise für Binärzahlen,\\ + gruppiert zu jeweils 3 Bits. + \item + Trotz Taschenrechner u.\,ä.\ lohnt es sich,\\ + die o.\,a.\ Umrechnungstabelle \textbf{auswendig} zu kennen. + \end{itemize} + +\end{frame} + +\subsubsection{Bit-Operationen in Assembler} + +\begin{frame}[fragile] + + \showsubsubsection + + \begin{tabular}{lll} + Operation & Verknüpfung & Anwendung \\[\smallskipamount] + \lstinline,and, & Und & Bits gezielt löschen \\ + \lstinline,or, & Oder & Bits gezielt setzen \\ + \lstinline,eor, & Exklusiv-Oder & Bits gezielt invertieren \\[\smallskipamount] + \lstinline,com, & Nicht (Einer-Komplement) & Alle Bits invertieren \\[\smallskipamount] + \lstinline,lsl, & Verschiebung nach links & Maske generieren \\ +% \lstinline,lsr, & Verschiebung nach rechts & Bits isolieren + \end{tabular} + + \bigskip + + Numerierung der Bits: von rechts ab 0 + + \medskip + + \begin{tabular}{ll} + Bit Nr.\ 3 auf 1 setzen: & +% \lstinline,a |= 1 << 3;, \\ + Oder-Verknüpfung mit einer\\&um 3 nach links geschobenen 1 + \hfill\lstinline|0000|\,\lstinline|1000|\\[\smallskipamount] + Bit Nr.\ 4 auf 0 setzen: & +% \lstinline,a &= ~(1 << 4);, \\ + Und-Verknüpfung mit dem Einer-Komplement \qquad\quad\strut\\&einer um 4 nach links geschobenen 1 + \hfill\lstinline|1110|\,\lstinline|1111|\\[\smallskipamount] + Bit Nr.\ 0 invertieren: & +% \lstinline,a ^= 1 << 0;, + Exklusiv-Oder-Verknüpfung mit einer\\&um 0 nach links geschobenen 1 + \hfill\lstinline|0000|\,\lstinline|0001|\\[\smallskipamount] + Ist Bit Nr.\ 1 eine Null? & + Ergibt eine Und-Verknüpfung mit einer um 1\\&nach links geschobenen 1 den Wert 0? + \hfill\lstinline|0000|\,\lstinline|0010| + \end{tabular} + +% \smallskip +% +% ~~Abfrage, ob Bit Nr.\ 1 gesetzt ist:\quad +% \lstinline{if (a & (1 << 1))} + +\end{frame} + +\iffalse + +\begin{frame}[fragile] + + \showsubsubsection + + C-Datentypen für Bit-Operationen: + \smallskip\par + \lstinline{#include <stdint.h>} + \medskip\par + \begin{tabular}{lllll} + & 8 Bit & 16 Bit & 32 Bit & 64 Bit \\ + mit Vorzeichen & \lstinline,int8_t, + & \lstinline,int16_t, + & \lstinline,int32_t, + & \lstinline,int64_t, \\ + ohne Vorzeichen & \lstinline,uint8_t, + & \lstinline,uint16_t, + & \lstinline,uint32_t, + & \lstinline,uint64_t, + \end{tabular} + + \bigskip + \bigskip + + Ausgabe: + \smallskip\par + \begin{lstlisting} + #include <stdio.h> + #include <stdint.h> + #include <inttypes.h> + ... + uint64_t x = 42; + printf ("Die Antwort lautet: %" PRIu64 "\n", x); + \end{lstlisting} + +\end{frame} + +\fi + +\subsection{I/O-Ports} + +\begin{frame}[fragile] + +% \showsection + \showsubsection + \vspace*{-1.5\medskipamount} + {\large\textbf{\color{structure}4.3\quad Interrupts}} + + \bigskip + + Kommunikation mit externen Geräten + + \bigskip + + \begin{center} + \includegraphics{io-ports-and-interrupts.pdf} + \end{center} + +\end{frame} + +\begin{frame}[fragile] + + \showsubsection + + In Output-Port schreiben = Aktoren ansteuern + + Beispiel: LED + + \medskip + + \begin{lstlisting} + ldi r24,0xff + out 0x0a,r24 + ldi r24,0x00 + out 0x0b,r24 + \end{lstlisting} + \begin{picture}(0,0) + \put(3,1.93){\begin{minipage}[t]{5cm} + \color{red}% + binär: 1111\,1111\\ + alle 8 Anschlüsse: Output\\ + binär: 0000\,0000\\ + alle 8 Ausgänge: 0\,V + \end{minipage}} + \put(11.5,1.00){\makebox(0,0)[r]{\color{red}Herstellerspezifisch!}} + \end{picture} + + \bigskip + + \lstinline{0x0a} = \lstinline{DDRD} = Data Direction Register D\\ + Bit = 1 für Output-Port\\ + Bit = 0 für Input-Port + + \bigskip + + \lstinline{0x0b} = \lstinline{PORTD} = I/O-Port D\\ + Bit = 1 für +5\,V\\ + Bit = 0 für 0\,V + + \bigskip + + \emph{Details: siehe Datenblatt und Schaltplan} + +\end{frame} + +\begin{frame}[fragile] + + \showsubsection + + In Output-Port schreiben = Aktoren ansteuern + + Beispiel: LED + + \medskip + + \begin{lstlisting} + ldi r24,0xff + out 0x0a,r24 + ldi r24,0x04 + out 0x0b,r24 + \end{lstlisting} + \begin{picture}(0,0) + \put(3,1.93){\begin{minipage}[t]{5cm} + \color{red}% + binär: 1111\,1111\\ + alle 8 Anschlüsse: Output\\ + binär: 0000\,0100\\ + Ausgang 2: 5\,V, alle anderen: 0\,V + \end{minipage}} + \put(11.5,1.00){\makebox(0,0)[r]{\color{red}Herstellerspezifisch!}} + \end{picture} + + \bigskip + + \lstinline{0x0a} = \lstinline{DDRD} = Data Direction Register D\\ + Bit = 1 für Output-Port\\ + Bit = 0 für Input-Port + + \bigskip + + \lstinline{0x0b} = \lstinline{PORTD} = I/O-Port D\\ + Bit = 1 für +5\,V\\ + Bit = 0 für 0\,V + + \bigskip + + \emph{Details: siehe Datenblatt und Schaltplan} + +\end{frame} + +\begin{frame}[fragile] + + \showsubsection + + Warteschleife + + \begin{lstlisting} + ldi r26,lo8(7999999) + ldi r22,hi8(7999999) + ldi r23,hlo8(7999999) + 1: + subi r26,1 + sbci r22,0 + sbci r23,0 + brne 1b + rjmp . + nop + \end{lstlisting} + \begin{picture}(0,0) + \put(5,4.0){\begin{minipage}[t]{7cm} + \color{red}% + Anzahl der Taktzyklen\\ + \strut\\ + \strut\\ + \strut\\ + rückwärts zählen\\ + \strut\\ + Warteschleife: 5 Zyklen pro Durchlauf\\ + 2 Zyklen lang warten\\ + 1 Zyklus lang warten\\ + \end{minipage}} + \put(11.5,3.00){\makebox(0,0)[r]{\color{red}Herstellerspezifisch!}} + \end{picture} + + \bigskip + + \textarrow\ blinkende LED + + \bigskip + + \emph{Details: siehe Datenblatt und Schaltplan} + +\end{frame} + +\begin{frame}[fragile] + + \showsubsection + +% \textbf{Übungsaufgabe:} +% +% \smallskip +% +% Erweitern Sie das Beispiel-Programm \file{blink-05.s} so,\\ +% daß es zwei LEDs abwechselnd blinken läßt\\ +% (z.\,B.\ die rote LED an Port D, Bit 2\\ +% und die eingebaute gelbe LED an Port B, Bit 6). +% +% \bigskip + + \textbf{Praktikumssaufgabe:} + + \smallskip + + Schreiben Sie ein Assembler-Programm, das auf einem Mikrocontroller\\ + mit einer blinkenden LED einen beliebigen Text (z.\,B.\ das Wort "`Hallo"')\\ + in Morsecode ausgibt. + + \smallskip + + Gruppen von bis zu 3 Personen sind zulässig. + + \smallskip + + Hinweise: + \begin{itemize} + \item + \url{https://de.wikipedia.org/wiki/Morsecode} + \item + Die Datei \file{morse-07.c} enthält ein Array,\\ + das Morsezeichen als Strings darstellt. + \item + Die Datei \file{morse-08.c} enthält zwei Arrays, + die Morsezeichen binär darstellen: + Das Array \lstinline{morse_bits[]} enthält die Morsezeichen + als Bitmuster von rechts nach links (0 = kurz, 1 = lang), + das Array \lstinline{morse_length[]} die Anzahl der genutzten Bits. + \end{itemize} + +\end{frame} + +\begin{frame}[fragile] + + \showsubsection + + Aus Input-Port lesen = Sensoren abfragen + + Beispiel: Taster + + \medskip + + \begin{lstlisting} + #include <avr/io.h> + ... + DDRC = 0xfd; + while ((PINC & 0x02) == 0) + ; /* just wait */ + \end{lstlisting} + \begin{picture}(0,0)(-1.5,-0.42) + \put(3,0.67){\begin{minipage}{3cm} + \color{red}% + binär: 1111\,1101\\ + binär: 0000\,0010 + \end{minipage}} + \put(10,0.67){\makebox(0,0)[r]{\color{red}Herstellerspezifisch!}} + \end{picture} + + \bigskip + + \lstinline{DDR} = Data Direction Register\\ + Bit = 1 für Output-Port\\ + Bit = 0 für Input-Port + + \bigskip + + \emph{Details: siehe Datenblatt und Schaltplan} + + \bigskip + + Praktikumsaufgabe: Druckknopfampel + +\end{frame} + +\subsection{Interrupts} + +\begin{frame}[fragile] + + \showsubsection + + Externes Gerät ruft (per Stromsignal) Unterprogramm auf + + Zeiger hinterlegen: "`Interrupt-Vektor"' + + Beispiel: eingebaute Uhr\hfill + \makebox(0,0)[tr]{% + \only<1->{\begin{minipage}[t]{4.7cm} + \vspace*{-0.3cm}% + statt Zählschleife (\lstinline{_delay_ms}):\\ + Hauptprogramm kann\\ + andere Dinge tun + \end{minipage}}% + } + + \medskip + + \begin{lstlisting} + #include <avr/interrupt.h> + + ... + + + ISR (TIMER0B_COMP_vect) + { + PORTD ^= 0x40; + } + \end{lstlisting} + \begin{picture}(0,0) + \color{red} + \put(1.9,3.1){\makebox(0,0)[tr]{\tikz{\draw[-latex](0,0)--(-1.4,-1.0);}}} + \put(2.0,3.2){\makebox(0,0)[l]{"`Dies ist ein Interrupt-Handler."'}} + \put(2.3,2.6){\makebox(0,0)[tr]{\tikz{\draw[-latex](0,0)--(-0.6,-0.55);}}} + \put(2.4,2.6){\makebox(0,0)[l]{Interrupt-Vektor darauf zeigen lassen}} + \end{picture} + + Initialisierung über spezielle Ports: + \lstinline{TCCR0B}, \lstinline{TIMSK0} + + \bigskip + + \emph{Details: siehe Datenblatt und Schaltplan} + + \vspace*{-2.5cm}\hfill + {\color{red}Herstellerspezifisch!}% + \hspace*{1cm} + +\end{frame} + +\begin{frame}[fragile] + + \showsubsection + + Externes Gerät ruft (per Stromsignal) Unterprogramm auf + + Zeiger hinterlegen: "`Interrupt-Vektor"' + + Beispiel: Taster\hfill + \makebox(0,0)[tr]{% + \begin{minipage}[t]{4.7cm} + \vspace*{-0.3cm}% + statt \newterm{Busy Waiting\/}:\\ + Hauptprogramm kann\\ + andere Dinge tun + \end{minipage}} + + \medskip + + \begin{lstlisting} + #include <avr/interrupt.h> + ... + + ISR (INT0_vect) + { + PORTD ^= 0x40; + } + \end{lstlisting} + + \medskip + + Initialisierung über spezielle Ports: + \lstinline{EICRA}, \lstinline{EIMSK} + + \bigskip + + \emph{Details: siehe Datenblatt und Schaltplan} + + \vspace*{-2.5cm}\hfill + {\color{red}Herstellerspezifisch!}% + \hspace*{1cm} + +\end{frame} + +\subsection{volatile-Variable} + +\begin{frame}[fragile] + + \showsubsection + + Externes Gerät ruft (per Stromsignal) Unterprogramm auf + + Zeiger hinterlegen: "`Interrupt-Vektor"' + + Beispiel: Taster + + \vspace*{-2.5pt} + + \begin{minipage}[t]{5cm} + \begin{onlyenv}<1> + \begin{lstlisting}[gobble=8] + ¡#include <avr/interrupt.h> + ... + + uint8_t key_pressed = 0; + + ISR (INT0_vect) + { + key_pressed = 1; + }¿ + \end{lstlisting} + \end{onlyenv} + \begin{onlyenv}<2> + \begin{lstlisting}[gobble=8] + ¡#include <avr/interrupt.h> + ... + + volatile uint8_t key_pressed = 0; + + ISR (INT0_vect) + { + key_pressed = 1; + }¿ + \end{lstlisting} + \end{onlyenv} + \end{minipage}\hfill + \begin{minipage}[t]{6cm} + \begin{lstlisting}[gobble=6] + ¡int main (void) + { + ... + + while (1) + { + while (!key_pressed) + ; /* just wait */ + PORTD ^= 0x40; + key_pressed = 0; + } + return 0; + }¿ + \end{lstlisting} + \end{minipage} + + \pause + \begin{picture}(0,0) + \color{red} + \put(10.3,4.0){\makebox(0,0)[b]{\begin{minipage}{6cm} + \begin{center} + \textbf{volatile}:\\ + Speicherzugriff\\ + nicht wegoptimieren + \end{center} + \end{minipage}}} + \put(10.3,3.95){\makebox(0,0)[tr]{\tikz{\draw[-latex](0,0)--(-0.5,-0.9);}}} + \end{picture} + +\end{frame} + +\iffalse + +\begin{frame}[fragile] + + \showsubsection + + Was ist eigentlich \lstinline{PORTD}? + + \bigskip + \pause + + \lstinline[style=cmd]{avr-gcc -Wall -Os -mmcu=atmega328p blink-3.c -E} + + \bigskip + \pause + \lstinline{PORTD = 0x01;}\\ + \textarrow\quad + \lstinline[style=terminal]{(*(volatile uint8_t *)((0x0B) + 0x20)) = 0x01;}\\ + \pause + \begin{picture}(0,2)(0,-1.7) + \color{red} + \put(5.75,0.3){$\underbrace{\rule{2.95cm}{0pt}}_{\mbox{Zahl: \lstinline|0x2B|}}$} + \pause + \put(1.55,0.3){$\underbrace{\rule{4.0cm}{0pt}}_{\mbox{\shortstack[t]{Umwandlung in Zeiger\\ + auf \lstinline|volatile uint8_t|}}}$} + \pause + \put(1.32,-1){\makebox(0,0)[b]{\tikz{\draw[-latex](0,0)--(0,1.3)}}} + \put(1.12,-1.1){\makebox(0,0)[tl]{Dereferenzierung des Zeigers}} + \end{picture} + + \pause + \textarrow\quad + \lstinline|volatile uint8_t|-Variable an Speicheradresse \lstinline|0x2B| + + \pause + \bigskip + \bigskip + + \textarrow\quad + \lstinline|PORTA = PORTB = PORTC = PORTD = 0| ist eine schlechte Idee. + +\end{frame} + +\subsection{Byte-Reihenfolge -- Endianness} +\subsubsection{Konzept} + +\begin{frame}[fragile] + + \showsubsection + \showsubsubsection + + Eine Zahl geht über mehrere Speicherzellen.\\ + Beispiel: 16-Bit-Zahl in 2 8-Bit-Speicherzellen + + \smallskip + + Welche Bits liegen wo? + +% \pause + \bigskip + + $1027 = 1024 + 2 + 1 = 0000\,0100\,0000\,0011_2 = 0403_{16}$ + +% \pause + \bigskip + Speicherzellen: + + \medskip + \begin{tabular}{|c|c|l}\cline{1-2} + \raisebox{-0.25ex}{04} & \raisebox{-0.25ex}{03} & \strut Big-Endian "`großes Ende zuerst"' \\\cline{1-2} + \multicolumn{2}{c}{} & % \pause + für Menschen leichter lesbar % \pause + \\ + \multicolumn{3}{c}{} \\[-5pt]\cline{1-2} + \raisebox{-0.25ex}{03} & \raisebox{-0.25ex}{04} & \strut Little-Endian "`kleines Ende zuerst"' \\\cline{1-2} + \multicolumn{2}{c}{} & % \pause + bei Additionen effizienter + \end{tabular} + +% \pause + \medskip + \textarrow\ Geschmackssache +% \pause\\ + \quad\textbf{\dots\ außer bei Datenaustausch!} + +% \pause +% \bigskip +% +% Aber: nicht verwechseln! \qquad $0304_{16} = 772$ + +\end{frame} + +\begin{frame} + + \showsubsection + \showsubsubsection + + Eine Zahl geht über mehrere Speicherzellen.\\ + Beispiel: 16-Bit-Zahl in 2 8-Bit-Speicherzellen + + \smallskip + + Welche Bits liegen wo? + + \medskip + + \textarrow\ Geschmackssache\\ + \textbf{\dots\ außer bei Datenaustausch!} + + \begin{itemize} + \item + Dateiformate + \item + Datenübertragung + \end{itemize} + +\end{frame} + +\subsubsection{Dateiformate} + +\begin{frame} + + \showsubsection + \showsubsubsection + + Audio-Formate: Reihenfolge der Bytes in 16- und 32-Bit-Zahlen + \begin{itemize} + \item + RIFF-WAVE-Dateien (\file{.wav}): Little-Endian + \item + Au-Dateien (\file{.au}): Big-Endian +% \pause + \item + ältere AIFF-Dateien (\file{.aiff}): Big-Endian + \item + neuere AIFF-Dateien (\file{.aiff}): Little-Endian + \end{itemize} + +% \pause + \bigskip + + Grafik-Formate: Reihenfolge der Bits in den Bytes + \begin{itemize} + \item + PBM-Dateien: Big-Endian\only<1->{, MSB first} + \item + XBM-Dateien: Little-Endian\only<1->{, LSB first} + \end{itemize} + \only<1->{MSB/LSB = most/least significant bit} + +\end{frame} + +\subsubsection{Datenübertragung} + +\begin{frame} + + \showsubsection + \showsubsubsection + + \begin{itemize} + \item + RS-232 (serielle Schnittstelle): LSB first + \item + I$^2$C: MSB first + \item + USB: beides + \pause + \medskip + \item + Ethernet: LSB first + \item + TCP/IP (Internet): Big-Endian + \end{itemize} + +\end{frame} + +\begin{frame}[fragile] + + \showsubsection + + Frage: \emph{Für welche Zahl steht der Speicherinhalt\, + \raisebox{2pt}{% + \tabcolsep0.25em + \begin{tabular}{|c|c|}\hline + \rule{0pt}{11pt}a3 & 90 \\\hline + \end{tabular}} + (hexadezimal)?} + + \pause + \smallskip + Antwort: \emph{Das kommt darauf an.} ;--) + + \pause + \medskip + Little-Endian: + + \smallskip + + \begin{tabular}{lrl} + als \lstinline,int8_t,: & $-93$ & (nur erstes Byte)\\ + als \lstinline,uint8_t,: & $163$ & (nur erstes Byte)\\ + als \lstinline,int16_t,: & $-28509$\\ + als \lstinline,uint16_t,: & $37027$\\ + \lstinline,int32_t, oder größer: & $37027$ + & (zusätzliche Bytes mit Nullen aufgefüllt) + \end{tabular} + + \pause + \medskip + Big-Endian: + + \smallskip + + \begin{tabular}{lrl} + als \lstinline,int8_t,: & $-93$ & (nur erstes Byte)\\ + als \lstinline,uint8_t,: & $163$ & (nur erstes Byte)\\ + als \lstinline,int16_t,: & $-23664$\\ + als \lstinline,uint16_t,: & $41872$\\ als \lstinline,int32_t,: & $-1550843904$ & (zusätzliche Bytes\\ + als \lstinline,uint32_t,: & $2744123392$ & mit Nullen aufgefüllt)\\ + als \lstinline,int64_t,: & $-6660823848880963584$\\ + als \lstinline,uint64_t,: & $11785920224828588032$\\ + \end{tabular} + + \vspace*{-1cm} + +\end{frame} + +\iffalse + +\subsection{Speicherausrichtung -- Alignment} + +\begin{frame}[fragile] + + \showsubsection + + \begin{lstlisting} + #include <stdint.h> + + uint8_t a; + uint16_t b; + uint8_t c; + \end{lstlisting} + + \pause + \bigskip + + Speicheradresse durch 2 teilbar -- "`16-Bit-Alignment"' + \begin{itemize} + \item + 2-Byte-Operation: effizienter + \pause + \item + \dots\ oder sogar nur dann erlaubt + \pause + \arrowitem + Compiler optimiert Speicherausrichtung + \end{itemize} + + \medskip + + \pause + \begin{minipage}{3cm} + \begin{lstlisting}[gobble=6] + ¡uint8_t a; + uint8_t dummy; + uint16_t b; + uint8_t c;¿ + \end{lstlisting} + \end{minipage} + \pause + \begin{minipage}{3cm} + \begin{lstlisting}[gobble=6] + ¡uint8_t a; + uint8_t c; + uint16_t b;¿ + \end{lstlisting} + \end{minipage} + + \pause + \vspace{-1.75cm} + \strut\hfill + \begin{minipage}{6.5cm} + Fazit: + \begin{itemize} + \item + \textbf{Adressen von Variablen\\ + sind systemabhängig} + \item + Bei Definition von Datenformaten\\ + Alignment beachten \textarrow\ effizienter + \end{itemize} + \end{minipage} + +\end{frame} + +\fi + +\section{Dateiformate} +\subsection{Ausführbare Dateien} + +\begin{frame} + + \visible<1->{\showsubsection} + + Man kann Maschinenprogramme nicht "`einfach so"' in den Speicher laden. + +% \pause + \bigskip + + Sprünge anpassen + \begin{itemize} + \item + Relokation: Relokationstabelle + \item + Linken: Symboltabelle + \end{itemize} + +\end{frame} + +\begin{frame} + + \showsubsection + + \vspace*{-0.5cm} + + \begin{center} + \setlength{\unitlength}{0.8cm} + \begin{picture}(15,6)(0,-1.25) + \footnotesize + + \put(0,1.0){\line(1,0){15}} + \multiput(0,1)(0.1,0){151}{\line(0,1){0.1}} + \put(0,1.1){\line(1,0){15}} + \put(0,0.8){\makebox(0,0)[tl]{Ausführbare Binärdatei}} + \put(0.5,1.2){$\overbrace{\rule{1.0\unitlength}{0pt}}$} + \put(2.0,1.2){$\overbrace{\rule{1.0\unitlength}{0pt}}$} + \put(3.5,1.2){$\overbrace{\rule{11.5\unitlength}{0pt}}$} + + \put(0,4.0){\line(1,0){5}} + \multiput(0,3.5)(0.5,0){11}{\line(0,1){0.5}} + \put(0,3.5){\line(1,0){5}} + \put(0,4.2){\makebox(0,0)[bl]{Relokationstabelle}} + \put(1.0,3.4){\line(0,-1){1.9}} + \put(3.75,3.4){\vector(1,-2){1.2}} + \put(4.25,3.4){\vector(1,-1){2.4}} + \put(4.75,3.4){\vector(2,-1){4.8}} + + \put(4.95,0.7){\line(0,1){0.25}} + \put(4.95,0.7){\line(1,0){0.5}} + \put(5.45,0.7){\vector(0,1){0.25}} + \put(6.65,0.7){\line(0,1){0.25}} + \put(6.65,0.7){\line(1,0){0.8}} + \put(7.45,0.7){\vector(0,1){0.25}} + \put(9.55,0.6){\line(0,1){0.35}} + \put(9.55,0.6){\line(-1,0){3.2}} + \put(6.35,0.6){\vector(0,1){0.35}} + \put(7.25,0.4){\makebox(0,0)[t]{Sprünge innerhalb des Programms}} + + \put(6,4.0){\line(1,0){5}} + \multiput(6,3.5)(0.5,0){11}{\line(0,1){0.5}} + \put(6,3.5){\line(1,0){5}} + \put(6,4.2){\makebox(0,0)[bl]{Symboltabelle}} + \put(6.4,3.4){\line(-2,-1){3.8}} + \put(10.25,3.4){\vector(1,-2){1.2}} + \put(10.75,3.4){\vector(1,-1){2.4}} + + \put(9.25,1.55){\line(0,1){1}} + \put(8.50,2.60){\makebox(0,0)[b]{Maschinenprogramm}} + + \put(11.45,0.95){\vector(0,-1){1}} + \put(11.45,-0.10){\makebox(0,0)[t]{\lstinline{scanf}}} + \put(13.15,0.95){\vector(0,-1){1}} + \put(13.15,-0.10){\makebox(0,0)[t]{\lstinline{printf}}} + \put(12.30,-0.50){\makebox(0,0)[t]{Sprünge aus dem Programm heraus}} + + \end{picture} + \end{center} + + \vspace*{-1.2cm} + + \begin{onlyenv}<2> + + Ausführbare Binärdatei: + + \smallskip + + Relokationstabelle,\\ + Symboltabelle für dynamischen Linker + + \smallskip + + Formate: a.out, COFF, ELF, \dots\\ + Dateiendungen: (keine), .elf, .com, .exe, .scr + + \end{onlyenv} + + \begin{onlyenv}<3> + + Objektdatei: + + \smallskip + + Relokationstabelle,\\ + Symboltabellen für statischen und dynamischen Linker + + \smallskip + + Formate: a.out, COFF, ELF, \dots\\ + Dateiendungen: .o, .obj + + \end{onlyenv} + + \begin{onlyenv}<4-> + + \strut\\ + Bibliothek: + + \smallskip + + Zusammenfassung mehrerer Objekt-Dateien + + \smallskip + + Statische Bibliotheken: .a, .lib\\ + Dynamische Bibliotheken: .so, .dll + + \end{onlyenv} + +\end{frame} + +\subsection{Die Toolchain} + +\begin{frame}[fragile] + + \showsubsection + + \vspace*{-0.8cm} + \begin{center} + \addtolength{\leftskip}{4cm} + \small + \newcommand{\vtextarrow}[1]{% + \begin{picture}(0,0.8) + \put(0,0.8){\vector(0,-1){0.8}} + \put(0.125,0.4){\makebox(0,0)[l]{#1}} + \end{picture}} + + \framebox{\shortstack{\strut menschliche Gedanken}} + + \vtextarrow{Texteditor} + + \framebox{\shortstack{\strut C-Quelltext}} % (z.\,B.\ hello.c)}} + + \vtextarrow{Compiler} + + \framebox{\shortstack{\strut Assembler-Quelltext}} % (z.\,B.\ hello.s, hello.asm)}} + + \vtextarrow{Assembler} + + \framebox{\shortstack{\strut Objekt- und Bibliothek-Dateien}} % (z.\,B.\ hello.o, hello.obj)}} + + \vtextarrow{Linker} + + \framebox{\shortstack{\strut ausführbare Binärdatei}} % (z.\,B.\ hello, hello.exe)}} + + \vtextarrow{Loader} + + \framebox{\shortstack{\strut Programm im Speicher bereit zur Ausführung}} + \end{center} + +% \pause + \vspace*{-7cm} + Automatischer Aufruf: + \begin{itemize} + \item + Entwicklungsumgebungen\\ + (z.\,B.\ Eclipse, Code::Blocks, \dots) + \medskip + \item + \file{gcc} = Compiler\\ + \hspace*{3em}+ Assembler\\ + \hspace*{3em}+ Linker\\ + \hspace*{3em}+ \dots + \medskip + \item + \file{make} kann \emph{alles} aufrufen + \end{itemize} + +\end{frame} + +\subsection{Besonderheiten von Mikrocontrollern} + +\begin{frame} + + \showsubsection + + Kein Betriebssystem\\ % \pause\\ + \textarrow\ kein Relocator, kein dynamischer Linker\\ % \pause\\ + \textarrow\ Wir müssen dem Mikrocontroller alles "`mundgerecht"' servieren. + +% \pause + \smallskip + + \begin{itemize} + \item + fertiges ROM: Hersteller + \item + Flash-Speicher und In-System Programmer (ISP) + \item + Flash-Speicher und Boot-Loader + \end{itemize} + + \smallskip + + In jedem Fall: statisch linken, Relokation vorher + \begin{picture}(0,0) + \color{red} + \put(0.1,0.1){\line(1,0){1.2}} + \put(1.3,0.1){\vector(0,1){2.2}} + \end{picture}\\ + \textarrow\ ELF-Datei in HEX-Datei umwandeln + + \smallskip + + Format: Intel-Hex-Format\\ + Dateiendung: .hex + +\end{frame} + +\fi + +\end{document} -- GitLab