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
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
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?
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?
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.
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.
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.
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.
> Naja, früher gabs ja den ST7. Der war aber nicht sonderlich erfolgreich.
Der ST6, der eine ziemliche Gurke war, findet sich recht oft.
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 :)
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.
> 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.
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.
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...
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
> 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.
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!
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
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
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.
> 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 |
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
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
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
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
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
>> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.