Pi2 GPIO Flankenerkennung --> CPU stall

  • 'nabend Leute,
    Ich hab grad mal die Flankenerkennung von RPi.GPIO benutzt und das geht gewaltig schief. Ich poste hier direkt mal Code, Ausgabe und Fehler.

    Dann ein paar mal flott hintereinander den Taster gedrückt und plötzlich reagiert es nicht mehr. In diesem Fall habe ich 9 mal auf die Taste gedrückt und es ging gut und dann beim 10ten mal hat gar nix mehr reagiert. In dem Moment konnte ich den Pi nicht mal mehr übers Netzwerk pingen.

    Ausgabe:

    Hab das ganze mehrfach ausprobiert, passiert immer nach unterschiedlich vielen Tastendrücken. syslog sagt jedes Mal was anderes, aber immer "detected stalls". Beispiel hier

    Code
    Feb 26 01:43:37 Pi2 kernel: [217723.959100] gpiomem-bcm2835 3f200000.gpiomem: gpiomem device opened.
    Feb 26 01:44:16 Pi2 kernel: [217762.335545] INFO: rcu_sched detected stalls on CPUs/tasks:
    Feb 26 01:44:16 Pi2 kernel: [217762.335575]     0: (2 GPs behind) idle=855/2/0 softirq=3584625/3584625 fqs=2102
    Feb 26 01:44:16 Pi2 kernel: [217762.335583]     (detected by 2, t=2102 jiffies, g=2665498, c=2665497, q=1597)
    Feb 26 01:44:16 Pi2 kernel: [217762.335595] Task dump for CPU 0:
    Feb 26 01:44:16 Pi2 kernel: [217762.335602] swapper/0       R running      0     0      0 0x00000002

    Achja, angeschlossen ist der Taster so (C=100nF, R1=R2=10kOhm:
    RC_debouncer.png

    Code
    $ uname -a
    Linux Pi2 4.1.17-v7+ #838 SMP Tue Feb 9 13:15:09 GMT 2016 armv7l GNU/Linux

    Hat jemand sowas schonmal erlebt oder hat eine Idee, an was das liegen könnte? Bug um OS?!

    Viele Grüße


    PS: Falls das besser ins Raspbian Unterforum passt, kanns auch gerne dahin verschoben werden.

    PPS: Habs grad mal am Pi B Rev.2 ausprobiert. Läuft dort ohne Probleme.

    Code
    Linux Pi 4.1.13+ #826 PREEMPT Fri Nov 13 20:13:22 GMT 2015 armv6l GNU/Linux

    Einmal editiert, zuletzt von KrawallKurt (26. Februar 2016 um 20:29)

  • Ich bring mal noch bisschen mehr Input. An meinem Pi läuft auch ein HD44780 Display, was u.a. die Temperatur eines DS18B20 anzeigt, das ebenfalls am Pi hängt. Ich hab jetzt mal einfach alles abgezogen und obiges Skript nochmal gestartet - konnte den Fehler nicht reproduzieren. Also habe ich mal nur den Sensor und den Button angeschlossen und folgendes ausgeführt:

    Da taucht der Stall wieder auf. Scheinbar passiert das, wenn ein Interrupt kommt, während gerade die Temperatur ausgelesen wird, oder so. Hab das ganze auch direkt wieder am Pi B ausprobiert (selbstverständlich mit dem Thermometer), dort läuft es ohne Probleme... Jemand 'n Gedanke dazu?

    Einmal editiert, zuletzt von KrawallKurt (26. Februar 2016 um 20:28)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!