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

22 views
Skip to first unread message

evangr...@gmail.com

unread,
Feb 5, 2018, 7:06:32 PM2/5/18
to BeagleBoard
Hello,

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 - http://credentiality2.blogspot.com/2015/09/beaglebone-pru-gpio-example.html      - 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!

TJF

unread,
Feb 7, 2018, 10:56:25 AM2/7/18
to BeagleBoard
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:

https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_PRU_Options

BR
Reply all
Reply to author
Forward
0 new messages