PRU programming with pasm compiled .bin hangup - prussdrv_open() failed


I’ve been playing with this Beaglebone Black Wireless for several months now, and I feel like I’ve come pretty far from out-right newbie status, but after struggling for so long to program one of the BBBW’s PRUs I’m starting to feel like a newbie again. Please help!

I’ve been following this tutorial - - mostly because it makes intuitive sense to me.

It says that to program the PRU, you have to use a device tree overlay to set up the gpios pins and their configuration for the PRU to be able to use them, then you have to write a .c program to load assembly code into the PRU after you compile it into .bin with ./pasm. This all seems relatively simple, and I’ve been able to get everything to compile and I can load my overlay into /sys/devices/platform/bone_capemgr/slots with no issues. But as soon as I try to load my compiled assembly code into the PRU with:

“./pru_loader pru_gpio_test.bin” - as instructed by the tutorial

I get the error “prussdrv_open() failed”

Can anyone help me please?? I’m so stuck and I’m not finding information on existing threads that works for me.

my uname -a read out is:

Linux beaglebone 4.9.45-ti-r57 #1 SMP PREEMPT Fri Aug 25 22:58:38 UTC 2017 armv7l GNU/Linux

when I run lsmod |grep pru :

pruss_soc_bus 4788 0
pru_rproc 14966 0
pruss_intc 9092 1 pru_rproc
pruss 10889 1 pru_rproc

I haven’t altered the pru_loader.c code at all from what is shown on the tutorial page, and I only made minor adjustments to the .dts file and assembly code. I will provide those if it helps.

Thank you for reading! Please get back to me soon!

Hi Evan!

Your example is based on libprussdrv. In order to use it, the uio_pruss kernel driver is required. Unfortunatelly the pru_rproc driver is still default. Find details on how to adapt it at this link: