Skip to content

CPU goes to 100% in strandtest.py with PCM #547

@maldavis

Description

@maldavis

When attempting to use PCM in strandtest.py by setting:
LED_PIN = 21

The LEDs display as expected but upon termination, the python process for strandtest.py goes to 100% CPU, does not terminate with CTRL-C, and must be killed. With some debugging, I find that the CPU goes to 100% in PixelStrip._cleanup(). With further code review, this line in ws2811_fini() appears to be a good suspect:
while (!(pcm->cs & RPI_PCM_CS_TXE)) ; // Wait till TX FIFO is empty

I'd guess that the RPI_PCM_CS_TXE bit is never set or something else has cleared it.

strandtest.py works as expected and terminates normally with PWM (LED_PIN = 18). PWM works for me, so I don't need a fix but I thought others might have the same experience and want to know.

Running a RPi 4B with Raspbian GNU/Linux 11 (bullseye), Linux 6.1.21-V8+

Thx

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions