1
00:00:00,150 --> 00:00:06,550
Was? 
Moin, war einfach komplex. 

2
00:00:06,550 --> 00:00:08,790
Wir sind wieder Gerrit oder 
Brückert Moin Burkhard. 

3
00:00:08,870 --> 00:00:12,150
Moin Moin und wir haben. 
Heute einen Gast, den Alexander 

4
00:00:12,150 --> 00:00:13,830
Eisenhut. 
Da stellt sich gleich noch mal 

5
00:00:13,830 --> 00:00:16,550
genauer selbst vor, ja, er ist 
aber Experte im Bereich Embedded

6
00:00:16,550 --> 00:00:19,630
Systems, und das ist auch unser 
Thema für die Folge, wir wollen 

7
00:00:19,630 --> 00:00:23,430
mal verstehen, was Embedded 
Systems sind, wie die Software 

8
00:00:23,430 --> 00:00:25,950
Architektur in dem Embedded 
System eigentlich aussieht, wo 

9
00:00:25,950 --> 00:00:28,870
sie überall eingesetzt werden 
und was es sonst noch zu 

10
00:00:28,870 --> 00:00:32,070
erfahren gibt in dem Bereich. 
Aber jetzt Alex überlasse ich 

11
00:00:32,070 --> 00:00:34,430
dir mal das Wort, wer bist du 
denn eigentlich und was machst 

12
00:00:34,430 --> 00:00:37,440
du? 
Ja Moin Moin, mein Name ist Alex

13
00:00:37,440 --> 00:00:39,960
Eisenhut. 
Ich bin Embedded Software 

14
00:00:39,960 --> 00:00:43,270
Architekt. 
Und wo in Freiburg hier 

15
00:00:43,270 --> 00:00:47,310
Familienvater von 2 Kindern und 
habe meinen Weg in die 

16
00:00:47,310 --> 00:00:51,470
Selbständigkeit schon 1996 
gefunden, war dort in 

17
00:00:51,470 --> 00:00:54,590
verschiedenen verschiedenen 
Unternehmen tätig und. 

18
00:00:56,280 --> 00:00:59,960
Seit ungefähr sag ich mal 10 
Jahren bin ich jetzt Software 

19
00:00:59,960 --> 00:01:04,120
Architekt bei Embedded Systems, 
meistens in Teams, die agil 

20
00:01:04,120 --> 00:01:06,440
arbeiten. 
Was ist jetzt der Unterschied 

21
00:01:06,440 --> 00:01:10,000
zwischen dem Embedded Software 
Architekten und einem Embedded 

22
00:01:10,000 --> 00:01:12,800
Entwickler oder Developer? 
Lässt sich das kombinieren oder 

23
00:01:12,800 --> 00:01:14,840
oder ist das noch ein bisschen 
eine andere Rolle, je nach. 

24
00:01:14,840 --> 00:01:17,480
Teamgröße gibt es da eine 
dedizierte Rolle dazu? 

25
00:01:17,480 --> 00:01:20,040
Also Teams, in denen ich 
unterwegs bin, ist immer so 

26
00:01:20,040 --> 00:01:23,240
ungefähr zu zehnt und bei der 
Softwareentwicklung gibt es 

27
00:01:23,240 --> 00:01:25,880
einfach immer architekturarbeit 
zu tun. 

28
00:01:27,070 --> 00:01:29,310
Softwarearchitekt bist du der 
Kümmerer? 

29
00:01:31,200 --> 00:01:33,360
Dieser Arbeit, das heißt nicht, 
dass du es machen musst, sondern

30
00:01:33,360 --> 00:01:35,840
du musst es einfach auf dem 
Schirm haben, dass es gemacht 

31
00:01:35,840 --> 00:01:38,360
wird. 
Ja, schön, dass du da bist und 

32
00:01:38,360 --> 00:01:40,400
uns und unsere Hörer beglückst 
mit deinem, mit deinem 

33
00:01:40,400 --> 00:01:42,480
Fachwissen. 
Wie fangen wir denn mal an, also

34
00:01:42,480 --> 00:01:44,600
willst du einfach mal einen 
Überblick uns geben über ein 

35
00:01:44,600 --> 00:01:46,880
Embedded System, was das 
eigentlich ist und wo wir die 

36
00:01:46,880 --> 00:01:49,560
finden. 
Battle System ist eigentlich 

37
00:01:49,560 --> 00:01:54,560
immer ein System, das eine ganz 
spezielle Aufgabe hat und das 

38
00:01:54,560 --> 00:01:58,830
meist sehr zuverlässig erledigt.
Bei der Zukunft sind eigentlich 

39
00:01:58,830 --> 00:02:01,590
überall in unserer Umwelt, ich 
nenne mal ein paar, denkt man an

40
00:02:01,590 --> 00:02:04,190
eure vielleicht ein bisschen 
modernere Kaffeemaschine. 

41
00:02:04,190 --> 00:02:09,550
Da ist ein Beta System drin oder
denkt mal an euer Auto, ein 

42
00:02:09,550 --> 00:02:12,590
Bremssystem, das ist ja ein Teil
vom ganzen Autosystem ist, da 

43
00:02:12,590 --> 00:02:17,990
ist auch ein Embedded System 
drin oder denkt mal irgendwo in 

44
00:02:17,990 --> 00:02:21,630
der Medizintechnik, dort wird ja
ganz viel mit Embedded Systems 

45
00:02:21,630 --> 00:02:25,070
gearbeitet, auch so 
endoskopische Operationen oder 

46
00:02:25,070 --> 00:02:29,150
ähnliche Dinge sind einfach 
immer Systeme die ganz spezielle

47
00:02:29,150 --> 00:02:31,870
Aufgaben haben und das einfach 
ziemlich gut machen. 

48
00:02:32,920 --> 00:02:35,400
Im Gegensatz dazu kann man 
vielleicht so einen PC und eine 

49
00:02:35,400 --> 00:02:37,600
Software auf dem PC. 
Das ist so eine generischere 

50
00:02:37,960 --> 00:02:40,320
Geschichte. 
Auf dem PC kann man ganz viele 

51
00:02:40,400 --> 00:02:44,160
Software Applikationen haben, 
aber ein Embedded System macht 

52
00:02:44,160 --> 00:02:46,400
halt nur eine ganz spezielle 
Aufgabe. 

53
00:02:47,080 --> 00:02:49,520
Könnte man sagen, dass ein 
Embedded System sowas ist wie 

54
00:02:49,520 --> 00:02:53,280
ein ganz ganz kleiner Mini 
Computer, der weil die sind also

55
00:02:53,280 --> 00:02:55,560
embedded heißt ja eingebettet, 
da läuft ja irgendwie Software, 

56
00:02:55,560 --> 00:02:57,240
also das muss ja aber auch 
irgendwie ein Computer sein, 

57
00:02:57,240 --> 00:02:59,240
dass die Software da irgendwie 
läuft, wahrscheinlich ist der 

58
00:02:59,240 --> 00:03:01,600
dann irgendwie direkt an 
irgendwelche Kabel mit Kabeln 

59
00:03:01,600 --> 00:03:03,040
verbunden, wo die Hardware dran 
ist. 

60
00:03:03,040 --> 00:03:05,160
Ist das falsch wenn man sagt das
ist irgendwie ein Mini Computer?

61
00:03:06,070 --> 00:03:10,430
Ja, ein bisschen. 
Musst du zwischen der Technik 

62
00:03:10,430 --> 00:03:11,830
und der Fachlichkeit 
unterscheiden? 

63
00:03:11,830 --> 00:03:14,470
Die Technik kann ja alles 
möglich sein, was rechnen kann, 

64
00:03:14,470 --> 00:03:16,950
das kann ein Computer sein, das 
kann Mikrocontroller sein oder 

65
00:03:16,950 --> 00:03:20,310
was immer, aber das System hat 
ja immer ne fachliche Aufgabe, 

66
00:03:20,310 --> 00:03:23,550
ne das muss ja irgendwas ganz 
spezifisches tun und das ist der

67
00:03:23,550 --> 00:03:27,520
Aspekt beim Embedded System. 
Die Aufgabe ist irgendwo 

68
00:03:27,520 --> 00:03:29,840
integriert und nicht die 
Hardware. 

69
00:03:30,840 --> 00:03:33,800
Also es ist quasi genau nicht 
so, dass ich irgendwie auf der 

70
00:03:33,800 --> 00:03:36,440
gleichen Hardware verschiedene 
Apps zum Beispiel beim Telefon 

71
00:03:36,880 --> 00:03:39,720
laufen lassen möchte und mir 
morgen überlege, beim Telefon 

72
00:03:39,720 --> 00:03:42,200
kann auch was anderes, weil ich 
irgendwie eine neue Kalender App

73
00:03:42,200 --> 00:03:45,160
habe, sondern andersrum. 
Ich habe irgendwie genau ein 

74
00:03:45,160 --> 00:03:48,840
einziges Stück Software und das 
wird quasi in Hardware gegossen 

75
00:03:48,840 --> 00:03:52,200
oder eingegossen und dieses 
Stück Hardware so wie es da ist 

76
00:03:52,200 --> 00:03:55,520
kann auch nur oder macht auch 
nur dieses eine Programm diese 

77
00:03:55,520 --> 00:03:58,600
eine Aufgabe. 
Immer wieder gleich und immer 

78
00:03:58,600 --> 00:04:01,080
wieder zuverlässig. 
Und es gibt nichts anderes, was 

79
00:04:01,080 --> 00:04:03,000
da irgendwie reinfunken kann. 
Ich. 

80
00:04:03,000 --> 00:04:05,560
Glaube durch den Nagel auf dem 
Kopf, weil das wäre ziemlich 

81
00:04:05,560 --> 00:04:08,000
unvorsichtig, wenn du neben 
deinem wirklich deiner 

82
00:04:08,000 --> 00:04:11,560
spezifischen Aufgabe doch den 
Rechner andere Aufgaben machen 

83
00:04:11,560 --> 00:04:14,350
lässt, dann. 
Beeinflusst sich das in der 

84
00:04:14,350 --> 00:04:16,269
Regel eigentlich und das möchte 
ich eigentlich überhaupt nicht. 

85
00:04:16,269 --> 00:04:17,910
Kann. 
Man jetzt so sagen, man kommt 

86
00:04:17,910 --> 00:04:20,149
bei dem Embedded System 
eigentlich von der 

87
00:04:20,149 --> 00:04:23,390
Softwareaufgabe und die seitener
Hardware, also die perfekt ist 

88
00:04:23,390 --> 00:04:26,630
für diese diese Software. 
Im Gegensatz zum zum Telefon was

89
00:04:26,630 --> 00:04:29,270
erstmal? 
Ja ne ne ne starke Hardware ist 

90
00:04:29,270 --> 00:04:31,750
die perspektivisch alles 
Mögliche an an Software 

91
00:04:31,750 --> 00:04:34,390
ausführen kann. 
Eigentlich kommt es traditionell

92
00:04:34,390 --> 00:04:36,790
immer von der Hardware, weil du 
hast ja die Hardware 

93
00:04:36,790 --> 00:04:40,710
Schnittstelle zuerst ne du hast 
n Gesamtsystem und da gibt es 

94
00:04:40,710 --> 00:04:42,870
dann verschiedene. 
Ich sag jetzt mal Busse, Busse, 

95
00:04:42,870 --> 00:04:45,430
bussysteme so Industriebusse 
oder ähnliches. 

96
00:04:45,430 --> 00:04:48,150
Wenn du im 
Automatisierungsbereich 

97
00:04:48,150 --> 00:04:51,030
unterwegs bist oder du hast ein 
Gerät das du ansteuern musst. 

98
00:04:51,030 --> 00:04:53,990
Es gibt ja immer eine Hardware 
vor und dann kommst du mit 

99
00:04:53,990 --> 00:04:58,750
deinem System, machst eine 
Hardware die in dieses Hardware 

100
00:04:58,750 --> 00:05:03,670
System technisch rein. 
Dann kommt die Software drauf. 

101
00:05:03,670 --> 00:05:06,070
Ich glaub jetzt musst du mal 
erklären was n was n Bus ist. 

102
00:05:06,270 --> 00:05:07,710
Den kennen viele nur von der 
Haltestelle. 

103
00:05:10,600 --> 00:05:13,640
Ja gut, jetzt erstmal was 
Allgemeines was Kommunikation 

104
00:05:13,640 --> 00:05:16,360
ermöglicht. 
Da kannst du einfach mit anderen

105
00:05:16,360 --> 00:05:19,120
Teilnehmern in diesem 
Gesamtsystem kommunizieren und 

106
00:05:19,120 --> 00:05:22,880
das läuft dann oft über Buße und
die Industrie hat ganz 

107
00:05:22,880 --> 00:05:27,360
spezifische Bussysteme, so dass 
einfach das ein sehr offener 

108
00:05:27,360 --> 00:05:31,000
Standard ist, damit sich Geräte 
rein integrieren können, ohne 

109
00:05:31,000 --> 00:05:33,760
dass es die anderen stört. 
Also da ist schon sehr genau 

110
00:05:33,760 --> 00:05:36,120
vorgegeben, wie die Miteinander 
kommunizieren kann. 

111
00:05:36,720 --> 00:05:39,400
Man sich das so vorstellen, 
Alex, dass beim Bussystem. 

112
00:05:40,280 --> 00:05:43,240
Das Daten losgeschickt werden an
einer bestimmten Stelle und 

113
00:05:43,240 --> 00:05:46,000
jeder Teilnehmer man könnte sich
jetzt ich nehme mal das 

114
00:05:46,000 --> 00:05:49,200
Busbeispiel aus der echten Welt 
Haltestellen ja also die Buße 

115
00:05:49,200 --> 00:05:51,680
selber sind quasi meine 
Datenpakete. 

116
00:05:52,590 --> 00:05:54,070
Und dann habe ich ganz viele 
Haltestellen. 

117
00:05:54,070 --> 00:05:56,470
Haltestellen sind diejenigen, 
die interessiert sein könnten an

118
00:05:56,470 --> 00:05:59,950
den Datenpaketen und dann fahren
die Busse die Datenpakete an den

119
00:05:59,950 --> 00:06:02,390
Haltestellen vorbei und wenn ne 
Haltestelle Lust hat. 

120
00:06:03,190 --> 00:06:05,670
Nimmt sie sich was raus aus dem 
Datenpaket oder packt auch was 

121
00:06:05,670 --> 00:06:07,150
rein? 
Ja, also entweder steigt was aus

122
00:06:07,150 --> 00:06:10,270
n Teil aus dem Bus rausgenommen 
und das wird wieder was 

123
00:06:10,270 --> 00:06:12,790
reingegeben und dann fließt es 
weiter, aber man kann nicht 

124
00:06:12,790 --> 00:06:15,950
verhindern, dass immer die Busse
an einem Vorbeifahren den ganzen

125
00:06:15,950 --> 00:06:19,030
Tag irgendwie ist jetzt n 
gemaltes Bild, aber es gibt ja 

126
00:06:19,030 --> 00:06:21,350
andere Kommunikationsprotokolle,
die sind ja immer Punkt zu 

127
00:06:21,350 --> 00:06:24,190
Punkt, da will ich genau mit 
einem also ich sag ja immer 

128
00:06:24,190 --> 00:06:26,630
kleinen Server in der Webwelt 
gibt's ja immer das also ich 

129
00:06:26,910 --> 00:06:30,270
kommuniziere exakt mit einer 
Gegenstelle und beim Bus weiß 

130
00:06:30,270 --> 00:06:33,190
ich gar nicht so genau wer 
irgendwie das alles erreichen 

131
00:06:33,190 --> 00:06:36,230
wird und wer was damit macht, 
sondern da konzentriere ich mich

132
00:06:36,230 --> 00:06:40,190
eher quasi auf die. 
Ja, aha, so eine Art Kreisweg, 

133
00:06:40,190 --> 00:06:42,990
ne, also der der, der der Weg 
ist festgelegt wo die Linie 3 

134
00:06:42,990 --> 00:06:45,190
immer lang fährt, er fährt 
irgendwo ab und kommt auch immer

135
00:06:45,190 --> 00:06:48,190
wieder an und das sind halt 
quasi meine Datenwege. 

136
00:06:48,350 --> 00:06:52,030
Wenn du dann deine Anwendung an 
Haltestelle 3 baust in dem Haus 

137
00:06:52,030 --> 00:06:55,190
dahinter gehst du raus. 
Steckt die Pakete in den Bus 

138
00:06:55,190 --> 00:06:59,830
rein, der fährt los und bringt 
sie dann an Haltestelle 1212 hat

139
00:06:59,830 --> 00:07:02,670
vielleicht wieder ne Antwort und
dann gucken wir ob wir jetzt 

140
00:07:03,030 --> 00:07:05,230
wieder bei 3 ob da für mich was 
drin ist. 

141
00:07:05,230 --> 00:07:07,230
Dann nehm ich es raus und dann 
ist ne Information die die 

142
00:07:07,230 --> 00:07:10,750
Applikation das Systems 
verarbeitet das passt schon so. 

143
00:07:12,110 --> 00:07:17,390
Gut, jetzt haben wir Busse im 
Sinne der Kommunikationstechnik 

144
00:07:17,390 --> 00:07:20,470
mit Bussen aus den Straßen, aus 
dem öffentlichen Nahverkehr 

145
00:07:20,470 --> 00:07:23,750
erklärt. 
Prima, aber trotzdem also noch 

146
00:07:23,750 --> 00:07:26,790
mal, es sind 2 verschiedene 
Dinge, so jetzt soweit ein ein 

147
00:07:26,790 --> 00:07:29,750
perfekt passendes Bild kreiert, 
ja was das gut erklärt okay 

148
00:07:29,750 --> 00:07:33,550
verstanden gut, hat jetzt aber 
primär auch erstmal mit dem Bad 

149
00:07:33,550 --> 00:07:37,190
Assistant nichts zu tun, nur das
Embedded System oder wird 

150
00:07:37,190 --> 00:07:39,670
eventuell gefüttert mit Daten 
aus diesem aus dem Bus letzten 

151
00:07:39,670 --> 00:07:41,430
Endes oder zieht sich dort Daten
raus. 

152
00:07:42,520 --> 00:07:44,240
Okay gut also so eine Beta 
System ist eingebettet. 

153
00:07:44,240 --> 00:07:49,640
Also ich glaube eingebettetes 
System ist auch etwas was man ja

154
00:07:49,640 --> 00:07:52,760
sagt, wahrscheinlich auf Deutsch
oder wie ist das im Sprech im 

155
00:07:52,760 --> 00:07:55,480
Lingo wenn du unterwegs bist bei
deinen Kunden sagt man 

156
00:07:55,480 --> 00:07:58,360
eingebettetes System oder oder 
Embedded System worüber spricht 

157
00:07:58,360 --> 00:07:59,680
man da? 
Man spricht eigentlich im 

158
00:07:59,680 --> 00:08:02,000
englischen Embedded System an, 
aber klar, das im Deutschen 

159
00:08:02,000 --> 00:08:04,520
heißt es eingebettetes System 
als Direktübersetzung. 

160
00:08:05,040 --> 00:08:08,240
Okay und ich würde versuchen, 
noch weiter zu verstehen, wo die

161
00:08:08,240 --> 00:08:11,080
Unterschiede sind zu einem 
normalen PC und so normal oder 

162
00:08:11,080 --> 00:08:13,640
einen normalen Telefon, was wir 
so kennen und ich glaube für 

163
00:08:13,640 --> 00:08:14,760
unsere Hörer ist es am 
einfachsten. 

164
00:08:15,800 --> 00:08:18,440
Von irgendwas zu starten, wo man
eine Vorstellung von hat, wo man

165
00:08:18,440 --> 00:08:20,560
schon mal was verstanden hat und
dann auf so ein ungekanntes 

166
00:08:20,560 --> 00:08:22,520
Terror wie Embedded System zu 
gehen. 

167
00:08:22,960 --> 00:08:25,440
Ich stelle noch mal eine These 
auf Alex du. 

168
00:08:25,790 --> 00:08:27,390
Korrigierst mich, wenn ich das 
falsch mache. 

169
00:08:27,630 --> 00:08:30,550
Für mich ist ja auch noch so n 
Unterschied, wenn ich jetzt so n

170
00:08:30,670 --> 00:08:33,669
so n Telefon zum Beispiel 
starte, also wenn es aus war und

171
00:08:33,669 --> 00:08:35,990
ich starte es, dann komm ich ja 
irgendwie erstmal auf so n 

172
00:08:35,990 --> 00:08:38,470
Startbildschirm oder auch beim 
Betriebssystem ist ja ähnlich ne

173
00:08:38,470 --> 00:08:40,230
so da wird irgendwie alles 
geladen, da seh ich irgend n 

174
00:08:40,230 --> 00:08:42,870
Desktop oder ne Oberfläche und 
dann muss ich erstmal aussehen 

175
00:08:42,870 --> 00:08:45,870
was will ich überhaupt machen so
ja jetzt mach ich Spotify an 

176
00:08:45,870 --> 00:08:50,150
oder ich mach Word auf oder 
irgendwie was und kann man sich 

177
00:08:50,150 --> 00:08:53,750
da beim abbette System das so 
vorstellen, dass sobald ich das 

178
00:08:53,750 --> 00:08:57,190
unter Strom setze wenn ich das 
Anschalte und das Strom bekommt?

179
00:08:58,080 --> 00:08:59,480
Das ist, wieso eine Art Kiosk 
System ist. 

180
00:08:59,480 --> 00:09:01,000
Also da kann ich ja nichts 
auswählen. 

181
00:09:01,000 --> 00:09:03,680
Ich hab ja auch oft gar keinen. 
Vielleicht habe ich gar kein 

182
00:09:03,680 --> 00:09:06,280
Interface dazu, dass ich 
irgendwie als Mensch damit 

183
00:09:06,280 --> 00:09:08,480
agieren kann, ich hab ja gar 
keinen, vielleicht auch noch 

184
00:09:08,480 --> 00:09:11,680
nicht mal ein Display da dran 
und es nimmt einfach sofort 

185
00:09:11,680 --> 00:09:14,680
seine Arbeit auf und die Arbeit 
ist halt ganz klar fest 

186
00:09:14,680 --> 00:09:16,480
definiert, weil wir vorher 
gesagt haben, es gibt ja nur 

187
00:09:16,480 --> 00:09:19,040
eine Aufgabe und ein Programm, 
also kann das sofort gestartet 

188
00:09:19,040 --> 00:09:21,600
werden, wenn ich es ausmache ist
auch egal. 

189
00:09:21,600 --> 00:09:23,480
Also ich kann es so ein 
bisschen, ich habe so einen 

190
00:09:23,480 --> 00:09:26,320
Drucker zu Hause, den kann ich 
halt aus und anmachen, mein Sohn

191
00:09:26,320 --> 00:09:28,480
macht das immer, dann habe ich 
das, quält mich immer, weil der 

192
00:09:28,480 --> 00:09:31,160
macht das Halt aus und an so 
ganz schnell hintereinander und 

193
00:09:31,160 --> 00:09:33,880
hinter startet und ich denke 
immer irgendwann bleibt das 

194
00:09:33,880 --> 00:09:35,920
hängen und stirbt so weil der 
arme Software entwickelt, aber 

195
00:09:35,920 --> 00:09:38,750
das muss der sich alles gedacht 
haben, dass das Abkann. 

196
00:09:38,750 --> 00:09:41,070
Ja und dann denk ich, na ist 
vielleicht n Embedded System und

197
00:09:41,070 --> 00:09:43,030
es ist dem alles völlig wurscht,
ich mach das halt an und dann 

198
00:09:43,030 --> 00:09:45,310
passieren halt Routinen und dann
und wenn es zwischendurch 

199
00:09:45,310 --> 00:09:49,110
ausgeschaltet wird es auch egal 
so, du nickst da mal gucken was 

200
00:09:49,110 --> 00:09:50,150
ich jetzt für n Quatsch erzählt 
hab. 

201
00:09:50,630 --> 00:09:52,590
Nee, also das kann man schon so 
vergleichen. 

202
00:09:52,590 --> 00:09:56,550
Ne, wenn du an einem Prozessor 
den Strom anmachst, dann springt

203
00:09:56,550 --> 00:09:59,750
der erstmal auf ne vorgegebene 
Adresse im Speicher oder in in 

204
00:09:59,750 --> 00:10:03,670
der Hardware und startet erstmal
so von 0 an ne, dann dann wird 

205
00:10:03,830 --> 00:10:07,150
Schicht für Schicht sage ich 
jetzt mal in Betrieb genommen 

206
00:10:07,150 --> 00:10:10,520
und. 
Dann irgendwann ist man aus 

207
00:10:10,520 --> 00:10:13,000
einer Hardware Initialisierung 
draußen und dann geht's in die 

208
00:10:13,000 --> 00:10:16,840
Software, wann auch immer dein 
Sohn ausschält wenn es ein 

209
00:10:16,840 --> 00:10:19,520
robustes System ist, macht das 
dem überhaupt nichts aus. 

210
00:10:19,560 --> 00:10:22,040
Du kannst ja auch immer den 
Stecker rausziehen oder ähnliche

211
00:10:22,040 --> 00:10:26,840
Dinge wenn was kaputt geht, dann
ist das meistens im applikativen

212
00:10:26,840 --> 00:10:29,760
Bereich, dann dann wird auch der
Hardware manchmal. 

213
00:10:31,630 --> 00:10:33,910
Daten nicht mehr richtig 
abgelegt oder ähnliche Sachen, 

214
00:10:33,910 --> 00:10:39,230
aber bei entweder System hat man
selten diese Anforderung 

215
00:10:39,230 --> 00:10:41,390
beziehungsweise man Designs ist 
so robust, dass also ne 

216
00:10:41,390 --> 00:10:44,910
Rettundanz, also wenn das schief
geht hat man immer zum Beispiel 

217
00:10:44,910 --> 00:10:49,670
in so sicheren Systemen doppelte
Speicherung und wenn der eine 

218
00:10:49,670 --> 00:10:52,870
gerade korrupt ist, weil der 
Sohn halt gerade in dem Moment 

219
00:10:52,870 --> 00:10:56,190
den Strom rausgezogen hat, dann 
nimmt er den anderen Speicher, 

220
00:10:56,190 --> 00:10:57,910
der robust ist und handelt es 
dann selber. 

221
00:10:58,310 --> 00:11:01,070
Das ist dann beim Entwurf muss 
man das schon mal. 

222
00:11:02,320 --> 00:11:05,160
Darauf achten jetzt. 
Sagst du Alex Speichern und 

223
00:11:05,160 --> 00:11:10,680
Speicherung, das heißt mein mein
Drucker speichert, hat also 

224
00:11:10,800 --> 00:11:13,320
obwohl das irgendwie nur so ein 
ganz kleines Mikrochipchen ist, 

225
00:11:13,320 --> 00:11:15,440
vielleicht dünn wie eine 
Briefmarke oder irgendwas auch 

226
00:11:15,440 --> 00:11:18,560
so von den Ausmaßen ungefähr. 
Das hat dann auch irgendwie eine

227
00:11:18,560 --> 00:11:20,560
Festplatte drin und kann 
irgendwie was speichern, wie 

228
00:11:20,560 --> 00:11:22,280
kann, wie kann man sich das 
jetzt vorstellen? 

229
00:11:22,560 --> 00:11:26,240
Ja, so eine kleine Hardware oder
so eine System, eine Chip wie 

230
00:11:26,240 --> 00:11:31,080
man auch allgemein sagt, das ist
ja ein System aus verschiedenen 

231
00:11:31,080 --> 00:11:34,470
Hardware Bausteinen. 
Und es gibt ja immer Rom 

232
00:11:34,470 --> 00:11:37,550
Speicher oder Programmspeicher, 
der kann nur gelesen werden. 

233
00:11:37,550 --> 00:11:41,070
Dann gibt es RAM Speicher der 
auch geschrieben werden kann und

234
00:11:41,070 --> 00:11:44,270
den gibt es ja noch in in 
volatil oder in in statisch ne 

235
00:11:44,270 --> 00:11:46,790
also der in persistent der 
verliert dann sein Gedächtnis 

236
00:11:46,790 --> 00:11:48,470
nicht mehr wenn man einmal 
reingeschrieben hat und der 

237
00:11:48,470 --> 00:11:51,950
andere ist der Arbeitsspeicher 
mit dem das Programm immer 

238
00:11:51,950 --> 00:11:55,830
arbeitet wenn es ausgeführt. 
Und ich habe ein Stichwort Eprom

239
00:11:55,830 --> 00:11:58,190
das habe ich immer, gehöre ich 
immer so als Passwort, haben 

240
00:11:58,190 --> 00:12:00,350
vielleicht unsere Hörer auch 
schon mal gehört, ja, hier hat 

241
00:12:00,350 --> 00:12:03,150
das Ding eprom oder irgend 
sowas, kannst du einmal eprom 

242
00:12:03,150 --> 00:12:06,270
aufklären, was ist eprom hat das
was mit Speicher zu tun? 

243
00:12:07,320 --> 00:12:11,360
Ja, das hat Rom zum Schluss. 
Das ist ein Read only Memory 

244
00:12:11,360 --> 00:12:15,320
eigentlich, aber man kann einen 
Eprom einfach reinschreiben, 

245
00:12:15,320 --> 00:12:18,680
rauslesen, aber es ist ein 
eigener Hardware Baustein mit 

246
00:12:18,680 --> 00:12:22,680
einer bestimmten Technologie um 
dort persistent Daten abzulegen.

247
00:12:22,960 --> 00:12:25,880
Persistent heißt, ich kann 
ausschalten und was ich vorher 

248
00:12:25,880 --> 00:12:27,480
geschrieben habe bleibt 
erhalten, wenn ich wieder 

249
00:12:27,480 --> 00:12:29,040
anschalte kann ich darauf 
zugreifen. 

250
00:12:29,280 --> 00:12:32,200
Genau, dauerhaft. 
Jetzt sind wir schon also beide 

251
00:12:32,200 --> 00:12:34,760
bei der Hardware und du hast 
jetzt System on Chip gesagt. 

252
00:12:35,630 --> 00:12:41,230
Oder Onlineshop, oft abgekürzt 
SOC ne, da würd ich gerne mal 

253
00:12:41,230 --> 00:12:44,230
kurz bleiben, weil die spielen 
ja glaub ich ne wichtige Rolle 

254
00:12:44,510 --> 00:12:46,670
in nem Battle Systems. 
Ne, Warum heißt das nicht 

255
00:12:46,670 --> 00:12:48,230
einfach Chip? 
Warum heißt das System on Chip 

256
00:12:48,230 --> 00:12:51,230
oder oder also erklär doch mal. 
Ja, das lese ich tatsächlich 

257
00:12:51,230 --> 00:12:52,390
oft. 
Eprom hab ich offen gestanden, 

258
00:12:52,390 --> 00:12:53,990
noch nie gehört, aber 
systemodhip schon häufig. 

259
00:12:55,680 --> 00:12:57,680
Und das ist ja anscheinend die 
Grundlage. 

260
00:12:57,680 --> 00:12:59,760
Also lass uns doch da mal n 
bisschen erklären, was das ist. 

261
00:12:59,760 --> 00:13:01,320
Ich. 
Würd mal sagen die sind zuerst 

262
00:13:01,320 --> 00:13:04,080
in den letzten sag ich mal 10 
Jahren groß geworden. 

263
00:13:04,390 --> 00:13:08,750
Je komplexer die Systeme werden,
desto leistungsfähiger wird die 

264
00:13:08,750 --> 00:13:13,150
Hardware und in so n Chip. 
Also es ist ein Baustein, ist 

265
00:13:13,150 --> 00:13:17,950
ein ganzes System integriert, da
können mehrere CPUS integriert 

266
00:13:17,950 --> 00:13:20,670
sein, da können mehrere Arten 
von Speicher integriert sein, da

267
00:13:20,670 --> 00:13:24,350
können so ganz spezielle 
Bussysteme schon drauf sein, zum

268
00:13:24,350 --> 00:13:28,110
Beispiel kann das schon USB drin
sein oder alle anderen 

269
00:13:28,110 --> 00:13:30,670
Peripheriebusse, da muss ich 
nicht aufzählen, ich glaube es 

270
00:13:30,670 --> 00:13:34,910
verwirrt nur, aber das ist 
massig an so einzelnen 

271
00:13:34,910 --> 00:13:38,430
Komponenten drin, die man dann 
aber auch ganz individuell 

272
00:13:38,430 --> 00:13:42,440
verschaltet und benutzen kann. 
Und das ist natürlich schon 

273
00:13:42,440 --> 00:13:47,120
Wahnsinn, dass du so ein System 
hast, das du für dann ganz viele

274
00:13:47,120 --> 00:13:51,160
Anwendungsbereiche 
vorkonfigurieren kannst. 

275
00:13:51,440 --> 00:13:53,600
Die sind natürlich schon ein 
bisschen so Grundausstattung. 

276
00:13:53,600 --> 00:13:55,840
Also entweder mache ich da 
Bildverarbeitung da vielleicht 

277
00:13:55,840 --> 00:14:00,080
drauf, oder ich mache, ja, ich 
integriere mich in industrielle 

278
00:14:00,080 --> 00:14:05,040
Bussysteme oder ich mache 
vielleicht Videobearbeitung, das

279
00:14:05,040 --> 00:14:06,880
sind dann schon Chips drin, die 
schon so. 

280
00:14:07,550 --> 00:14:10,870
Spezielle Aufgaben erfüllen 
können und jedem näher oder je 

281
00:14:10,990 --> 00:14:14,150
dedizierter die Hardware ist, 
desto leistungsfähiger kannst du

282
00:14:14,150 --> 00:14:16,590
das auch machen. 
Ne, wenn du jpg in Software, 

283
00:14:16,590 --> 00:14:20,510
also jpg so n Bildformat, wenn 
man das runter rechnet in 

284
00:14:20,510 --> 00:14:22,990
Software brauchst du um ein 
Vielfaches mehr Zeit, wie wenn 

285
00:14:22,990 --> 00:14:26,390
du eine reduzierte Hardware 
Komponente hast die das machen 

286
00:14:26,390 --> 00:14:29,590
kann, deswegen spezialisierte 
Hardware schon ein bisschen für 

287
00:14:29,590 --> 00:14:32,070
ihre Anwendung. 
Und die dann aber jetzt 

288
00:14:32,070 --> 00:14:35,950
tatsächlich durch die Software, 
durch das eigentliche Programm, 

289
00:14:36,110 --> 00:14:39,510
dann letzten Endes ihre Aufgabe 
perfekt erfüllen kann oder 

290
00:14:39,510 --> 00:14:41,110
überhaupt erst ihre Aufgabe 
erfüllen kann. 

291
00:14:41,110 --> 00:14:45,510
Ich habe immer gehört, Firmware,
Software, Hardware, also 

292
00:14:45,510 --> 00:14:48,190
Hardware ganz unten und dann 
wird ja oft gesagt. 

293
00:14:49,040 --> 00:14:50,920
Also mit dem Embedded Sachen mit
denen ich arbeite. 

294
00:14:50,920 --> 00:14:52,960
Ich weiß ja gar nicht, ob das in
deiner Welt embedded ist, aber 

295
00:14:52,960 --> 00:14:57,320
ich habe ja mal diese Arduino, 
die Arduino Sachen, die Arduino 

296
00:14:57,320 --> 00:14:59,600
Chips, also das sind schon auch 
System on the Chip, die sind ja 

297
00:14:59,600 --> 00:15:03,200
ganz klein, also die Kleinsten 
sind irgendwie so groß wie 2 

298
00:15:03,200 --> 00:15:06,720
Briefmarken aneinander etwas 
dicker und da hat man ein paar 

299
00:15:06,720 --> 00:15:09,520
Kilobyte mal für unsere Hörer, 
also Arbeitsspeicher und so 

300
00:15:09,520 --> 00:15:12,440
weiter ist im Kilobyte Bereich 
irgendwo also hier nichts hier 

301
00:15:12,440 --> 00:15:15,280
mit Gigabyte und so muss auch 
schon gucken was man da tun 

302
00:15:15,280 --> 00:15:17,870
kann. 
Ähm, aber da heißt es auch 

303
00:15:17,870 --> 00:15:21,590
schon, wenn ich da drauf 
programmiere, sag ich mal, dann 

304
00:15:21,590 --> 00:15:24,790
ist das wahrscheinlich schon 
durch dieses Arduino System 

305
00:15:24,790 --> 00:15:29,030
irgendwie so ne Art, ja. 
Wach gemacht vielleicht, als 

306
00:15:29,030 --> 00:15:30,630
dass ich jetzt so ganz low 
leveler bin. 

307
00:15:30,630 --> 00:15:33,470
Und es gibt halt quasi ne 
Firmware, heißt es immer ne 

308
00:15:33,470 --> 00:15:35,310
Firmware ist schon 
vorinstalliert auf diesen 

309
00:15:35,310 --> 00:15:39,670
Arduino Chips, die regelt 
wahrscheinlich diese, ja dieses 

310
00:15:39,670 --> 00:15:41,870
Miteinander und die Steuerung 
der Komponenten die du 

311
00:15:41,870 --> 00:15:43,470
aufgezählt hast. 
Also zum Beispiel der 

312
00:15:43,590 --> 00:15:46,830
Aufgelöteten und schon 
mitbereiteten Schnittstellen was

313
00:15:46,830 --> 00:15:49,590
weiß ich, Bluetooth und USB und 
so weiter aber kannst du uns 

314
00:15:49,590 --> 00:15:52,790
Alex vielleicht noch mal genau 
auseinanderdröseln oder gibt's 

315
00:15:52,790 --> 00:15:55,510
da auch nur Grauzonen und ist 
das Verhandlungssache was genau 

316
00:15:55,510 --> 00:15:58,750
aus Hardware, Firmware und 
Embedded Software, also die 

317
00:15:58,750 --> 00:16:01,030
Software die immer noch auf dem 
Chip ist macht man diesen 

318
00:16:01,030 --> 00:16:03,830
Unterschied heute noch oder gibt
es da fließende Übergänge? 

319
00:16:04,600 --> 00:16:06,880
In meiner Welt ist diese 
Begrifflichkeit Firmware ist die

320
00:16:06,880 --> 00:16:10,200
komplette Software, die auf 
einem Mikrocontroller läuft. 

321
00:16:11,200 --> 00:16:13,840
Das sind die ganzen Schichten. 
Wenn du ein Betriebssystem drauf

322
00:16:13,840 --> 00:16:17,000
hast ist das Betriebssystem und 
dann die Applikation drauf und 

323
00:16:17,000 --> 00:16:21,240
so weiter und sofort, aber in 
deinem Fall programmierst du ja 

324
00:16:21,240 --> 00:16:25,000
irgendwie auch schon in einer 
Software vielleicht ich weiß 

325
00:16:25,000 --> 00:16:28,440
nicht genau, vielleicht ist da 
schon irgendeine Art von 

326
00:16:28,440 --> 00:16:29,990
Software. 
Startet die nennt sich Firmware 

327
00:16:29,990 --> 00:16:32,430
und Du machst da nochmal ne 
Applikation zusammen mit der 

328
00:16:33,110 --> 00:16:36,270
anderen Grundsoftware wird das 
dann eine Firmware? 

329
00:16:36,270 --> 00:16:39,670
Eigentlich ist meine Welt so, 
ich lade die Firmware auf n 

330
00:16:40,230 --> 00:16:43,910
Embedded System und das ist die 
Software und der Rest der. 

331
00:16:44,390 --> 00:16:46,510
Hardware Okay das macht mir das 
ein bisschen einfacher. 

332
00:16:46,510 --> 00:16:48,830
Es ist so ein bisschen, ich kann
ja mal erzählen, wie das bei mir

333
00:16:48,830 --> 00:16:51,350
ist. 
Also es ist ja so, dass man. 

334
00:16:52,110 --> 00:16:53,550
Das ist ja auch n riesen 
Unterschied. 

335
00:16:53,550 --> 00:16:56,390
Wenn ich jetzt Software 
entwickel an meinem an meinem 

336
00:16:56,390 --> 00:16:59,670
Laptop, dann sitz ich, dann hat 
mein Laptop natürlich n Display 

337
00:16:59,670 --> 00:17:01,830
angeschaltet und ich entwickle 
direkt die Software. 

338
00:17:02,870 --> 00:17:05,310
Mit dem Gerät, wo die auch dann 
später läuft, also 

339
00:17:05,630 --> 00:17:09,310
Entwicklungsumgebung und Editor 
für die Software zum Entwickeln 

340
00:17:09,310 --> 00:17:11,869
und Ausführgerät für die 
Software, ist im Notfall, wenn 

341
00:17:11,869 --> 00:17:13,869
ich im Testmodus bin und es 
nicht gerade die Cloud geladen 

342
00:17:13,869 --> 00:17:16,990
hab das gleiche Gerät. 
Das funktioniert natürlich nicht

343
00:17:16,990 --> 00:17:19,550
für so n Embedded System, wenn 
ich auf meinem Arduino Chip, der

344
00:17:19,550 --> 00:17:21,990
hat gar nicht die Power 
irgendein Editor mir anzuzeigen,

345
00:17:21,990 --> 00:17:25,670
das heißt ich benutze jetzt 
meinen Laptop um die Software zu

346
00:17:25,670 --> 00:17:28,750
entwickeln, die würde aber nie 
laufen auf meinem Laptop weil 

347
00:17:28,750 --> 00:17:30,790
das funktioniert nicht weil der 
Arduino halt ein ganz anderer 

348
00:17:30,790 --> 00:17:33,790
Hardware ist und so, aber ich 
habe quasi einen speziellen 

349
00:17:33,790 --> 00:17:35,670
Editor, ein bisschen 
Unterstützung der mir sagt Okay 

350
00:17:35,670 --> 00:17:38,030
das wird schon ganz gut werden 
für das was du dann machst. 

351
00:17:38,840 --> 00:17:40,880
Dann kompiliere ich das. 
Ich schreibe das in C plus plus 

352
00:17:40,880 --> 00:17:44,080
bei Arduino und habe so ich habe
2 wichtige Funktionen die eine 

353
00:17:44,080 --> 00:17:47,040
heißt Setup, die passiert, das 
ist so ein passt so ein bisschen

354
00:17:47,040 --> 00:17:49,360
zu dem Kiosk System was ich 
gesagt habe, setup wird genau 

355
00:17:49,360 --> 00:17:51,920
dann aufgerufen wenn der Strom 
dran kommt, dann wird die einmal

356
00:17:51,920 --> 00:17:54,320
aufgerufen die Setup da kann ich
alles mögliche initialisieren 

357
00:17:54,320 --> 00:17:57,800
und so weiter und die andere 
Funktion heißt Loop und die wird

358
00:17:57,800 --> 00:18:01,240
so schnell aufgerufen wie dieser
Mikroprozessor der auf dem 

359
00:18:01,240 --> 00:18:04,990
Arduino ist halt takten kann. 
Also eigentlich furchtbar 

360
00:18:04,990 --> 00:18:07,830
schnell im Kreis und da läuft 
dann eigentlich die Software 

361
00:18:07,830 --> 00:18:11,110
drauf, die ich so machen möchte.
Ja und und wenn ich das dann 

362
00:18:11,110 --> 00:18:13,750
geschrieben hab, die Software, 
dann kompilier ich das in C plus

363
00:18:13,750 --> 00:18:16,630
ist um das Kompilieren, dann 
entsteht ein ein binäres 

364
00:18:16,630 --> 00:18:19,430
Produkt, dann ja ein Paar ein 
kein Paket aus binären Zahlen 

365
00:18:19,430 --> 00:18:23,710
und das kann ich dann per USB 
Kabel runterladen auf. 

366
00:18:24,030 --> 00:18:26,950
In Arduino Chip ja, und sobald 
das da drauf geladen ist. 

367
00:18:26,950 --> 00:18:28,710
Ihr kriegt ja Strom und das 
führt sich aus, ja. 

368
00:18:29,630 --> 00:18:33,910
Also so, so so ist meine, so ist
meine kleine Welt embedded, das 

369
00:18:33,910 --> 00:18:36,470
ist eigentlich gar nicht ja das,
das eigentlich gar nicht so 

370
00:18:36,470 --> 00:18:38,710
kompliziert, aber dann 
verschmilzt wahrscheinlich das, 

371
00:18:38,710 --> 00:18:42,910
was ich getan habe, als 
Anwendungssoftware mit der 

372
00:18:42,910 --> 00:18:44,950
Software, die da schon drauf 
ist, zusammen zu einem großen 

373
00:18:44,950 --> 00:18:47,470
Block Firmware und der ist dann 
halt quasi da drauf und wird 

374
00:18:47,470 --> 00:18:49,470
ausgeführt. 
So jetzt deine Definition 

375
00:18:49,470 --> 00:18:54,160
verstanden. 
In den Applikationsteil deine 

376
00:18:54,160 --> 00:18:56,840
Applikation mit rein. 
Das eine was du gesagt hast ist 

377
00:18:56,840 --> 00:19:00,360
bestimmt die Initialisierung des
Microcontrollers, weil du hast 

378
00:19:00,360 --> 00:19:03,000
ja verschiedene Bausteine drauf,
die können verschiedene Aufgaben

379
00:19:03,000 --> 00:19:06,600
machen, du kannst verschieden 
konfigurieren und danach läuft 

380
00:19:06,600 --> 00:19:08,120
ja noch die Anwendung, das 
passt. 

381
00:19:08,360 --> 00:19:10,800
Ja genau, und da geht es immer 
ganz viel darum und ich weiß 

382
00:19:10,800 --> 00:19:13,120
nicht, ob das, wenn das zu weit 
führt, dann musst du mich hier 

383
00:19:13,120 --> 00:19:16,480
gleich mal abgrätschen, aber da 
geht es immer ganz viel darum, 

384
00:19:16,480 --> 00:19:18,640
bei der Initialisierung zu 
sagen, welche Pins. 

385
00:19:19,990 --> 00:19:22,190
Mit welchen Pins ich irgendwas 
mache und die Auslese. 

386
00:19:22,190 --> 00:19:26,070
Und es gibt analoge Pins, also 
analoge Input Pins, analoge 

387
00:19:26,070 --> 00:19:29,870
Output Pins und digitale Input 
und digitale Output Pins und 

388
00:19:29,870 --> 00:19:32,990
diese 4 Sachen. 
Es gibt viele Konzepte am Ende. 

389
00:19:32,990 --> 00:19:35,750
Wir wollen jetzt auch nicht in 
unsere Zuhörer überführen, 

390
00:19:35,750 --> 00:19:40,670
überführen, genau überfordern, 
aber ich glaube, dieses A, also 

391
00:19:40,670 --> 00:19:44,030
analog Input, Output, Digital 
Input und Output, ist das, was 

392
00:19:44,030 --> 00:19:47,710
auch was bei dir auch in deinen,
in deinen täglichen Aufgaben 

393
00:19:47,710 --> 00:19:50,270
eine Rolle spielt. 
Und wenn wenn das sehr zentrales

394
00:19:50,270 --> 00:19:52,230
Thema ist, können wir das kurz 
einmal anleuchten. 

395
00:19:52,470 --> 00:19:55,590
Sagen wir mal nicht, man wird 
hier als Softwarearchitekt aber 

396
00:19:56,110 --> 00:19:59,270
für die Produkte, für die ich 
unterwegs bin, die haben auch 

397
00:19:59,270 --> 00:20:02,590
analoge ein und Ausgänge und 
digitale Ausgänge. 

398
00:20:02,790 --> 00:20:06,160
Aber natürlich. 
Okay, und damit kann ich dann 

399
00:20:06,160 --> 00:20:08,080
quasi einfach einen Strom 
auslesen oder sowas. 

400
00:20:08,080 --> 00:20:10,280
Wenn ich sage analoge Eingang, 
dann habe ich irgendwie eine 

401
00:20:10,280 --> 00:20:13,680
Spannung anliegen und dann kann 
ich quasi an dem PIN quasi. 

402
00:20:13,920 --> 00:20:16,880
Also da liegt dann irgendwie 3 
Volt an, dann kann ich quasi in 

403
00:20:16,880 --> 00:20:19,400
der Software direkt auslesen. 
Ok es sind 3 Volt. 

404
00:20:20,630 --> 00:20:23,270
Also das wird dann umgerechnet 
irgend ne floatingzahl oder ne 

405
00:20:23,270 --> 00:20:25,990
integerzahl egal 3 Volt 
entsprechen dann 256 zum 

406
00:20:25,990 --> 00:20:28,390
Beispiel und wenn 0 Volt ist ist
es 0 und alles dazwischen ist 

407
00:20:28,390 --> 00:20:31,430
halt der Zahl dazwischen und 
dann kann ich anfangen quasi aus

408
00:20:31,430 --> 00:20:35,110
einem Gerät was irgendwie Strom 
abgibt oder wo ich ne Spannung 

409
00:20:35,110 --> 00:20:36,830
setze, denn es gibt ja Input und
Output. 

410
00:20:36,830 --> 00:20:39,510
Das eine ist halt quasi lesen, 
das andere schreiben, dann kann 

411
00:20:39,510 --> 00:20:41,870
ich damit anfangen schon zu 
lesen und zu schreiben und 

412
00:20:41,870 --> 00:20:43,950
irgendwas zu steuern und zum 
Beispiel irgendeine Spannung zu 

413
00:20:43,950 --> 00:20:47,510
regulieren, was dann dafür da 
ist, dass das Gerät was weiß ich

414
00:20:47,510 --> 00:20:49,230
ja irgendwie. 
Die Kaffeemaschine, dass sie 

415
00:20:49,230 --> 00:20:52,320
sich aufheizt. 
Ja, also das ist ich glaub 

416
00:20:52,320 --> 00:20:53,520
nicht, dass sie sich 
leistungsspannung ist. 

417
00:20:53,520 --> 00:20:54,520
Da kommt noch mal ein Teil 
dazwischen. 

418
00:20:54,520 --> 00:20:57,040
Aber genau wir. 
Müssen irgendwie mal jetzt 

419
00:20:57,040 --> 00:20:58,760
wieder den Bogen kriegen. 
Am Anfang hatten wir die 

420
00:20:58,760 --> 00:21:00,760
Anwendungsbeispiele und dann 
meinte Alex, gäbe es die 

421
00:21:00,760 --> 00:21:03,400
Kaffeemaschine, du hast ein 
Bremssystem im Auto, du hast 

422
00:21:03,400 --> 00:21:06,280
gesagt irgendwas in der 
Medizintechnik, also eigentlich 

423
00:21:06,280 --> 00:21:10,080
überall da wo du ein Gerät hast,
was irgendwo innen drin auch 

424
00:21:10,080 --> 00:21:13,600
Software hat, letzten Endes aber
jetzt kein kein Display oder so 

425
00:21:13,600 --> 00:21:16,240
per se sondern eigentlich eine 
Aufgabe erfüllt. 

426
00:21:16,280 --> 00:21:19,910
Ja genau, also. 
Display ist ein ein Teil des 

427
00:21:19,910 --> 00:21:21,110
Gesamtsystems. 
Das ist eine 

428
00:21:21,110 --> 00:21:25,110
Ausgabeschnittstelle, ne und 
ähm, Knöpfe oder whatever 

429
00:21:25,110 --> 00:21:29,470
Buttons sind Teil des Systems 
Schnittstelle zum Menschen und 

430
00:21:29,470 --> 00:21:31,270
das ist ne Eingabe jetzt. 
Sind wir schon n bisschen 

431
00:21:31,270 --> 00:21:33,150
eingestiegen in die Entwicklung?
Also wie sieht denn so n 

432
00:21:33,150 --> 00:21:35,590
Entwicklungsprozess aus von 
irgendeinem Embedded System und 

433
00:21:35,590 --> 00:21:37,990
mach gern mal ein Beispiel, also
schnappt ihr irgendwas, 

434
00:21:37,990 --> 00:21:41,510
vielleicht kannst du ja anonym 
von einem Kunden erzählen oder 

435
00:21:41,750 --> 00:21:45,270
denkst dir schnell 1 aus, weiß 
nicht neue Kaffeemaschine oder 

436
00:21:45,270 --> 00:21:47,990
neues Auto, neues Bremssystem 
und wie geht's los? 

437
00:21:48,920 --> 00:21:50,760
Wie wird Embedded Software 
entwickelt? 

438
00:21:50,760 --> 00:21:53,320
Was welche Rolle spielt 
Architektur denn dort auch? 

439
00:21:53,320 --> 00:21:54,800
Ja, führ uns doch mal durch 
diesen Prozess. 

440
00:21:54,920 --> 00:21:57,840
Okay dann machen wir mal die 
Kaffeemaschine. 

441
00:21:57,840 --> 00:22:00,000
Ich glaub, das ist schön, das 
versteht jeder. 

442
00:22:01,720 --> 00:22:03,400
Ein Hersteller kommt her und 
sagt, er möchte neue 

443
00:22:03,400 --> 00:22:06,280
Kaffeemaschine. 
Er hat ja ein super Konzept, zum

444
00:22:06,280 --> 00:22:09,560
Beispiel möchte er es besonders 
energiesparend machen oder es 

445
00:22:09,560 --> 00:22:12,680
muss, es kann super schnell 
aufheizen oder was auch immer 

446
00:22:12,880 --> 00:22:18,320
das heißt er hat eine Systemidee
so und dann überlegt er sich 

447
00:22:18,320 --> 00:22:20,870
was. 
System, denn alles können soll, 

448
00:22:20,870 --> 00:22:24,270
beschreibt es auf irgendeine Art
und Weise und. 

449
00:22:25,510 --> 00:22:29,590
Dann kommt man, kommt der 
Systemarchitekt eigentlich ins 

450
00:22:29,590 --> 00:22:31,750
Spiel. 
Erst ne der designt dann das 

451
00:22:31,750 --> 00:22:34,430
System das das heißt der 
entscheidet Oh wo, hier brauch 

452
00:22:34,430 --> 00:22:36,950
ich ne kleine elektronische 
Schaltung um das anzusteuern, 

453
00:22:36,990 --> 00:22:39,990
hier brauch ich das und dann hab
ich hier innen drin meinen 

454
00:22:39,990 --> 00:22:43,310
Microcontroller, wählt dann auch
den Microcontroller passend für 

455
00:22:43,310 --> 00:22:45,990
die Anwendung aus, der wird dann
kein System onechip mit 

456
00:22:45,990 --> 00:22:48,430
irgendwelchen gigantisch 
schnellen Prozessoren nehmen, 

457
00:22:48,430 --> 00:22:50,630
sondern der wird ein ganz 
kleines kostengünstiges. 

458
00:22:52,360 --> 00:22:57,360
Kostengünstigem Meiko Controller
auswählen und dann integrieren 

459
00:22:57,360 --> 00:23:01,320
in quasi so ein Systemdiagramm. 
Also man zeichnet sich zuerst so

460
00:23:01,320 --> 00:23:05,000
ein kleines Diagramm wo man das 
ganze System designt. 

461
00:23:05,790 --> 00:23:10,510
Und mit diesem System geht man 
dann eigentlich her und 

462
00:23:11,310 --> 00:23:13,950
spezifiziert das machen. 
Wir mal n paar Beispiele. 

463
00:23:13,950 --> 00:23:15,510
Also ich will jetzt ne 
Kaffeemaschine, ich will dass 

464
00:23:15,510 --> 00:23:18,110
die WLAN hat weil ich möcht die 
schon aufheizen lassen können, 

465
00:23:18,110 --> 00:23:20,110
ist ne Siebträgermaschine, die 
soll sich schon aufheizen. 

466
00:23:20,270 --> 00:23:23,510
Wenn ich in der Nähe von meinem 
Haus ankomme, nach meiner 

467
00:23:23,510 --> 00:23:26,030
Morgenrunde joggen, ja, dann 
soll das Ding aufheizen, damit 

468
00:23:26,030 --> 00:23:28,630
ich, wenn ich da oben bin, in 
der Wohnung gleich Kaffee machen

469
00:23:28,630 --> 00:23:31,790
kann, ja. 
Genau das heißt, er würde einen 

470
00:23:31,790 --> 00:23:35,990
Microcontroller auswählen, der 
schon eine WLAN, der schon WLAN 

471
00:23:35,990 --> 00:23:39,350
unterstützt ne und dann musst du
an dein Gerät an deine 

472
00:23:39,350 --> 00:23:43,110
Kaffeemaschine n schön schön ne 
ne WLAN ANTENNE irgendwo 

473
00:23:43,110 --> 00:23:45,030
integrieren. 
Und. 

474
00:23:46,870 --> 00:23:49,750
Du, wenn wir jetzt beim WLAN 
bleiben, dann auch beschreiben, 

475
00:23:49,750 --> 00:23:53,510
was es denn jetzt über WLAN oder
über eine LAN Verbindung machen 

476
00:23:53,510 --> 00:23:55,270
soll. 
Also ein Use case musst du 

477
00:23:55,270 --> 00:23:59,190
beschreiben, also sprich. 
Immer wenn ich komme auf mein 

478
00:23:59,190 --> 00:24:01,910
Smartphone drücke oder von von 
unterwegs, schalte ich meine 

479
00:24:01,910 --> 00:24:05,110
Kaffeemaschine ein und das ist 
dann quasi eine 

480
00:24:05,110 --> 00:24:09,030
Systemfunktionalität, die du 
über irgendeine Schnittstelle 

481
00:24:09,030 --> 00:24:11,870
eben reinbringst. 
Das heißt, wenn du zeichnest, 

482
00:24:11,870 --> 00:24:14,310
was du gesagt hast, wenn du dann
quasi den Mikrocontroller 

483
00:24:14,310 --> 00:24:16,230
auswählst und eine WLAN 
Schnittstelle und du das 

484
00:24:16,230 --> 00:24:17,910
irgendwie zeichnest, kann ich 
mir das vorstellen wie beim 

485
00:24:17,910 --> 00:24:20,070
richtigen Architekten, der in 
einem CAD Programm quasi ein 

486
00:24:20,070 --> 00:24:22,750
Haus zeichnet, nur dass du quasi
jetzt hier den Mikrocontroller 

487
00:24:22,750 --> 00:24:26,070
zeichnest als Hardware quasi. 
Und wenn du dann alles 

488
00:24:26,070 --> 00:24:28,790
ausgewählt hast, die ganzen 
Einzelkomponenten den quasi aufs

489
00:24:28,790 --> 00:24:30,830
Blatt Papier oder wahrscheinlich
mit dem richtigen, es gibt 

490
00:24:30,830 --> 00:24:32,680
wahrscheinlich. 
Sehr wahrscheinlich 

491
00:24:33,200 --> 00:24:35,440
hochspezialisierte Programme, 
mit denen man das quasi so wie 

492
00:24:35,440 --> 00:24:37,640
beim CAD Programm Halt designen 
kann. 

493
00:24:38,040 --> 00:24:40,640
Dann suchst du dir eine Firma 
aus, die das Halt sehr günstig 

494
00:24:40,640 --> 00:24:44,000
produzieren kann in einer hohen 
Schlagzahl und dann ist das 

495
00:24:44,000 --> 00:24:47,510
quasi echt ein Stück. 
Also die die ganz kleinen 

496
00:24:47,510 --> 00:24:49,470
Komponenten, die gibt es aus dem
Schrank vielleicht im besten 

497
00:24:49,470 --> 00:24:53,710
Falle aber das das ganze System 
dann dieses Embedded ja das 

498
00:24:53,710 --> 00:24:57,360
Brett. 
Das ist dann das ja, das, das 

499
00:24:57,360 --> 00:25:01,040
ist dann individuell für für die
Kaffeemaschine wird das dann 

500
00:25:01,040 --> 00:25:03,840
gemacht, irgendwo in was weiß 
ich ja und kommt zurückgeschickt

501
00:25:03,840 --> 00:25:07,280
per Post und dann fängst du an 
die die Software darauf zu 

502
00:25:07,280 --> 00:25:10,800
laden, oder? 
Also diesen Sock, den musst du 

503
00:25:10,800 --> 00:25:12,280
ja erst noch auf eine Platine 
bringen. 

504
00:25:12,320 --> 00:25:15,000
Also du brauchst ein Stück 
Elektronikentwicklung, dazu noch

505
00:25:15,000 --> 00:25:17,600
hardwareentwicklung und es muss 
ein bisschen aufpassen. 

506
00:25:17,600 --> 00:25:20,760
Ich bin Software Architekt und 
kann systemarchitekt ja das Mach

507
00:25:20,760 --> 00:25:22,840
nicht ich, sondern ich habe es 
jetzt einfach mal exemplarisch 

508
00:25:22,840 --> 00:25:25,520
beschrieben. 
Also System ist designt. 

509
00:25:25,520 --> 00:25:28,200
Jetzt sagen wir mal die Hardware
ist bestellt und beauftragt und 

510
00:25:28,200 --> 00:25:30,520
man hatte jetzt da ja und der 
Sock ist auf einer Platine. 

511
00:25:31,670 --> 00:25:33,750
Die Software dafür schreiben. 
Wie geht das? 

512
00:25:34,470 --> 00:25:36,870
Zuerst mal ne Software 
Architektur überlegen. 

513
00:25:37,110 --> 00:25:39,190
Wie könntet ihr aussehen? 
Nein, jetzt muss ich mal kurz 

514
00:25:39,190 --> 00:25:41,350
glaub ich Software Architektur 
abholen. 

515
00:25:41,790 --> 00:25:45,830
Es ist so sagen wir mal ne Grube
Strukturierung. 

516
00:25:46,710 --> 00:25:48,870
Dessen, was die Software leisten
soll. 

517
00:25:48,990 --> 00:25:54,070
Und da arbeiten wir ganz gerne 
mit logischen Komponenten, zum 

518
00:25:54,070 --> 00:25:57,710
Beispiel Kaffeemaschine, habe 
ich irgendwas, was meinen 

519
00:25:57,710 --> 00:26:01,110
Durchlauferhitzer oder Boiler 
ansteuert, dass die Temperatur 

520
00:26:01,110 --> 00:26:04,270
hält, dann habe ich vielleicht 
noch irgendwas, wenn ich schon 

521
00:26:04,270 --> 00:26:06,390
weiß, dass das WLAN gibt, dann 
habe ich irgendwas was 

522
00:26:06,390 --> 00:26:09,510
kontrolliert das ein und 
ausschalten der Maschine 

523
00:26:09,790 --> 00:26:13,110
aufgrund irgendwas, das kann ja 
einmal über den Ausschalter 

524
00:26:13,110 --> 00:26:16,310
sein, aber zusätzlich möchte ich
dann eben auch noch über WLAN 

525
00:26:16,310 --> 00:26:18,870
ein Ausschalten, das hat 
natürlich auch verschiedene 

526
00:26:18,870 --> 00:26:21,840
Bedingungen. 
Und die Architektur? 

527
00:26:21,960 --> 00:26:25,040
Die hat ein bestimmtes Muster. 
Es gibt so Software 

528
00:26:25,040 --> 00:26:27,400
Architekturen für 
Kaffeemaschinen, vielleicht 

529
00:26:27,400 --> 00:26:29,960
jetzt ganz passend, und es gibt 
Software Architekturen wie für 

530
00:26:29,960 --> 00:26:31,880
Bild verarbeiten ganz, ganz 
passend sind. 

531
00:26:32,710 --> 00:26:34,950
Und dann gibt es so 
Softwarearchitekturen für 

532
00:26:34,950 --> 00:26:37,390
Systeme, die ich super erweitern
können will. 

533
00:26:39,150 --> 00:26:41,910
Unterscheiden sie sich in den 
Qualitäten? 

534
00:26:41,910 --> 00:26:45,630
Ne, Was möchte ich mit dieser 
Software machen können, weil 

535
00:26:45,630 --> 00:26:50,430
Qualitäten sind so das was nicht
die Funktionen sind, sondern was

536
00:26:50,470 --> 00:26:52,790
eine andere Abstraktionsebene 
ist. 

537
00:26:53,350 --> 00:26:57,270
Ne Software die sehr performant 
ist, hat ne andere Architektur 

538
00:26:57,270 --> 00:27:00,270
wie ne Software die eine 
einfache Benutzeroberfläche 

539
00:27:00,270 --> 00:27:02,070
darstellt. 
Vielleicht, so kann man sich das

540
00:27:02,070 --> 00:27:05,110
entscheiden, so 
Grundorganisationen von Software

541
00:27:05,110 --> 00:27:06,750
ja. 
Eine Sache würde ich gerne noch 

542
00:27:06,750 --> 00:27:08,630
mal vertiefen. 
Wir haben ja auch schon mal in 

543
00:27:08,630 --> 00:27:10,590
unserem Podcast über Funktionen 
gesprochen und über 

544
00:27:10,590 --> 00:27:12,030
grundsätzlich wie Software 
aussieht. 

545
00:27:12,030 --> 00:27:14,830
Da gibt es also bei der 
Software, die wir so als nicht 

546
00:27:14,830 --> 00:27:17,110
Embedded Software benutzen, 
sondern als normale Software sag

547
00:27:17,110 --> 00:27:19,030
ich mal. 
Gibt es sowas wie Klassen und 

548
00:27:19,030 --> 00:27:23,150
Objekte und Funktionen. 
Gibt es das Konzept Funktion 

549
00:27:23,150 --> 00:27:25,670
auch auf diesem Level und wenn, 
dann würde ich nämlich jetzt 

550
00:27:25,670 --> 00:27:28,070
schon sagen, du hast ja das 
Beispiel genannt an und 

551
00:27:28,070 --> 00:27:31,670
ausschalten und ich habe jetzt 
zum Beispiel 2 Möglichkeiten. 

552
00:27:31,670 --> 00:27:33,910
Entweder drücke ich auf den 
Knopf an der Maschine zum an und

553
00:27:33,910 --> 00:27:36,070
ausschalten. 
Oder äh, Garrett schickt 

554
00:27:36,070 --> 00:27:39,350
irgendwie auf dem Telefon das 
anschalten Signal, das heißt 

555
00:27:39,350 --> 00:27:44,230
über 2 unterschiedliche Wege 
kommt jetzt das Event, bitte 

556
00:27:44,230 --> 00:27:47,430
anschalten, rein in die 
Software. 

557
00:27:48,070 --> 00:27:52,430
Und am Ende habe ich aber quasi 
ja nur diesen Boiler Kreislauf, 

558
00:27:52,430 --> 00:27:56,950
wo ich ihm einmal sagen muss, 
jetzt an ja und würde man dann 

559
00:27:56,950 --> 00:27:59,150
auch als Architekt sagen, OK, 
das packen wir irgendwie in der 

560
00:27:59,150 --> 00:28:03,230
Funktion ja irgendwie Boiler an,
könnte die heißen ne oder Heat 

561
00:28:03,230 --> 00:28:07,630
oder heating oder irgend sowas 
und dann designe ich mir das so,

562
00:28:07,630 --> 00:28:11,070
dass ich quasi verschiedene Wege
habe oder verschiedene Events 

563
00:28:11,070 --> 00:28:14,190
habe, die dann auch beide auf 
diese eine Funktion zugreifen 

564
00:28:14,190 --> 00:28:17,190
können, damit ich nicht so ein 
Spaghetti bekomme und dann das 

565
00:28:17,190 --> 00:28:20,150
Anmachen und Hochheizen für den 
Knopf von außen programmieren 

566
00:28:20,150 --> 00:28:22,310
muss und dann nochmal das 
Anmachen und Hochheizen oder 

567
00:28:22,310 --> 00:28:24,950
ausmachen für das WLAN Ding 
machen muss und vielleicht fällt

568
00:28:24,950 --> 00:28:26,710
mir noch was drittes und viertes
ein und dann habe ich irgendwie 

569
00:28:26,710 --> 00:28:30,000
einen Riesencode und Spaghetti. 
Und strukturiere ich also quasi 

570
00:28:30,000 --> 00:28:32,760
dann den Code auch so, dass es 
irgendwie effizient genutzt 

571
00:28:32,760 --> 00:28:35,440
werden kann? 
Ist das auch Rolle des Embedded 

572
00:28:35,880 --> 00:28:39,960
Software Architekten oder ist 
das auf dem Level gar nicht so 

573
00:28:39,960 --> 00:28:42,560
abstrakt zu sehen mit Funktionen
und so weiter, dass das einfach 

574
00:28:42,560 --> 00:28:46,200
noch vom Code her noch 
irgendwie, wie soll ich sagen, 

575
00:28:46,200 --> 00:28:49,480
noch Hardware näher und nicht so
zu nicht so zusammenzufassen wie

576
00:28:49,480 --> 00:28:52,070
ich das gesagt habe? 
Das kannst du schon vergleichen.

577
00:28:52,070 --> 00:28:56,470
Du hast halt ganz viele Dinge, 
die dazu führen, um letztendlich

578
00:28:56,470 --> 00:29:00,270
den Boiler an und auszuschalten.
Du hast so von oben hast du ja 

579
00:29:00,270 --> 00:29:02,790
schon gesagt, es gibt so ein 
Ereignis, aber damit das 

580
00:29:02,790 --> 00:29:06,790
Ereignis eben den Boiler an und 
ausschalten müsste, sind noch 

581
00:29:06,790 --> 00:29:10,030
ganz schöne Menge, andere 
Bedingungen müssen erfüllt sein,

582
00:29:10,310 --> 00:29:13,150
das heißt in der Architektur 
wird zuerst eine Komponente 

583
00:29:13,150 --> 00:29:15,990
machen und sagen okay diese 
Architekten, diese Komponente 

584
00:29:15,990 --> 00:29:19,430
ist für das Ansteuern des 
Boilers verantwortlich, das ist 

585
00:29:19,430 --> 00:29:23,350
jetzt. 
Von der Abstraktionsebene größer

586
00:29:23,590 --> 00:29:26,750
als eine Klasse eine einzelne, 
sondern es ist einfach mal so 

587
00:29:26,750 --> 00:29:30,430
ein Aufgabenbereich. 
Dann habe ich aber noch eben die

588
00:29:30,430 --> 00:29:33,990
anderen Aufgabenbereiche und 
dann habe ich so Schnittstellen 

589
00:29:33,990 --> 00:29:37,230
zwischen diesen verschiedenen 
Bereichen der Software und das 

590
00:29:37,230 --> 00:29:39,910
ist das, was man so quasi als 
Architektur bezeichnet. 

591
00:29:39,910 --> 00:29:44,110
Ich als Architekt entwickle mit 
dem Team so eine Vision und sage

592
00:29:44,110 --> 00:29:46,470
okay wie wollen wir unsere 
Software strukturieren, wir alle

593
00:29:46,470 --> 00:29:50,790
kennen schon die ganzen 
Anforderungen und dann kümmer. 

594
00:29:51,070 --> 00:29:53,150
Ich, dass die Schnittstellen 
stimmen, ne das dann alles 

595
00:29:53,150 --> 00:29:56,870
gedacht ist was es können muss, 
aber die das Team das ist 

596
00:29:56,870 --> 00:30:00,430
entwickelt, das kümmert sich 
dann wirklich ums Codieren, um 

597
00:30:00,430 --> 00:30:03,550
das Austesten, um das auf das 
Gerät bringen. 

598
00:30:03,710 --> 00:30:06,150
Das Wichtige ist, dass wir beide
natürlich das gleiche Bild 

599
00:30:06,150 --> 00:30:07,910
haben, der Architekt und das 
Team. 

600
00:30:08,750 --> 00:30:11,310
Gut, dann entsteht diese 
Software, wie auch immer. 

601
00:30:11,430 --> 00:30:14,870
Ob man sich da wiederholt in den
Funktionen oder ob man da Dinge 

602
00:30:14,870 --> 00:30:16,670
wiederholt, wenn das Bucket 
fällt weiß hast du auch eine 

603
00:30:16,670 --> 00:30:19,630
Ahnung, ich weiß nicht wie ihr 
bei der Software geschrieben 

604
00:30:19,630 --> 00:30:21,190
wird, hast du mal? 
Hast du mal Embedded Software 

605
00:30:21,190 --> 00:30:23,790
geschrieben Burkhard so 
Rumgefragt außer für Arduino. 

606
00:30:24,640 --> 00:30:26,920
Nee, ich habe nur, also 
tatsächlich nur als Hardware, 

607
00:30:26,920 --> 00:30:30,720
nur diese Arduino Sachen da 
gehabt, aber auch da kannst du 

608
00:30:30,720 --> 00:30:33,000
ja auch unter dieses Level, was 
ich gerade gesagt habe, Setup 

609
00:30:33,000 --> 00:30:36,160
und Loop, das ist natürlich, da 
machst du die Anwender Software.

610
00:30:36,160 --> 00:30:38,840
Ich habe aber mal eine 
Bibliothek geschrieben für das 

611
00:30:38,840 --> 00:30:42,480
Arduino und das geht sehr wohl, 
also ging bei Arduino sehr wohl 

612
00:30:42,600 --> 00:30:44,880
mit der Programmiersprache C 
plus plus, die ja voll in der 

613
00:30:44,880 --> 00:30:47,200
Lage ist Funktionen, Objekte, 
Klassen und so weiter 

614
00:30:47,200 --> 00:30:50,120
darzustellen und genau und da 
musste ich mir eigentlich 

615
00:30:50,120 --> 00:30:52,160
ähnliche Fragen stellen wie über
der normalen Software 

616
00:30:52,160 --> 00:30:54,880
Entwicklung sich das so gut 
Strukturiere und 

617
00:30:54,880 --> 00:30:58,190
zusammenbastelt, dass. 
Dass ich nen möglichst kurzen, 

618
00:30:58,190 --> 00:31:00,950
effizienten und sehr wartbaren 
Code habe. 

619
00:31:00,950 --> 00:31:04,190
Ja, ich weiß nicht inwieweit ich
also was was ich gehört habe ist

620
00:31:04,190 --> 00:31:06,070
ja, dass die die 
Hardwareentwicklung, die geht ja

621
00:31:06,070 --> 00:31:08,030
immer weiter voran, also wir 
können ja heute auf viel 

622
00:31:08,030 --> 00:31:11,910
kleinerem Raum, auch wenn es 
embedded ist, schon viel mehr 

623
00:31:12,070 --> 00:31:15,070
schaffen und auch bei niedriger 
Energieeffizienz und so weiter. 

624
00:31:16,910 --> 00:31:19,150
Dann sind so sprachen wie C, 
Plus, Plus oder C. 

625
00:31:19,150 --> 00:31:22,390
Ich glaube C ist ja so der UR 
Standard oder C plus Plus sind 

626
00:31:22,390 --> 00:31:24,710
glaube ich schon auch Sprachen 
mit dem, mit denen solche 

627
00:31:24,710 --> 00:31:26,230
Kaffeemaschinen programmiert 
werden oder? 

628
00:31:26,230 --> 00:31:28,590
Und dann habe ich ja die, habe 
ich das in der Hand oder ist das

629
00:31:28,590 --> 00:31:30,510
oder gibt es noch andere 
Programmiersprachen, sage ich 

630
00:31:30,510 --> 00:31:32,990
mal für. 
Für Embedded Systeme. 

631
00:31:33,110 --> 00:31:36,390
Es ist im Endeffekt nicht mehr 
als die Programmiersprache da, 

632
00:31:36,470 --> 00:31:39,390
da gehört nicht mehr dazu. 
Ne, ich hab ja nur eine Sprache,

633
00:31:39,390 --> 00:31:42,630
ich hab einen Compiler und der 
übersetzt das in Maschinencode 

634
00:31:42,630 --> 00:31:45,710
und einfach ne interessante 
Erkenntnis die den Maschinencode

635
00:31:45,710 --> 00:31:49,350
sieht es nicht mehr an ob der NC
Plus Plus in C oder in anderen 

636
00:31:49,350 --> 00:31:51,390
Programmiersprachen geschrieben 
ist. 

637
00:31:52,390 --> 00:31:55,950
Und jetzt die zweite Frage nach 
der Programmiersprache. 

638
00:31:55,990 --> 00:31:57,910
Ja, C und C plus Plus sind die 
angestammten. 

639
00:31:57,910 --> 00:32:01,110
Ganz früher waren wir Assembler,
aber das kommt nur noch ganz 

640
00:32:01,110 --> 00:32:04,790
selten zum Einsatz und Rust, 
also eine Programmiersprache, 

641
00:32:04,790 --> 00:32:10,030
die sich so gerade erhebt und. 
Sage ich mal den Einzug anfängt.

642
00:32:10,310 --> 00:32:13,670
Klar, man kann auch Java 
natürlich auf so einem Embedded 

643
00:32:13,670 --> 00:32:16,390
System laufen, dass mich mein 
Arduino kannst du bestimmt auch 

644
00:32:16,390 --> 00:32:18,630
mit Java programmieren, nehme 
ich mal an. 

645
00:32:19,550 --> 00:32:22,310
Du hast halt dann immer so ein 
bisschen Overhead, da wird ja 

646
00:32:22,310 --> 00:32:25,270
das Speicherprogrammspeicher 
einfach benötigt. 

647
00:32:25,270 --> 00:32:27,950
Wenn du komplexe oder 
abstraktere Programmiersprachen 

648
00:32:27,950 --> 00:32:32,070
oder wie Python oder was auch 
immer auf so einen Chat drauf 

649
00:32:32,070 --> 00:32:33,790
haben möchtest. 
Vielleicht Haken wir das noch 

650
00:32:33,790 --> 00:32:35,190
mal fest. 
Ich wiederhole das mal. 

651
00:32:35,190 --> 00:32:37,070
Ich glaube, das ist ein ganz 
wichtiges Konzept, was 

652
00:32:37,270 --> 00:32:38,710
vielleicht unsere Hörer mitgeben
können. 

653
00:32:38,710 --> 00:32:42,070
Also das Konzept des Compilers. 
Und weil du sagst es, dann ist 

654
00:32:42,070 --> 00:32:44,190
es eigentlich egal. 
Das sehe ich ja genauso, also 

655
00:32:44,190 --> 00:32:46,510
wir haben, was ist denn noch mal
genau der Compiler, also wir 

656
00:32:46,510 --> 00:32:48,830
haben eine Programmiersprache 
CDA C plus plus, das ist wie 

657
00:32:48,830 --> 00:32:51,190
Englisch oder Französisch, ja EC
plus plus sage ich immer so ein 

658
00:32:51,190 --> 00:32:54,750
bisschen eher wie Latein. 
Den Entwickler schon ziemlich 

659
00:32:54,750 --> 00:32:57,590
haarig, ja, aber trotzdem 
irgendwie ne Sprache, die man 

660
00:32:57,590 --> 00:32:59,470
als Mensch irgendwie 
komprimieren kann. 

661
00:32:59,470 --> 00:33:02,550
Also kann man verstehen, kann 
man lesen und so weiter was man 

662
00:33:02,550 --> 00:33:04,030
nicht mehr kann ist das was dann
passiert. 

663
00:33:04,030 --> 00:33:07,350
Der Compiler der C plus plus 
Compiler nimmt diese quasi in so

664
00:33:07,350 --> 00:33:10,550
ne Art englische geschriebene 
Sprache, die man noch als 

665
00:33:10,550 --> 00:33:13,710
Entwickler verstehen kann und 
komprimiert das in wirklich eine

666
00:33:13,710 --> 00:33:17,030
Abfolge von 100 Nullen im 
Binärpaket und zwar jetzt ist 

667
00:33:17,030 --> 00:33:20,790
wichtig, es gibt der gleiche 
Stückcode kann im Prinzip mit 

668
00:33:20,790 --> 00:33:22,830
unterschiedlichen Einstellungen 
des Compilers. 

669
00:33:23,950 --> 00:33:26,750
Verschiedene Hardware fertig 
gemacht werden, so dass es dann 

670
00:33:26,750 --> 00:33:30,190
da gut läuft, das ist wichtig. 
Also da steckt total viel Know 

671
00:33:30,190 --> 00:33:34,150
How in dem Compiler ein, ein ein
binäres Bündel zu schaffen, ein 

672
00:33:34,150 --> 00:33:36,950
Maschinencode, nämlich der 
Mikrocontroller, der versteht 

673
00:33:36,950 --> 00:33:38,750
nur Einsen und Nullen, ne der 
versteht nicht mehr hier 

674
00:33:38,750 --> 00:33:41,670
irgendwie IF Thunder Else oder 
irgend sowas, ja der versteht 

675
00:33:41,670 --> 00:33:44,230
nur diese Einsen und Nullen im 
Bündel und zwar auch nur so, 

676
00:33:44,230 --> 00:33:48,070
wenn sie für seine Architektur 
richtig zusammenkondensiert 

677
00:33:48,070 --> 00:33:51,230
wurden und dieses und dieses 
Kompilieren, das kann ich noch 

678
00:33:51,230 --> 00:33:53,550
machen, überall irgendwo auf 
meinem Laptop. 

679
00:33:54,960 --> 00:33:58,120
Und aber dieses binäre Bündel, 
was da rauskommt, das ist dann 

680
00:33:58,120 --> 00:34:02,200
nur noch ausführbar für die 
Embedded Hardware, für die es 

681
00:34:02,200 --> 00:34:04,560
dann halt quasi gedacht habe. 
Und dahin lege. 

682
00:34:05,440 --> 00:34:08,920
Ich glaube, das ist wichtig, ja 
hak mich hak ein Alex, wenn ich 

683
00:34:09,040 --> 00:34:12,440
zu stark vereinfacht habe er. 
Versteht nicht Nullen und 

684
00:34:12,440 --> 00:34:15,120
einzelne, weil das wäre ja sehr 
binär, würde ja nur Nullen 1 

685
00:34:15,120 --> 00:34:19,000
verstehen, sondern er hat eigene
Befehle, die er versteht. 

686
00:34:19,040 --> 00:34:23,440
Instruction Set, Ich weiß es 
nicht genau, die Risk 

687
00:34:23,440 --> 00:34:25,909
Prozessoren. 
So ganz spezielle Prozessoren, 

688
00:34:25,909 --> 00:34:29,630
ob die jetzt 2030 40 Befehle 
haben, was sie verstehen, weil 

689
00:34:29,630 --> 00:34:33,030
was machen die, die Schreiben 
irgendeinen Wert an irgendeine 

690
00:34:33,030 --> 00:34:36,949
Stelle oder Register im CPU dann
berechnen können Sie ja schon, 

691
00:34:36,949 --> 00:34:38,750
also die können ja schon 
bisschen so mathematische 

692
00:34:38,750 --> 00:34:42,790
Operationen durchführen und und 
und du. 

693
00:34:43,030 --> 00:34:45,270
Denselben Compiler für 
unterschiedliche Hardware, 

694
00:34:45,270 --> 00:34:47,790
sondern du nimmst einen 
Compiler, der ne spezielle 

695
00:34:47,790 --> 00:34:51,270
Hardware unterstützt um diese 
Instruktionen herzustellen als 

696
00:34:51,270 --> 00:34:52,750
Programm. 
OK, perfekt. 

697
00:34:52,750 --> 00:34:54,790
Das heißt du sagst der 
Mikrocontroller hat ein 

698
00:34:54,790 --> 00:34:57,030
minimales Set, das hatten wir 
auch mal ne Folge, das stimmt. 

699
00:34:57,790 --> 00:35:01,990
Von von ganz unten an der Low 
levelten Kante irgendwie 

700
00:35:01,990 --> 00:35:03,950
befehlen. 
Das sind vielleicht nur 1020 

701
00:35:03,950 --> 00:35:07,150
oder irgendsowas und die wilde 
Kombination und die richtige 

702
00:35:07,150 --> 00:35:10,670
Abfolge von diesen Befehlen 
führt am Ende zu einer komplexen

703
00:35:10,670 --> 00:35:14,230
Logik und. 
Und und diese, und zwar zu der 

704
00:35:14,230 --> 00:35:16,550
komplexen Logik, die ich da mal 
in C plus Plus oder C 

705
00:35:16,550 --> 00:35:19,710
ausgedrückt hatte. 
Ja exakt der Übergang zwischen 

706
00:35:20,190 --> 00:35:23,390
der Hochsprache, die wir als 
Mensch verstehen und der 

707
00:35:23,550 --> 00:35:27,270
wirklich low Level Sprache, die 
dann noch der der CPU versteht, 

708
00:35:27,270 --> 00:35:29,310
oder der Mikrocontroller hat, 
das Macht der Compiler, dann 

709
00:35:29,550 --> 00:35:31,390
haben wir das mal festgehalten, 
das ist gut. 

710
00:35:31,750 --> 00:35:35,310
Dann steht ja eine wichtige 
Rolle nach dem während der 

711
00:35:35,310 --> 00:35:37,590
Entwicklung eigentlich schon, 
aber auch danach, dass das 

712
00:35:37,590 --> 00:35:41,390
Testen und die Backen die Backen
eher während der Entwicklung. 

713
00:35:41,750 --> 00:35:44,110
Wie funktioniert das mit so 
einem System oder mit einem 

714
00:35:44,110 --> 00:35:46,510
Mikrocontroller, weil es ist ja 
wahrscheinlich einen Tick anders

715
00:35:46,510 --> 00:35:49,630
als am Computer ist. 
Forderung und dann anschließend 

716
00:35:49,630 --> 00:35:52,590
die Frage, wie kommt das Stück 
Software, was denn da entwickelt

717
00:35:52,590 --> 00:35:55,550
wurde auf hunderttausend 
Kaffeemaschinen, ja die dann 

718
00:35:55,550 --> 00:35:57,150
vielleicht produziert werden 
oder noch mehr. 

719
00:35:57,310 --> 00:36:00,350
Wie funktioniert das? 
OK, also wenn du deine große 

720
00:36:00,350 --> 00:36:03,350
Aufgabe in Kaffeemaschinen in 
viele kleine Aufgaben 

721
00:36:03,470 --> 00:36:05,310
schneidest. 
Du hast die Architektur, du 

722
00:36:05,310 --> 00:36:09,430
weißt die Schnittstellen, also 
du weißt, wie dein Stück Code, 

723
00:36:09,430 --> 00:36:13,790
das du schreiben möchtest, 
auszusehen hat, dann machst du 

724
00:36:13,790 --> 00:36:16,190
das heute eigentlich so 
Testgetrieben, das heißt, dieses

725
00:36:16,190 --> 00:36:18,670
kleine Stückchen, das du 
schreibst, da schreibst du einen

726
00:36:18,670 --> 00:36:21,230
Test dazu und testerwartungen, 
das heißt, wenn ich. 

727
00:36:22,190 --> 00:36:25,750
Schöne Dinge ausführe, möchte 
ich als Ergebnis das haben und. 

728
00:36:27,560 --> 00:36:30,520
So organisierst du dann deine 
Entwicklung und wenn du diesen 

729
00:36:30,560 --> 00:36:33,440
diesen Testcode dann geschrieben
hast, dann integrierst du den in

730
00:36:33,440 --> 00:36:37,000
das bestehende in die bestehende
Architektur und testest es dann 

731
00:36:37,000 --> 00:36:40,160
auch auf der Hardware damit. 
Wenn ich jetzt hier mal. 

732
00:36:42,280 --> 00:36:44,680
Meinen Boiler einschalten 
möchte, dass der auch hinten 

733
00:36:44,680 --> 00:36:48,000
wirklich anschallt und das nennt
man dann so eine Software 

734
00:36:48,000 --> 00:36:52,270
Hardware integrationstest. 
Ähm. 

735
00:36:54,040 --> 00:36:55,840
In der industriellen 
professionellen Entwicklung gibt

736
00:36:55,840 --> 00:36:59,240
es jetzt solche sogenannte 
Systeme dazu, die das, wenn du 

737
00:36:59,240 --> 00:37:02,160
eine Änderung am Code machst, 
möchtest du ja auch 

738
00:37:02,160 --> 00:37:05,720
ausschließen, dass du dadurch 
andere Programmteile 

739
00:37:05,720 --> 00:37:09,360
beeinflusst. 
Und dann gibt es ein CI System, 

740
00:37:09,360 --> 00:37:12,800
das heißt da gibt es ein 
Testsystem, wo 12 

741
00:37:12,800 --> 00:37:14,160
Kaffeemaschinen mit 
unterschiedlichen 

742
00:37:14,160 --> 00:37:17,360
Softwareständen, 
unterschiedlichen Ausbaustufen 

743
00:37:17,440 --> 00:37:21,520
drin ist und sprich die Software
auf und das wird getestet, 

744
00:37:21,880 --> 00:37:25,240
soweit als möglich ist immer 
schwierig Hardware. 

745
00:37:25,430 --> 00:37:28,830
Zu erfassen, das heißt so ein 
Thermometer dann auch ins Wasser

746
00:37:28,830 --> 00:37:30,470
reinzuhalten. 
Es wird ja auch sehr langwierig 

747
00:37:30,470 --> 00:37:32,750
sein. 
Aber gibt es andere Test 

748
00:37:33,710 --> 00:37:36,110
Ausstattung um das zu 
ermöglichen, das heißt? 

749
00:37:36,710 --> 00:37:40,790
Änderungen an der Software 
werden in einen, in einen in 

750
00:37:40,790 --> 00:37:43,510
einen Softwareänderungsstand 
eingepflegt und getestet und das

751
00:37:43,510 --> 00:37:47,790
wird dann automatisiert gemacht.
Wenn du dann irgendwann mal so 

752
00:37:47,790 --> 00:37:50,430
deine kleinen vielen kleinen 
Aufgaben fertig hast und du bist

753
00:37:50,430 --> 00:37:53,790
eigentlich sicher, dass es jetzt
deine Kaffeemaschine fertig ist,

754
00:37:53,790 --> 00:37:55,510
dann machst du so einen 
Systemtest. 

755
00:37:56,030 --> 00:37:58,510
Du hast am Anfang dir ja 
aufgeschrieben, das muss meine 

756
00:37:58,510 --> 00:38:00,590
Kaffeemaschine alles können und 
wenn ich dann mit dem Auto 

757
00:38:00,590 --> 00:38:04,230
herfahre und auf WLAN über WLAN 
hier die Kaffeemaschine 

758
00:38:04,230 --> 00:38:06,750
einschalte, muss das auch alles 
erfolgen das. 

759
00:38:07,430 --> 00:38:09,470
Auch nochmal alles manuell 
nachtesten und dann machst du 

760
00:38:09,470 --> 00:38:10,910
einen Knopf dran. 
Dann sagst du jetzt ist meine 

761
00:38:10,910 --> 00:38:13,950
Software fertig. 
Diese fertige Software kannst du

762
00:38:13,950 --> 00:38:16,990
ja aus deinem Programmcode 
jederzeit herstellen und es gibt

763
00:38:16,990 --> 00:38:19,310
dann während der Produktion der 
Kaffeemaschine. 

764
00:38:19,950 --> 00:38:23,110
Den Schritt, den auch der 
Burkhard macht, nämlich. 

765
00:38:23,110 --> 00:38:26,150
Er bringt uns seine Software auf
das Gerät drauf, das nennt man 

766
00:38:26,150 --> 00:38:29,430
oft flashen, weil es in diesen 
persistenten Speicher 

767
00:38:29,430 --> 00:38:32,630
reinschreibt, und dann ist da 
eine Kaffeemaschine fertig, kann

768
00:38:32,630 --> 00:38:35,270
rausgeschickt werden. 
Und das Flashen passiert dann 

769
00:38:35,830 --> 00:38:38,670
sehr schnell und in irgendeinem 
Produktionsschritt einfach in 

770
00:38:38,670 --> 00:38:40,070
der Produktion der 
Kaffeemaschine. 

771
00:38:40,230 --> 00:38:42,470
Das ist so schön, dass du sagst,
und dann machst du einen Knopf 

772
00:38:42,470 --> 00:38:44,350
dran und dann ist die Software 
fertig. 

773
00:38:44,990 --> 00:38:47,350
Ich glaube, das ist auch ein 
Unterschied von, also bei 

774
00:38:47,350 --> 00:38:49,830
Embedded zu normaler Software, 
die ist nämlich gefühlt nie 

775
00:38:49,830 --> 00:38:52,760
fertig. 
Gerade wenn wir jetzt, ich 

776
00:38:52,760 --> 00:38:56,120
spanne mal kurz zum Web rüber, 
da ist ja eine Software, die 

777
00:38:56,120 --> 00:38:58,720
lebt ja davon, dass die ganz 
viele Abhängigkeiten hat und 

778
00:38:59,080 --> 00:39:02,720
also der Browser die ganzen 
Sicherheitsbibliotheken und und 

779
00:39:02,720 --> 00:39:04,680
und. 
Pdf, Verarbeitung und so weiter 

780
00:39:04,840 --> 00:39:07,640
und alles das verändert sich ja 
in Lichtgeschwindigkeit um dich 

781
00:39:07,640 --> 00:39:10,360
herum, das heißt du musst 
ständig deine Software wieder 

782
00:39:10,360 --> 00:39:13,240
anfassen, wieder aufmachen, nur 
alleine um sie sicher zu halten 

783
00:39:13,240 --> 00:39:15,000
und um die neuesten Patches 
einzuspielen und 

784
00:39:15,000 --> 00:39:17,520
Sicherheitsglück die gefunden 
wurden habe ich nicht das 

785
00:39:17,520 --> 00:39:20,800
Problem bei Embedded Systems, 
weil die Hardware und alles um 

786
00:39:20,800 --> 00:39:23,470
mich rum ist ja festgezömert. 
Ist halt die Kaffeemaschine. 

787
00:39:23,470 --> 00:39:26,350
Ja, und das ist natürlich n ganz
schönes Gefühl, dass dann 

788
00:39:26,350 --> 00:39:28,710
irgendwann mal alles getestet 
ist, funktioniert und dann 

789
00:39:28,710 --> 00:39:31,350
funktioniert es im besten falle,
sofern der Akku noch hält und 

790
00:39:31,350 --> 00:39:33,230
alles irgendwie von der 
Elektronik sauber ist, auch noch

791
00:39:33,230 --> 00:39:35,790
die nächsten 40 Jahre oder schon
ganz cool. 

792
00:39:35,790 --> 00:39:37,390
Ja so. 
Ist die Bauteile noch gibt 

793
00:39:37,390 --> 00:39:41,790
natürlich ne. 
Ja und Nein. 

794
00:39:41,870 --> 00:39:43,870
Es ist manchmal so, manchmal 
auch nicht. 

795
00:39:44,150 --> 00:39:47,150
Es gibt ja auch komplexere 
Dinge, wenn du Betriebssysteme 

796
00:39:47,150 --> 00:39:49,790
drin hast, zum Beispiel Linux, 
es gibt ja auch Embedded 

797
00:39:49,790 --> 00:39:52,750
Windows, es gibt ja was auch 
immer, und die haben natürlich 

798
00:39:52,750 --> 00:39:57,080
auch sicherheitslippen. 
Die müssen natürlich dann auch 

799
00:39:57,080 --> 00:39:59,760
fixen, und das heißt, du musst 
dann auch ein Update reinbringen

800
00:39:59,760 --> 00:40:02,560
und das musst du dir halt eine 
Software Architektur dann auch 

801
00:40:02,560 --> 00:40:04,200
überlegen. 
Mache ich ein Betriebssystem 

802
00:40:04,200 --> 00:40:07,920
rein, wenn ja welches und warum 
und das sind alles so Aufgaben 

803
00:40:07,920 --> 00:40:11,560
so Architektur Entscheidungen 
die Software Architekt eben 

804
00:40:12,440 --> 00:40:14,760
irgendwann mal fällen muss. 
Warum sollte ich denn das 

805
00:40:14,760 --> 00:40:16,400
machen? 
Also tatsächlich bringst du mich

806
00:40:16,400 --> 00:40:21,000
jetzt auf was ich warte mal mit 
Android und Embedded an Android 

807
00:40:21,000 --> 00:40:22,720
auch in Anführungsstrichen zu 
tun in der Vergangenheit. 

808
00:40:23,830 --> 00:40:27,790
Und auch n Windows wie auch n 
Android oder sowas ist ja dazu 

809
00:40:27,790 --> 00:40:29,830
in der Lage. 
Viele verschiedene Programme 

810
00:40:29,830 --> 00:40:33,230
oder Apps auszuführen. 
Und das hatte ich verstanden auf

811
00:40:33,230 --> 00:40:34,710
einem Embedded System. 
Das war eigentlich genau ein 

812
00:40:34,710 --> 00:40:37,910
Programm, was zum Beispiel ne 
Kaffeemaschine regelt oder sowas

813
00:40:38,110 --> 00:40:40,070
warum wie komm wieso komm ich 
jetzt auf die Idee im 

814
00:40:40,070 --> 00:40:42,030
Betriebssystem da drunter zu 
packen? 

815
00:40:42,350 --> 00:40:45,390
Es kommt auf die Komplexität des
Problems an, des der löst. 

816
00:40:45,670 --> 00:40:47,390
Wenn du nur ne Kaffeemaschine 
stehst. 

817
00:40:47,790 --> 00:40:50,550
Ich glaub du wirst kein 
Betriebssystem dazu nehmen, 

818
00:40:50,550 --> 00:40:53,590
dieser Programmablauf, den 
kannst du schon selber komplett 

819
00:40:53,590 --> 00:40:56,270
implementieren und das sagt man 
auch, das sind bare Metal, sind 

820
00:40:56,270 --> 00:41:01,270
also so wirklich direkt auf der 
Hardware und sonst nix so aber 

821
00:41:01,270 --> 00:41:06,310
denk mal an. 
System im im im mcdonalds oder 

822
00:41:06,310 --> 00:41:08,150
Burger King wo ich wo ich meinen
Kram bestelle. 

823
00:41:10,270 --> 00:41:12,590
Wenn ich dahin gehe. 
Ja, schon eher ne. 

824
00:41:12,590 --> 00:41:15,310
Wenn du zum Beispiel viel Grafik
brauchst. 

825
00:41:15,310 --> 00:41:17,830
Du brauchst parallele Prozesse, 
du hast viele Dinge, die 

826
00:41:17,830 --> 00:41:20,870
miteinander vernetzt sind. 
Im Traktor vielleicht so ein so 

827
00:41:20,870 --> 00:41:24,910
ein Ja auf dem Feld gerade das 
sind doch da sind doch total die

828
00:41:24,910 --> 00:41:27,110
Kassen Displays drin und so 
weiter und das muss ja mit allem

829
00:41:27,110 --> 00:41:29,910
irgendwie Kurbelwelle enden und 
irgendwie Trecker. 

830
00:41:30,190 --> 00:41:34,110
Du magst noch ein GPS dran? 
Genau und was auch immer und 

831
00:41:34,110 --> 00:41:36,830
wenn du dann auch noch 
verschiedene verschiedene 

832
00:41:36,830 --> 00:41:41,030
Prozesse hast, mit denen du 
kommunizieren musst, also je 

833
00:41:41,030 --> 00:41:44,830
komplexer dein Problem. 
Desto eher nimmst du dann noch 

834
00:41:44,830 --> 00:41:48,350
ein Betriebssystem rein, weil es
einfach schon viel eingebaut hat

835
00:41:48,350 --> 00:41:51,470
und weil es dir die 
Hardwareabstraktion wegnimmt, 

836
00:41:51,470 --> 00:41:55,560
ne? 
Wenn du ne Hardware von 

837
00:41:55,560 --> 00:41:58,680
Betriebssystem unterstützt wird,
dann brauchst du keine Treiber 

838
00:41:58,680 --> 00:42:00,840
zu schreiben, also keine 
Software Schicht die direkte 

839
00:42:00,840 --> 00:42:03,000
Hardware ansteuert, sondern das 
hat schon mal jemand anders für 

840
00:42:03,000 --> 00:42:05,080
dich gemacht. 
Verstehe das, spart ja unter 

841
00:42:05,080 --> 00:42:07,280
Umständen. 
Also Zeit in der Entwicklung und

842
00:42:07,280 --> 00:42:08,760
es öffnet dir hinten raus 
vielleicht auch noch mehr 

843
00:42:08,760 --> 00:42:10,880
Möglichkeiten, weil du auch so 
ein Betriebssystem ja auch 

844
00:42:11,160 --> 00:42:13,200
vielleicht noch mal eine neue 
App drauf packen kannst oder 

845
00:42:13,200 --> 00:42:15,400
sowas. 
Im Betriebssystem ist wie zum 

846
00:42:15,400 --> 00:42:18,960
Beispiel Embedded Linux. 
Dann kannst du die ganzen Tools 

847
00:42:18,960 --> 00:42:21,800
und Utilities von Linux 
benutzen, was deine Entwicklung 

848
00:42:21,800 --> 00:42:25,160
viel geschmeidiger macht, viel 
schneller macht, als wenn du 

849
00:42:25,480 --> 00:42:28,800
wirklich auf dem Microcontroller
direkt wie auf dem Arduino mit 

850
00:42:28,800 --> 00:42:31,200
der ide Programmierst. 
Gibt. 

851
00:42:31,320 --> 00:42:33,400
Irgendwelche Zukunftsaussichten 
also? 

852
00:42:33,400 --> 00:42:37,240
Wie verändern sich Embedded 
Systems in der Zukunft, wenn sie

853
00:42:37,240 --> 00:42:39,040
sich dann verändern? 
Ja, ich habe jetzt gehört, dass 

854
00:42:39,040 --> 00:42:42,160
ja doch eigentlich überall 
Betriebssysteme reinkommen und 

855
00:42:42,360 --> 00:42:44,000
wirkt dann irgendwie alles schon
so ein bisschen wie ein. 

856
00:42:44,790 --> 00:42:47,310
Smartphone in anderer Form ja, 
bin ich da richtig in der 

857
00:42:47,310 --> 00:42:48,710
Annahme oder ist das eigentlich 
ganz anders? 

858
00:42:48,990 --> 00:42:51,190
Ich weiß nicht, ob ihr es 
mitgekriegt habt, aber die 

859
00:42:51,830 --> 00:42:54,310
Verschmelzung von Mensch und 
Maschine, das ist ja wirklich so

860
00:42:54,310 --> 00:43:00,070
ein Ding, das ja Science. 
Immer, ähm, Beredet wird aber 

861
00:43:00,310 --> 00:43:04,470
jetzt kürzlich aufs Unternehmen,
die diese die Chips ins 

862
00:43:04,470 --> 00:43:07,030
menschliche Gehirn eingepflanzt 
haben. 

863
00:43:07,030 --> 00:43:10,910
Das sind natürlich Embedded 
Systeme und die es ermöglicht, 

864
00:43:10,910 --> 00:43:14,030
dann für medizinische 
Anwendungen, dass Patienten 

865
00:43:14,030 --> 00:43:17,550
allein über ihre Gedanken 
gehirnströme wird vom Embedded 

866
00:43:17,550 --> 00:43:22,950
System wahrgenommen, andere 
Geräte steuern können oder auch 

867
00:43:22,950 --> 00:43:26,670
Prothesen ansteuern. 
Also das ist zwar wirklich ganz 

868
00:43:26,790 --> 00:43:29,430
ganz jung, aber diese 
medizinischen Anwendungen, die 

869
00:43:29,430 --> 00:43:32,430
gibt es schon und die 
funktionieren auch. 

870
00:43:33,430 --> 00:43:38,270
Immer besser also, das ist 
Horror, aber auch ja eine 

871
00:43:38,270 --> 00:43:41,950
Möglichkeit, um Menschen zu 
helfen, ihre Defizite einfach 

872
00:43:41,950 --> 00:43:44,870
auszugleichen. 
Und das finde ich schon auch 

873
00:43:44,870 --> 00:43:47,110
sehr spannend. 
Ich glaube, man muss halt 

874
00:43:47,110 --> 00:43:50,710
wirklich. 
Sehr genau hinschauen, was man 

875
00:43:50,710 --> 00:43:53,030
erlaubt und was man nicht 
erlaubt oder was man machen 

876
00:43:53,030 --> 00:43:55,110
möchte oder nicht machen möchte 
mit dieser Technologie. 

877
00:43:55,670 --> 00:43:57,910
OK, und das klingt jetzt ja 
erstmal so, als würde es den 

878
00:43:57,910 --> 00:44:00,550
Menschen helfen und klingt 
irgendwie auch ziemlich viel 

879
00:44:00,550 --> 00:44:04,360
cooler als ne Kaffeemaschine. 
In der Tat. 

880
00:44:04,360 --> 00:44:06,840
Aber klar, das ist dann wirklich
so speziell o. 

881
00:44:07,000 --> 00:44:09,720
K, das heißt n Embedded System, 
was wirklich in der Lage dazu 

882
00:44:09,720 --> 00:44:14,200
ist, die Eingangssignale des 
Körpers aufzunehmen und dann 

883
00:44:14,840 --> 00:44:17,520
Aktoren in irgendeiner Art 
Implantat oder eine Prothese 

884
00:44:17,520 --> 00:44:18,960
oder sowas zu bewegen. 
So. 

885
00:44:19,000 --> 00:44:24,440
Exakt natürlich anlernen und. 
Wenn man dann an lernen denkt, 

886
00:44:24,440 --> 00:44:27,440
da ist natürlich auch sehr 
schnell bei der KI, weil es gibt

887
00:44:27,440 --> 00:44:32,040
natürlich auch KI auf Embedded 
Systeme, die sehr auf dem 

888
00:44:32,600 --> 00:44:35,440
Vormarsch sind. 
Ok, da würde ich jetzt 

889
00:44:35,440 --> 00:44:36,760
vielleicht auch noch eine 
Sekunde bleiben. 

890
00:44:36,760 --> 00:44:39,680
Also das heißt, bisher redet man
ja irgendwie von so Large 

891
00:44:39,680 --> 00:44:42,880
Language Models, LMS und wie der
Name schon sagt, sind die 

892
00:44:42,880 --> 00:44:44,880
ziemlich groß. 
Jetzt habe ich aber auch schon 

893
00:44:44,880 --> 00:44:48,160
von den von den SL MS gehört, 
den Small Language Models ist 

894
00:44:48,160 --> 00:44:51,840
das etwas in die Richtung die du
da anreißt oder? 

895
00:44:52,120 --> 00:44:53,680
Ja, ich glaube, das ist auch 
sogar. 

896
00:44:54,560 --> 00:44:56,640
Der Ursprung der KI? 
Die Mustererkennung. 

897
00:44:57,630 --> 00:45:00,990
Also ich hab für n 
Sensorhersteller gearbeitet, der

898
00:45:00,990 --> 00:45:06,390
hat dann eben so n so NKI Modell
auf NFPGA integriert und das 

899
00:45:06,590 --> 00:45:10,230
macht jetzt Barcode Erkennung ne
das macht es wahnsinnig schnell,

900
00:45:10,430 --> 00:45:13,150
viel schneller als dass man es 
ne Software machen kann und 

901
00:45:13,150 --> 00:45:16,350
diese Modelle musst du dann 
einfach lernen und dann kannst 

902
00:45:16,350 --> 00:45:19,630
du Barcode erkennen und ist auch
auf dem Embedded System 

903
00:45:19,630 --> 00:45:23,990
integriert, also nicht groß. 
Cool okay also da steht noch. 

904
00:45:24,950 --> 00:45:27,590
Ja, viel an beim Thema Embedded 
Systems in Zukunft. 

905
00:45:27,590 --> 00:45:29,550
Dir wird nicht langweilig? 
Absolut. 

906
00:45:31,030 --> 00:45:35,510
Ja, mir hat das n gutes Bild 
gegeben über Embedded Systems. 

907
00:45:35,510 --> 00:45:38,790
Also ich mir war schon vorher 
halbwegs klar was es ist, aber 

908
00:45:38,790 --> 00:45:42,070
nicht was dahintersteckt. 
Alex haben wir noch irgendwas 

909
00:45:42,070 --> 00:45:45,190
vergessen, was du umdenkt, uns 
noch erzählen möchtest? 

910
00:45:45,190 --> 00:45:48,310
Rundum beim Werte Systems. 
Ja, vielleicht noch mal das so 

911
00:45:48,310 --> 00:45:51,310
was die generelle Entwicklung 
bei Embedded Systems im 

912
00:45:51,310 --> 00:45:54,190
Vergleich zu Webanwendungen 
ausmacht. 

913
00:45:54,830 --> 00:45:57,030
Embedded Systems hast du ja 
eigentlich so ne ganz 

914
00:45:57,030 --> 00:45:59,390
spezifische Anforderung und du 
machst jetzt aus einer 

915
00:45:59,390 --> 00:46:02,950
Kaffeemaschine vielleicht auch 
keine Teemaschine unbedingt, das

916
00:46:02,950 --> 00:46:06,190
ist schon irgendwie alles dann 
ein bisschen vom System her 

917
00:46:06,190 --> 00:46:10,310
anders und deswegen gibt es 
eigentlich nicht mehr so 

918
00:46:10,310 --> 00:46:13,350
grundlegende Änderungen und die 
Software ist viel stabiler. 

919
00:46:13,790 --> 00:46:18,030
Wenn du jetzt eine Yoga App im 
Web entwickelt, dann gehst du ja

920
00:46:18,030 --> 00:46:21,830
viel Hypothesenbasierter vor, 
weil du gar nicht weißt wie dein

921
00:46:21,870 --> 00:46:24,710
Benutzer der. 
App benutzt wieder darauf 

922
00:46:24,710 --> 00:46:26,310
reagiert, was der cool findet 
oder so. 

923
00:46:26,830 --> 00:46:30,310
Und da das das ist so n Trend, 
das sieht man, dass die sich 

924
00:46:30,310 --> 00:46:33,990
diese Art der Entwicklung der 
Softwareentwicklung sich sehr 

925
00:46:33,990 --> 00:46:37,590
ausdifferenziert was in Systems 
angeht und was es 

926
00:46:37,590 --> 00:46:41,270
Informationssysteme oder Web 
oder Cloud Anwendungen angeht, 

927
00:46:41,270 --> 00:46:46,110
wo man den Benutzer mit drin hat
und die man auch dann quasi an 

928
00:46:46,110 --> 00:46:48,590
seinen Reaktionen was er gut 
findet oder schlecht findet dann

929
00:46:48,590 --> 00:46:51,230
einfach auch ausrichtet. 
So ist eigentlich mehr 

930
00:46:51,310 --> 00:46:54,400
Hypothesenbasiert. 
Das andere ist mehr 

931
00:46:54,400 --> 00:46:58,520
Anforderungsgetrieben. 
Schon ein ganz großer 

932
00:46:58,520 --> 00:47:02,040
Unterschied. 
Verstehe gut, das war eine 

933
00:47:02,040 --> 00:47:04,880
wichtige Ergänzung. 
Burkhard, willst du noch was 

934
00:47:04,880 --> 00:47:07,200
dazu sagen? 
Als Webentwickler siehst du das 

935
00:47:07,200 --> 00:47:09,720
auch so. 
Ja, voll also das ist ja, das 

936
00:47:09,720 --> 00:47:12,560
ist ja das leid, du musst ja 
irgendwie refaktorisieren, sage 

937
00:47:12,560 --> 00:47:16,280
ich immer, ist das Stichwort, 
also du bringst was ins Feld 

938
00:47:16,280 --> 00:47:18,600
irgendwie, es hat ja auch 
wirtschaftliche Aspekte, muss 

939
00:47:18,600 --> 00:47:20,400
auch mal irgendwann fertig 
werden und so, gerade wenn eine 

940
00:47:20,400 --> 00:47:22,560
kleine Firma bist, das kann man 
ja, das Lied können wir ganz 

941
00:47:22,560 --> 00:47:25,670
laut singen und. 
Ja, und dann benutzen die ersten

942
00:47:25,670 --> 00:47:28,830
User das und die sagen, Oh nee 
und so und hier die UI und so 

943
00:47:28,830 --> 00:47:31,950
und dann fängst du an ständig. 
Deswegen sagte ich ja, deswegen 

944
00:47:32,070 --> 00:47:34,670
sagte ich gerade schon, es ist 
ja so Herrlich zu sagen die 

945
00:47:34,670 --> 00:47:37,990
Software ist fertig, ja die 
Software ist halt auch im Web 

946
00:47:37,990 --> 00:47:40,070
nicht fertig wegen nicht nur 
wegen den Dependencies, sondern 

947
00:47:40,070 --> 00:47:44,830
halt auch weil Kunden UX Mode es
gibt Mode unter der Software 

948
00:47:44,830 --> 00:47:47,670
Sachen so Gerrit sagt mir 
neulich Boah das sieht irgendwie

949
00:47:47,910 --> 00:47:50,790
ja das ist ja irgendwie schön so
Material UI und so, aber 

950
00:47:50,790 --> 00:47:53,750
irgendwie sieht das total 
altbacken aus, es gibt 

951
00:47:53,750 --> 00:47:55,990
Modeerscheinungen und auf einmal
muss es irgendwie müssen die 

952
00:47:55,990 --> 00:47:59,070
Ecken wieder ein bisschen runder
sein und die und die Fenster ein

953
00:47:59,070 --> 00:48:01,390
bisschen transparenter und so 
und dann fängst du schon wieder 

954
00:48:01,390 --> 00:48:04,640
an Rumzuschrauben an der 
Software und dieses Geschraube 

955
00:48:04,640 --> 00:48:08,920
ist halt nie zu Ende, das ist 
genauso wie er sagt und das ist 

956
00:48:08,920 --> 00:48:11,440
für die Architektur total 
wichtig, weil du musst mich 

957
00:48:11,440 --> 00:48:13,880
tatsächlich entsorgt, den Code 
so anlegen, dass der, ohne dass 

958
00:48:13,880 --> 00:48:15,760
er total kaputt geht und völlig 
Spaghetti ist. 

959
00:48:15,760 --> 00:48:18,320
Zum Schluss in der Lage ist, 
irgendwie ein bisschen hin und 

960
00:48:18,320 --> 00:48:20,440
her geschiftet zu werden, je 
nach Anforderungen. 

961
00:48:20,440 --> 00:48:23,840
Ja, ich glaube das ist, das kann
man halt viel besser leisten, 

962
00:48:23,840 --> 00:48:25,200
wenn man die Power hat der 
Hardware dahinter. 

963
00:48:26,510 --> 00:48:28,270
Denn immer Generizität und und 
und. 

964
00:48:28,270 --> 00:48:31,430
Wenn du Code so schaffst, dass 
er, dass er einfach zu verändern

965
00:48:31,430 --> 00:48:33,270
ist, verlierst du immer 
Performance. 

966
00:48:33,270 --> 00:48:34,630
Es ist einfach so. 
Ja ist glaube ich ein 

967
00:48:34,630 --> 00:48:36,950
mathematisches Grundgesetz und 
bei den embalted Systemen wollen

968
00:48:36,950 --> 00:48:40,590
wir das nicht, da wollen wir 
exakt das, was es tun soll, sehr

969
00:48:40,590 --> 00:48:42,790
gut, sehr performant, sehr 
energiesparsam irgendwie 

970
00:48:42,790 --> 00:48:46,630
hinrichten und es nicht noch mal
komplett umbügeln, da kann man 

971
00:48:46,630 --> 00:48:50,670
halt die Türen zuschließen. 
Freiheitsgrade auch aus meiner 

972
00:48:50,670 --> 00:48:53,710
Richtung reinbringen. 
Bei uns sind es dann jetzt 

973
00:48:53,710 --> 00:48:56,960
weniger die. 
Das UI, das hier treibt, oder 

974
00:48:56,960 --> 00:49:00,000
die Technologien, die 
Plattformen, die Frameworks oder

975
00:49:00,000 --> 00:49:03,760
ähnliche Dinge. 
Aber wenn du Produktvarianten 

976
00:49:03,760 --> 00:49:07,640
hast, du hast jetzt eben nicht 
nur eine Kaffeemaschine, sondern

977
00:49:07,640 --> 00:49:11,080
du hast 12 oder vielleicht kann 
das Ding tatsächlich auch 

978
00:49:11,160 --> 00:49:15,480
irgendwo in einem anderen System
eingesetzt werden, dann musst du

979
00:49:15,480 --> 00:49:19,280
ein variantenmanagement dir 
überlegen, das heißt dieselbe 

980
00:49:19,280 --> 00:49:24,320
Software so Aufteilbar machen, 
konfigurierbar machen, dass die 

981
00:49:25,240 --> 00:49:26,680
für ganz verschiedene 
Anwendungen. 

982
00:49:26,830 --> 00:49:29,670
Zwecke auch wieder eingesetzt 
werden soll, weil du möchtest 

983
00:49:29,670 --> 00:49:31,830
den Code ja eigentlich auch 
nicht noch mal dann einfach 

984
00:49:31,830 --> 00:49:33,350
schreiben. 
Ne, das verstehe ich also für 

985
00:49:33,350 --> 00:49:36,110
die Kaffeemaschine 50€ kostet 
die die 150€ kostet und die 300€

986
00:49:36,110 --> 00:49:38,270
kostet oder wie bei den 
Staubsaugern ne kann halt quasi 

987
00:49:38,270 --> 00:49:40,910
die Software die Embedded 
Software auch mehr oder weniger 

988
00:49:40,910 --> 00:49:42,950
ja also wenn wenn der Gerrit 
sich die 400 Rauslässt, dann 

989
00:49:42,950 --> 00:49:45,990
kann die halt WLAN bei der 100€ 
Variante schmeißt du das WLAN 

990
00:49:45,990 --> 00:49:48,470
raus und musst dann halt und 
dann ist eine andere Variante 

991
00:49:48,470 --> 00:49:50,270
von fast dem gleichen Code WLAN 
access wenn. 

992
00:49:53,910 --> 00:49:55,910
Nicht sogar die gleiche Software
drauf ist. 

993
00:49:55,910 --> 00:49:57,670
Die wird nur anders 
parametriert. 

994
00:49:58,800 --> 00:50:00,920
Das ist natürlich im besten 
Fall, also WLAN funktion einfach

995
00:50:00,920 --> 00:50:03,680
ausgeschaltet, wenn man so will 
auskommentiert der Code. 

996
00:50:04,480 --> 00:50:08,160
Nein, nicht auskommentiert. 
Die Entscheidung, was das 

997
00:50:08,160 --> 00:50:12,440
Varianten, ob das zum Zeitpunkt 
des Programmstarts entscheiden 

998
00:50:12,440 --> 00:50:15,480
möchte oder zum Zeitpunkt, wenn 
du das Programm übersetzt, das 

999
00:50:15,480 --> 00:50:17,600
sind so 2 Möglichkeiten, die 
musst du dir auch vorher 

1000
00:50:17,600 --> 00:50:19,200
überlegen, wie du das dann 
angehst. 

1001
00:50:19,360 --> 00:50:21,040
Compilation, Time und Runtime 
ja. 

1002
00:50:21,240 --> 00:50:25,680
Ok, dann würde ich sagen, passt 
das erstmal und würde sagen wir 

1003
00:50:25,680 --> 00:50:27,200
kommen zum Ende von unserem 
Podcast. 

1004
00:50:27,590 --> 00:50:30,830
Aber nicht Alex, ohne dir noch 
mal die Gelegenheit zu geben, 

1005
00:50:31,110 --> 00:50:33,830
noch mal auf ja, deine 
Dienstleistung auch hinzuweisen,

1006
00:50:34,350 --> 00:50:36,310
vielleicht vielleicht den 
Zuhörern noch mal zu sagen, wie 

1007
00:50:36,310 --> 00:50:39,590
man dich erreichen kann. 
Und wenn es um ein Embedded 

1008
00:50:39,590 --> 00:50:41,830
System Projekt geht, oder 
vielleicht sagst du einfach mal 

1009
00:50:41,830 --> 00:50:43,990
selber, in welchen Fällen man 
dich erreichen sollte. 

1010
00:50:44,190 --> 00:50:47,710
Ich bin ja jetzt schon seit wie 
gesagt seit über 10 Jahren 

1011
00:50:47,710 --> 00:50:51,670
Software Architekt Systems und 
das heißt ich arbeite da im 

1012
00:50:51,670 --> 00:50:55,110
Projektteams mit Unterstützung. 
Die aber bei mir gibt es eben 

1013
00:50:55,110 --> 00:50:58,510
auch ein Mentoring in Embedded 
Software Architektur. 

1014
00:50:58,510 --> 00:51:01,470
Das heißt, wenn ein Entwickler 
Architekt werden möchte, dann 

1015
00:51:01,590 --> 00:51:04,230
macht er ja in der Regel 
Fortbildung, da gibt es jetzt 

1016
00:51:04,230 --> 00:51:07,270
AQB, das ist so ein 
Zertifizierungsprogramm. 

1017
00:51:07,750 --> 00:51:10,550
Und ich unterstütze ihn dann 
aber in seiner alltäglichen 

1018
00:51:10,550 --> 00:51:13,150
Arbeit, weil als Entwickler hast
du nen anderen Fokus. 

1019
00:51:13,150 --> 00:51:16,710
Wir als Architekt und vor allem 
ist diese Zusammenarbeit mit dem

1020
00:51:16,710 --> 00:51:19,950
Team meistens herausfordernd. 
Du bist im Unternehmen auch in 

1021
00:51:19,950 --> 00:51:21,750
das Produktmanagement 
integriert. 

1022
00:51:22,510 --> 00:51:24,430
Genau da helfe ich mit meiner 
Erfahrung. 

1023
00:51:24,430 --> 00:51:26,230
Das heißt, dass ich so ein 
Mentoring, das über ein paar 

1024
00:51:26,230 --> 00:51:30,350
Wochen geht, wir stecken uns so 
Ziele und wir telefonieren uns 

1025
00:51:30,350 --> 00:51:33,510
dann auch in der Woche zusammen 
und das ist dann so ein ganz 

1026
00:51:33,510 --> 00:51:36,750
lebendiger Austausch, und ja, 
das ist beides bei mir gibt. 

1027
00:51:36,790 --> 00:51:39,430
Es auch gut und wo kann man da 
mehr Infos noch finden? 

1028
00:51:39,430 --> 00:51:43,310
Alexander Eisnuth im Netz 
googlen, dann landet bei mir die

1029
00:51:43,310 --> 00:51:48,150
Domain ist eisenhut se de. 
Das sollte man hören, werden wir

1030
00:51:48,150 --> 00:51:51,470
auch verlinken, natürlich in den
Shownotes ja, dann mal 

1031
00:51:51,470 --> 00:51:54,310
herzlichen dank Alex für die 
Einblicke, die du uns gegeben 

1032
00:51:54,310 --> 00:51:56,750
hast und bis bald. 
Danke. 

1033
00:51:57,070 --> 00:51:59,070
Ja, wirklich ne sehr kurzweilige
Angelegenheit. 

1034
00:51:59,070 --> 00:52:01,910
Hat viel Spaß gemacht. 
Ja, mir auch und entschuldigt 

1035
00:52:01,910 --> 00:52:03,470
liebe Zuhörer. 
Ich hatte heute mindestens 12 

1036
00:52:03,470 --> 00:52:04,830
Frösche im Hals und immer noch 
einen. 

1037
00:52:04,830 --> 00:52:08,630
Meine Stimme macht heute nicht 
das was sie soll, aber das wird 

1038
00:52:08,630 --> 00:52:10,350
vielleicht die nächste Folge 
wieder besser kann man sich 

1039
00:52:10,350 --> 00:52:13,590
nicht gegen wehren. 
Alles klar, Schiff aus Hamburg 

1040
00:52:13,670 --> 00:52:15,510
auch an meiner Stelle. 
Alex, vielen Lieben Dank. 

1041
00:52:15,990 --> 00:52:19,270
Schluss aus, Freiburg. 
Einfach komplex wird präsentiert

1042
00:52:19,270 --> 00:52:21,870
und produziert von Highsomware. 
Wir freuen uns auf deine Fragen 

1043
00:52:21,870 --> 00:52:24,550
und 
deinfeedbackanpodcast@heiseweb.com

1044
00:52:24,670 --> 00:52:27,270
vielen Dank fürs Hören dieser 
Folge bis Dienstag in 2 Wochen 

1045
00:52:27,270 --> 00:52:28,390
und Tschüss aus Hamburg.
