Gesendet: Dienstag, 15. August 2017 um 21:48 Uhr
Von: "Uwe Kleine-König" <uwe(a)kleine-koenig.org>
An: flug(a)lug-freiburg.de
Betreff: Re: [Flug] Multicore Programmierung
On 08/15/2017 09:39 PM, Arno Steffens wrote:
Hallo,
mit Mehr-Kern Prozessoren wird das Programmieren doch wieder etwas anders, wie ich
zuletzt gemerkt hab.
Wie löst man elegant unaufwändig folgendes Problem?
Am einem ARM-board ist per spi/i2c ein Gerät angeschlossen. Eine kleine Bibliothek
device.so übersetzt befehle wie "Lese register x", "Schreibe Register y mit
z" und führt dann ioctl Befehle aus.
Es gibt auch ein dump() Kommando, dass alle Register liest und ausgibt.
Das verstehe ich jetzt nicht ganz - der dump-Befehl liest die Register des
angeschlossenen Geräts aus, oder?
Ja genau. Es sind praktisch lese-Funktionen in einer loop, aber immer noch in der
Bibliothek.
Aus dem Anwendungsprogramm wird dann das
angeschlossene Gerät mit den device_read(x), device_write(y,z) programmiert.
Jetzt ist mir aufgefallen, dass das dump() welches zuerst aufgerufen wird, die eigentlich
erst später im Quellcode geschriebenen Register liefert !
Im Quellcode von was? Deinem Programm auf dem ARM oder dem Gerät?
Quelltext, compiliert für ARM und dort augeführt.
dump();
write(a,b);
write(c,d);
write(e,f);
Wenn Dein Programm nicht extra Zeugs macht, nutzt das nicht aus, dass
Deine Maschine mehr als eine CPU hat. Was passiert denn beim ersten Mal,
nachdem Du b, d und f in g, h und i geändert hast? Zeig mal Dein Programm.