Am Dienstag, 15. August 2017 21:39 CEST, "Arno Steffens" epsi@gmx.de schrieb:
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);
ALlerdings zeigt mir dump() den Inhalt b,d,f an, und nicht den Inhalt vor der Initialisierung.
Da wäre natürlich meine erste Frage: woher kennst Du den Inhalt der Register vor der Initialisierung? Die nächste Frage wäre: wie kommuniziert die Library mit dem Device? Vieleicht asynchron? Das sollte aber dokumentiert sein. Gegebenenfalls solltest Du, nur um sicher zu gehen so was machen:
#include <stdio.h> ... dump(); fflush(stdout);
Auf dem Multicore ARM sollten Dich die Register besser nicht interessieren. Ist Deine Anwendung überhaupt Multithreaded?
Im Moment noch nicht.
Dann hast Du da auch keine sync-Probleme.
Erwartet hatte ich die reset/default Werte – weil ja dump (nach poweron) zuerst gecoded ist.
D.h. es gibt definierte Initialwerte?
Selbst ein sleep(5); dazwischen hat daran nichts geändert, erst sleep(10); was ja irrsinnige Zeiten sind!!!
Hmm - das klingt in der Tat seltsam. Spätestens jetzt würde ich den gdb zücken und mir mal ansehen was da so abgeht. Hast Du Dir schon angesehen was über den I2C Bus läuft? (dumme Frage, ich weiss)
# echo 1 > /sys/kernel/debug/tracing/events/i2c/enable # tail -f /sys/kernel/debug/tracing/trace
Gruss RalfD