Forum: Mikrocontroller und Digitale Elektronik STM8 Example Code


von Markus (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

Ich verstehe beim STM8S nicht, warum der Beispielcode funktioniert.
Ich habe in meiner IDE einen Projektordner selbst definiert und die 
notwendigen Files hinzugefügt. Ich war einmal neugierig und habe ein 
GPIO Example benutzt. Dazu habe ich nur die main herauskopiert und in 
mein Projekt eingebunden sonst nichts.

Ich habe noch keine Zeile Code im Main geschrieben und keine Clocks 
eingestellt und initialisiert. Jetzt frage ich mich, warum meine Led 
überhaupt so ohne gar nichts blinkt. In der fertigen Main.c sind auch 
keine Clocks definiert.

Ich wäre um Ratschläge sehr dankbar.

Main ist im Anhang

von Viktor B. (coldlogic)


Lesenswert?

Die eigentliche Frage ist: wieso sollte das nicht funktionieren? STM8 
ist nicht STM32, dort sind die Clocks "enabled by default". Dort muss 
man die Peripherie gezielt ein- statt abschalten.

Ansonsten frag ich mich, wieso Sie sich fragen, wieso eine main.c aus 
einem LED-Blink-Beispiel die LED auch tatsächlich blinken lässt.

MfG, coldlogic

von MaWin (Gast)


Lesenswert?

Markus schrieb:
> Ich habe noch keine Zeile Code im Main geschrieben

Das ist auch nicht nötig, wenn man

Markus schrieb:
> die main herauskopiert und in
> mein Projekt eingebunden

Ist doch ein toller uC, oder?

von Bimbo. (Gast)


Lesenswert?

Viktor B. schrieb:
> Ansonsten frag ich mich, wieso Sie sich fragen, wieso eine main.c aus
> einem LED-Blink-Beispiel die LED auch tatsächlich blinken lässt.

Könntest du bitte erläutern warum "Sie" (also vermutlich ist ST gemeint) 
sich das fragen sollte?

von M. K. (Gast)


Lesenswert?

MaWin schrieb:
> Ist doch ein toller uC, oder?

Ist er tatsächlich ;-)
K.A. warum die STM8 so ein Nischendasein fristen.

Spukenbillig und interessante Hardware.
Mit dem IAR steht eine sehr gute kostenlose IDE bis 8K zur Verfügung und 
wer es OS lieber mag, der findet sein Glück im SDCC.

Eval Boards, die auch als programmer / debugger arbeiten, sind 
spuckenbillig.

von Axel S. (a-za-z0-9)


Lesenswert?

M. K. schrieb:
> K.A. warum die STM8 so ein Nischendasein fristen.

Sie waren zu spät. Es gab schlicht keine Nische mehr am 8-Bit Markt, die 
unbesetzt gewesen wäre. Daß Atmel mit den AVR da noch einen Fuß auf den 
Boden bekommen haben, verdanken sie nur der Tatsache, daß sie als erste 
mit integriertem Flash daher kamen.

Ich finde die STM8 auch recht nett. Geradlinige Architektur. 
Vergleichsweise flott und stromsparend. Und preiswert. Die Peripherie 
ist den STM32 sehr ähnlich, das läßt den Upgradepfad hin zum STM32 
(falls ein Projekt mal über die Grenzen wächst) viel weniger steinig 
wirken.

von Viktor B. (coldlogic)


Lesenswert?

Bimbo. schrieb:
> Könntest du bitte erläutern warum "Sie" (also vermutlich ist ST gemeint)
> sich das fragen sollte?

Ich habe den TO gemeint.

Axel S. schrieb:
> Sie waren zu spät. Es gab schlicht keine Nische mehr am 8-Bit Markt, die
> unbesetzt gewesen wäre.

Naja, früher gabs ja den ST7. Der war aber nicht sonderlich erfolgreich.

von Harald (Gast)


Lesenswert?

M. K. schrieb:
> K.A. warum die STM8 so ein Nischendasein fristen

Jedes zweite Gadget in Modulform in Aliexpress beherbergt einen STM8. 
Bei dem Preis (vergleiche LCSC.COM) kein Wunder.

von xyz (Gast)


Lesenswert?

> Naja, früher gabs ja den ST7. Der war aber nicht sonderlich erfolgreich.

Der ST6, der eine ziemliche Gurke war, findet sich recht oft.

von Axel S. (a-za-z0-9)


Lesenswert?

xyz schrieb:
>> Naja, früher gabs ja den ST7. Der war aber nicht sonderlich erfolgreich.
>
> Der ST6, der eine ziemliche Gurke war, findet sich recht oft.

Naja, Gurke ist Ansichtssache. Aber in der Tat habe ich noch keinen ST7 
in der Hand gehabt. Ein Projekt mit ST6 habe ich immerhin mal 
(nach)betreut. Der wirkte auf den ersten Blick und in Anbetracht des 
Alters der Architektur gar nicht mal häßlich. Aber alles in allem muß 
man wohl sagen, daß ST auf dem 8-Bit Markt eher glücklos operiert hat.

Der STM8 scheint noch der erfolgreichste 8-Bitter aus deren Haus zu 
sein. Die automotive Varianten des STM8 gibt es sicher nicht nur aus 
Spaß an der Freude. Die werden schon irgendwo in Stückzahlen drin 
stecken. Vermutlich in Peugot oder Citroen. Womit wir wieder bei Gurken 
wären und sich der Kreis schließt :)

von M. K. (Gast)


Lesenswert?

Axel S. schrieb:
> Aber alles in allem muß
> man wohl sagen, daß ST auf dem 8-Bit Markt eher glücklos operiert hat.

Zwischen den ollen, meiner Meinung nach viel zu teuren und relativ 
langweiligen AVRs und den PICs, die die unglaublichsten 
Hardwarekombinationen mitbringen, ist wirklich nur wenig Platz.
Das hat Atmel auch mit den xMega feststellen müssen, die wirklich sehr 
schick und aufgeräumt sind.

Gerade schon wieder bei mir so gelaufen.
Mit einer 5V MCU spare ich den Pegelwandler, aber für die >1Mbit RS422 
brauche ich hohe Taktraten, möglichst mit einem stabilen internen Clk.

STM hatte wieder nix für mich.
Dafür Microchip mit dem PIC18F24Q.
Kann man nix machen, schick sind die trotzdem.

von xyz (Gast)


Lesenswert?

> Gurke ist Ansichtssache

Nun, es fehlen schon etliche Befehle die nur mit Krampf aus dem
vorhandenen Befehlssatz "nachgebaut" werden muessen.
Das ist selbst bei 14 bit Midrange-PICs nicht so eklatant.

Es fehlt ein simples OR, man kann nicht einfach nach rechts
schieben usw. usf.
Dazu wird der Eingangstakt auch noch durch 13 geteilt.

Dagegen nimmt sich ein ST7 geradezu eher normal aus.
Und erinnert ein wenig an den 6502/6800.

von Harald (Gast)


Lesenswert?

xyz schrieb:
> Nun, es fehlen schon etliche Befehle die nur mit Krampf aus dem
> vorhandenen Befehlssatz "nachgebaut" werden muessen.
> Das ist selbst bei 14 bit Midrange-PICs nicht so eklatant.

Das kann einem doch völlig egal sein. Das ist doch das „Problem“ des 
C-Compilers. Mit solchen Fragestellungen musste man sich vielleicht noch 
in den 90ern rumschlagen, wen interessiert das heute noch? 
Prozessorleistung reicht oder reicht nicht, das kann man meist schon aus 
der Aufgabenstellung abschätzen. Wenn es verdachtsweise nicht reicht 
nimmt man halt nen passenden ARM.

von xyz (Gast)


Lesenswert?

> das „Problem“ des C-Compilers

ST6 und C-Compiler?
Selten so gelacht.

von Harald (Gast)


Lesenswert?

Ah, da muss man erstmal drauf kommen, dass ein Thread über den STM8 auf 
einmal den ST6 aus dem Pleistozän in den Mittelpunkt rückt...

von xyz (Gast)


Lesenswert?

Kwak nicht rum.

von Harald (Gast)


Lesenswert?

xyz schrieb:
> Kwak nicht rum.

Danke für die Belehrung. Du bist mein Held.

von Andreas H. (ahz)


Lesenswert?

Harald schrieb:
> Ah, da muss man erstmal drauf kommen, dass ein Thread über den STM8 auf
> einmal den ST6 aus dem Pleistozän in den Mittelpunkt rückt...

n1

/signed

von xyz (Gast)


Lesenswert?

> Wenn es verdachtsweise nicht reicht nimmt man halt nen passenden ARM.

Irgendwie beruhigend das dein Weltbild schon bei ARMs aufhoert.

Gelegentlich brauche ich der parallelen Rechenleistung wegen
auch mal FPGAs.

Das ist aber nichts fuer Spielkinder die alles nur auf den C-Compiler
schieben wollen und selber nichts weiter zustande bringen.

von Harald (Gast)


Lesenswert?

xyz schrieb:
> Das ist aber nichts fuer Spielkinder die alles nur auf den C-Compiler
> schieben wollen und selber nichts weiter zustande bringen.

Ja, genau so ist das. Dir auch einen schönen Abend!

von Philipp Klaus K. (pkk)


Lesenswert?

M. K. schrieb:
> Mit dem IAR steht eine sehr gute kostenlose IDE bis 8K zur Verfügung und
> wer es OS lieber mag, der findet sein Glück im SDCC.

Bei IAR gab es in den letzten Jahren immerhin noch kleinere Bugfixes im 
Compiler. Raisonance hat schon seit Jahren keine neue Version mehr 
veröffentlicht.
Bei SDCC und Cosmic (beide ohne Größenbeschränkung) gab es größere 
Fortschritte:

http://www.colecovision.eu/stm8/compilers-2016-2018-2020.shtml

von Andreas H. (ahz)


Lesenswert?

xyz schrieb:
> Das ist aber nichts fuer Spielkinder die alles nur auf den C-Compiler
> schieben wollen und selber nichts weiter zustande bringen.

Nachdem ich durch diesen Thread wirklich neugierig geworden bin habe ich 
mir mal ein paar STM8S rangeholt und werde die am WE mal in ein 
aktuelles Projekt reinbasteln.

Und, weil es bei diesem Projekt passt wie Faust-auf-Auge, wird da erst 
mal eForth benutzt. Muss ja nicht immer C sein ;)

/regards

von jm2c (Gast)


Lesenswert?

Also der IAR ist für den STM8 voll und ganz in Ordnung. Die IDE (gilt ja 
für mehrere Architekturen) wird gepflegt. Der Compiler macht 
performanten Code. Alles Ok mit IAR.

von xyz (Gast)


Lesenswert?

> erst mal eForth benutzt

Ich hab hier noch einen Forthcompiler fuer den ST6.
Mit dem STM8 muss das dann ja wie das Brezelbacken gehen.

Viel Erfolg!
1
pwm.fo:
2
3
: warte 0 255 do loop ;  (Warteschleife)
4
5
: initports  ( Ports und AD-Wandlereingang initialisieren )
6
  11111100b 0cch  !  00000000b 0c0h !  ( Pin 0 und 1 PortA als OpenDrain )
7
  00000000b 0c5h !  00000001b 0cdh !  00000001b 0c1h ! ( Pin 0 PortB als )
8
                                                       ( Analogeingang   )
9
;
10
11
: startad  ( Startet den AD-Wandler )
12
  00110000b 0d1h !
13
;
14
 
15
: readad  ( Liest einen Wert vom AD-Wandler )
16
  0d0h @
17
;
18
19
: pinoff  
20
  00010000b 0c0h !       ( PortA zuruecksetzen )
21
  dup 255  do warte loop ( Wartezeit  zwischen Uebergabewert und 255 )
22
;
23
24
: pinon 
25
  00001111b 0c0h !          ( PortA setzen )
26
  dup 0 swap do warte loop ( Wartezeit zwischen 0 und Uebergabewert )
27
;
28
29
initports
30
1 (Dummywert fuer ersten Schleifendurchlauf )
31
begin 
32
  startad
33
  pinoff
34
  pinon
35
  drop readad (Alten Wert vergessen und neuen einlesen )
36
1 until ( Das Haupprogramm als Endlosschleife )
37
38
pwm.asm:
39
40
  .title "ST6-Miniforth 0.01"
41
42
;Dieser Source wurde automatisch von dem
43
;Programm ST6-Miniforth erzeugt
44
45
46
  .vers  "st6215"
47
  .input "6215_reg.asm"
48
49
50
  .org 128
51
52
53
;------------------------------------------------------------
54
  ;Initialisierung der Forthmaschiene
55
first  ldi  x,132    ;Userstack
56
  ldi  y,191    ;Systemstack
57
  jp  forth    ;Sprung zum Hauptprogramm
58
;------------------------------------------------------------
59
  ;
60
L1  ;WordDefinition    [warte]
61
  ;Integerkonstante:  [0]
62
  inc  x
63
  ldi  a,0
64
  ld  (x),a
65
  ;
66
  ;Integerkonstante:  [255]
67
  inc  x
68
  ldi  a,255
69
  ld  (x),a
70
  ;
71
  ;Do-Schleife [do]  ******************************
72
  dec  x
73
  ld  a,(x)
74
  dec  y
75
  ld  (y),a
76
  inc  x
77
  dec  y
78
  ld  a,(x)
79
  ld  (y),a
80
L2  ;
81
  ldi  wdr,0feh
82
  ;Do-Schleife    [loop]
83
  ld  a,(y)
84
  inc  y
85
  sub  a,(y)
86
  dec  y
87
  jrnc  L3
88
  inc  (y)
89
  jp  L2
90
L3  inc  y
91
  inc  y
92
  dec  x
93
  dec  x
94
  ldi  wdr,0feh
95
  ;
96
  ret
97
  ;WordEnde    [warte]
98
;------------------------------------------------------------
99
L4  ;WordDefinition    [initports]
100
  ;Integerkonstante:  [252][11111100b]
101
  inc  x
102
  ldi  a,252
103
  ld  (x),a
104
  ;
105
  ;Integerkonstante:  [204][0cch]
106
  inc  x
107
  ldi  a,204
108
  ld  (x),a
109
  ;
110
  ;Forthword:    !  ( n1 n2 adr --> n1 )
111
  dec  x
112
  ld  a,(x)
113
  ld  v,a
114
  inc  x
115
  ld  a,x
116
  ld  w,a
117
  ld  a,(x)
118
  ld  x,a
119
  ld  a,v
120
  ld  (x),a
121
  dec  w
122
  dec  w
123
  ld  a,w
124
  ld  x,a
125
  ldi  wdr,0feh
126
  ;
127
  ;Integerkonstante:  [0][00000000b]
128
  inc  x
129
  ldi  a,0
130
  ld  (x),a
131
  ;
132
  ;Integerkonstante:  [192][0c0h]
133
  inc  x
134
  ldi  a,192
135
  ld  (x),a
136
  ;
137
  ;Forthword:    !  ( n1 n2 adr --> n1 )
138
  dec  x
139
  ld  a,(x)
140
  ld  v,a
141
  inc  x
142
  ld  a,x
143
  ld  w,a
144
  ld  a,(x)
145
  ld  x,a
146
  ld  a,v
147
  ld  (x),a
148
  dec  w
149
  dec  w
150
  ld  a,w
151
  ld  x,a
152
  ldi  wdr,0feh
153
  ;
154
  ;Integerkonstante:  [0][00000000b]
155
  inc  x
156
  ldi  a,0
157
  ld  (x),a
158
  ;
159
  ;Integerkonstante:  [197][0c5h]
160
  inc  x
161
  ldi  a,197
162
  ld  (x),a
163
  ;
164
  ;Forthword:    !  ( n1 n2 adr --> n1 )
165
  dec  x
166
  ld  a,(x)
167
  ld  v,a
168
  inc  x
169
  ld  a,x
170
  ld  w,a
171
  ld  a,(x)
172
  ld  x,a
173
  ld  a,v
174
  ld  (x),a
175
  dec  w
176
  dec  w
177
  ld  a,w
178
  ld  x,a
179
  ldi  wdr,0feh
180
  ;
181
  ;Integerkonstante:  [1][00000001b]
182
  inc  x
183
  ldi  a,1
184
  ld  (x),a
185
  ;
186
  ;Integerkonstante:  [205][0cdh]
187
  inc  x
188
  ldi  a,205
189
  ld  (x),a
190
  ;
191
  ;Forthword:    !  ( n1 n2 adr --> n1 )
192
  dec  x
193
  ld  a,(x)
194
  ld  v,a
195
  inc  x
196
  ld  a,x
197
  ld  w,a
198
  ld  a,(x)
199
  ld  x,a
200
  ld  a,v
201
  ld  (x),a
202
  dec  w
203
  dec  w
204
  ld  a,w
205
  ld  x,a
206
  ldi  wdr,0feh
207
  ;
208
  ;Integerkonstante:  [1][00000001b]
209
  inc  x
210
  ldi  a,1
211
  ld  (x),a
212
  ;
213
  ;Integerkonstante:  [193][0c1h]
214
  inc  x
215
  ldi  a,193
216
  ld  (x),a
217
  ;
218
  ;Forthword:    !  ( n1 n2 adr --> n1 )
219
  dec  x
220
  ld  a,(x)
221
  ld  v,a
222
  inc  x
223
  ld  a,x
224
  ld  w,a
225
  ld  a,(x)
226
  ld  x,a
227
  ld  a,v
228
  ld  (x),a
229
  dec  w
230
  dec  w
231
  ld  a,w
232
  ld  x,a
233
  ldi  wdr,0feh
234
  ;
235
  ret
236
  ;WordEnde    [initports]
237
;------------------------------------------------------------
238
L5  ;WordDefinition    [startad]
239
  ;Integerkonstante:  [48][00110000b]
240
  inc  x
241
  ldi  a,48
242
  ld  (x),a
243
  ;
244
  ;Integerkonstante:  [209][0d1h]
245
  inc  x
246
  ldi  a,209
247
  ld  (x),a
248
  ;
249
  ;Forthword:    !  ( n1 n2 adr --> n1 )
250
  dec  x
251
  ld  a,(x)
252
  ld  v,a
253
  inc  x
254
  ld  a,x
255
  ld  w,a
256
  ld  a,(x)
257
  ld  x,a
258
  ld  a,v
259
  ld  (x),a
260
  dec  w
261
  dec  w
262
  ld  a,w
263
  ld  x,a
264
  ldi  wdr,0feh
265
  ;
266
  ret
267
  ;WordEnde    [startad]
268
;------------------------------------------------------------
269
L6  ;WordDefinition    [readad]
270
  ;Integerkonstante:  [208][0d0h]
271
  inc  x
272
  ldi  a,208
273
  ld  (x),a
274
  ;
275
  ;Forthword:    @  ( n1 adr --> n1 n )
276
  ld  a,x
277
  ld  w,a
278
  ld  a,(x)
279
  ld  x,a
280
  ld  a,(x)
281
  ld  v,a
282
  ld  a,w
283
  ld  x,a
284
  ld  a,v
285
  ld  (x),a
286
  ldi  wdr,0feh
287
  ;
288
  ret
289
  ;WordEnde    [readad]
290
;------------------------------------------------------------
291
L7  ;WordDefinition    [pinoff]
292
  ;Integerkonstante:  [16][00010000b]
293
  inc  x
294
  ldi  a,16
295
  ld  (x),a
296
  ;
297
  ;Integerkonstante:  [192][0c0h]
298
  inc  x
299
  ldi  a,192
300
  ld  (x),a
301
  ;
302
  ;Forthword:    !  ( n1 n2 adr --> n1 )
303
  dec  x
304
  ld  a,(x)
305
  ld  v,a
306
  inc  x
307
  ld  a,x
308
  ld  w,a
309
  ld  a,(x)
310
  ld  x,a
311
  ld  a,v
312
  ld  (x),a
313
  dec  w
314
  dec  w
315
  ld  a,w
316
  ld  x,a
317
  ldi  wdr,0feh
318
  ;
319
  ;Forthword:    dup  ( n1 n2 --> n1 n2 n2 )
320
  ld  a,(x)
321
  inc  x
322
  ld  (x),a
323
  ldi  wdr,0feh
324
  ;
325
  ;Integerkonstante:  [255]
326
  inc  x
327
  ldi  a,255
328
  ld  (x),a
329
  ;
330
  ;Do-Schleife [do]  ******************************
331
  dec  x
332
  ld  a,(x)
333
  dec  y
334
  ld  (y),a
335
  inc  x
336
  dec  y
337
  ld  a,(x)
338
  ld  (y),a
339
L8  ;
340
  ldi  wdr,0feh
341
  call  L1    ;Word:  [warte]
342
  ;
343
  ;Do-Schleife    [loop]
344
  ld  a,(y)
345
  inc  y
346
  sub  a,(y)
347
  dec  y
348
  jrnc  L9
349
  inc  (y)
350
  jp  L8
351
L9  inc  y
352
  inc  y
353
  dec  x
354
  dec  x
355
  ldi  wdr,0feh
356
  ;
357
  ret
358
  ;WordEnde    [pinoff]
359
;------------------------------------------------------------
360
L10  ;WordDefinition    [pinon]
361
  ;Integerkonstante:  [15][00001111b]
362
  inc  x
363
  ldi  a,15
364
  ld  (x),a
365
  ;
366
  ;Integerkonstante:  [192][0c0h]
367
  inc  x
368
  ldi  a,192
369
  ld  (x),a
370
  ;
371
  ;Forthword:    !  ( n1 n2 adr --> n1 )
372
  dec  x
373
  ld  a,(x)
374
  ld  v,a
375
  inc  x
376
  ld  a,x
377
  ld  w,a
378
  ld  a,(x)
379
  ld  x,a
380
  ld  a,v
381
  ld  (x),a
382
  dec  w
383
  dec  w
384
  ld  a,w
385
  ld  x,a
386
  ldi  wdr,0feh
387
  ;
388
  ;Forthword:    dup  ( n1 n2 --> n1 n2 n2 )
389
  ld  a,(x)
390
  inc  x
391
  ld  (x),a
392
  ldi  wdr,0feh
393
  ;
394
  ;Integerkonstante:  [0]
395
  inc  x
396
  ldi  a,0
397
  ld  (x),a
398
  ;
399
  ;Forthword:    swap  ( n1 n2 n3 --> n1 n3 n2 )
400
  ld  a,(x)
401
  ld  w,a
402
  dec  x
403
  ld  a,(x)
404
  inc  x
405
  ld  (x),a
406
  ld  a,w
407
  dec  x
408
  ld  (x),a
409
  inc  x
410
  ldi  wdr,0feh
411
  ;
412
  ;Do-Schleife [do]  ******************************
413
  dec  x
414
  ld  a,(x)
415
  dec  y
416
  ld  (y),a
417
  inc  x
418
  dec  y
419
  ld  a,(x)
420
  ld  (y),a
421
L11  ;
422
  ldi  wdr,0feh
423
  call  L1    ;Word:  [warte]
424
  ;
425
  ;Do-Schleife    [loop]
426
  ld  a,(y)
427
  inc  y
428
  sub  a,(y)
429
  dec  y
430
  jrnc  L12
431
  inc  (y)
432
  jp  L11
433
L12  inc  y
434
  inc  y
435
  dec  x
436
  dec  x
437
  ldi  wdr,0feh
438
  ;
439
  ret
440
  ;WordEnde    [pinon]
441
;------------------------------------------------------------
442
443
444
forth  ;Anfang des Hauptprogramm
445
446
  call  L4    ;Word:  [initports]
447
  ;
448
  ;Integerkonstante:  [1]
449
  inc  x
450
  ldi  a,1
451
  ld  (x),a
452
  ;
453
  ;BeginUntil-Schleife[1]  [BEGIN]
454
L13  ;
455
  call  L5    ;Word:  [startad]
456
  ;
457
  call  L7    ;Word:  [pinoff]
458
  ;
459
  call  L10    ;Word:  [pinon]
460
  ;
461
  ;Forthword:    drop  ( n1 n2 --> n1 )
462
  dec  x
463
  ldi  wdr,0feh
464
  ;
465
  call  L6    ;Word:  [readad]
466
  ;
467
  ;Integerkonstante:  [1]
468
  inc  x
469
  ldi  a,1
470
  ld  (x),a
471
  ;
472
  ;BeginUntil-Schleife[1]  [UNTIL]
473
  ld  a,(x)
474
  dec  x
475
  jnz  L14
476
  jp  L13
477
L14  ;
478
  ;
479
480
  jp  first    ;Sprung zurueck zur Initialisierung

von Philipp Klaus K. (pkk)


Lesenswert?

jm2c schrieb:
> Also der IAR ist für den STM8 voll und ganz in Ordnung. Die IDE
> (gilt ja
> für mehrere Architekturen) wird gepflegt. Der Compiler macht
> performanten Code. Alles Ok mit IAR.

Der IAR für STM8 ist sicher auch heute kein schlechter Compiler. 
Bezüglich der Standardkompatiblität ist er immer noch besser als Cosmic 
und Raisonance (und den C90- und C99-Standards ist er sogar näher als 
SDCC).
Früher erzeugte er den schnellsten Code. Einziger bedeutender Nachteil 
war immer die Codegröße.

Aber in den letzten Jahren haben Cosmic und SDCC ihn in vielerlei 
Hinsicht ein- oder überholt:

http://www.colecovision.eu/stm8/compilers.shtml

von Andreas H. (ahz)


Lesenswert?

Philipp Klaus K. schrieb:
> Aber in den letzten Jahren haben Cosmic und SDCC ihn in vielerlei
> Hinsicht ein- oder überholt

Du übersiehst da ein winziges Detail: IAR ist für diversen Kram 
zertifiziert.

Das spielt in vielen Anwendungen heute (leider) eine zunehmend wichtige 
Rolle.

/regards

von Andreas H. (ahz)


Lesenswert?

xyz schrieb:
> Ich hab hier noch einen Forthcompiler fuer den ST6.
> Mit dem STM8 muss das dann ja wie das Brezelbacken gehen.

Cool :)

Hast Du vor den auf STM8s zu erweitern?  Wäre sicher ein sinnvolles 
GitHub Projekt.

Ich will eForth auf STM8s probieren weil ich bei dem aktuellen Projekt 
dann die Möglichkeit habe, den Code "in-the-loop" zu entwickeln und zu 
modifizieren.

/regards

von xyz (Gast)


Lesenswert?

Fuer den STM8 waere mir das mittlerweile zu muehselig.
Da kann ich mit dem IAR-Compiler aus dem vollen schoepfen.

Aber fuer den eCOG1X14Z5H. Das ist ein 16 Bitter.
Mit auf dem Board sind 16 MB SDRAM, 1 MB SRAM, 1 MB paralleler Flash,
eine SMC Fastethernet-PHY, ein Wolfson Audio-Codec, eine USB2-ULPI-PHY
und noch diverses anderes.

Da ist Forth zum sukzessiven Inbetriebnehmen der Peripherie
natuerlich bestens geeignet.

Lesetipp fuer den STM8:
http://blog.mark-stevens.co.uk/?cat=17

von Andreas H. (ahz)


Lesenswert?

xyz schrieb:
> Fuer den STM8 waere mir das mittlerweile zu muehselig.
> Da kann ich mit dem IAR-Compiler aus dem vollen schoepfen.

Aber leider nur bis 8KB Flash. Danach dasnn die üblichen IAR Tarife. 
Wobei der Compiler nicht schlecht ist.

> Da ist Forth zum sukzessiven Inbetriebnehmen der Peripherie
> natuerlich bestens geeignet.

Nicht nur Inbetriebnahme. Mich reizt eher die Möglichkeit des In-Field 
Debugging, also bei Fehlern im Betrieb (und der "theoretisch" fertigen 
Firmware) nachsehen, wo es klemmt und (!!) das dann auch gleich fixen.

>
> Lesetipp fuer den STM8:
> http://blog.mark-stevens.co.uk/?cat=17
Zitat: "Oooooch! Error 404 - Not Found" ;D

/regards

von xyz (Gast)


Lesenswert?

>> Lesetipp fuer den STM8:
>> http://blog.mark-stevens.co.uk/?cat=17
> Zitat: "Oooooch! Error 404 - Not Found" ;D

Ja, hat er wohl umgezogen.

https://blog.mark-stevens.co.uk/category/stm8/

Und wenn ich
> aus dem vollen schoepfen.
schreibe, meine ich das auch so.
Also z.B. auch fuer den STM8S208RBT6 in seiner ganzen Pracht.

> also bei Fehlern im Betrieb

Fehler in einem Treiber kann ich nicht in Forth fixen.
Die Treiber sind bei mir C-Module. Allerdings kann ich
in Forth die Module relativ umfaenglich testen.
Und ich kann natuerlich damit in Forth Anwendungen entwickeln.
Allerdings mache ich daraus dann eher wieder ein C-Modul...
Platz genug (512k Flash) ist ja noch.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.