Pru Reset without BBB reboot?

Hello,

In tests with clpru C programs, the problem arises again and again that the Pru hangs up.
A simple LED Bink program can then no longer be started.
Is there a way to reset the Pru without rebooting the BBB?
Tips from the network have not worked for me so far.

thanks to all experts

Peter

My BBB Setup:

root@beaglebone:/var/lib/cloud9/Packages/ti_cgt_pru_2.3.1# /opt/scripts/tools/version.sh
git:/opt/scripts/:[5d0cce48cbd05aafa0d1e7cc1583f5f9a57c199c]
eeprom:[A335BNLT000C1820BBBG0775]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Image 2018-06-17]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot 2018.09-00002-g0b54a51eee]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2018.03-00002-gac9cce7c6a]:[location: dd MBR]
kernel:[4.14.53-ti-r62]
nodejs:[v6.14.4]
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[disable_uboot_overlay_video=1]
uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo]
uboot_overlay_options:[enable_uboot_cape_universal=1]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade ]
pkg:[bb-cape-overlays]:[4.4.20181019.0-0rcnee0~stretch+20181019]
pkg:[bb-wl18xx-firmware]:[1.20180517-0rcnee0~stretch+20180517]
pkg:[kmod]:[23-2rcnee1~stretch+20171005]
pkg:[roboticscape]:[0.4.4-git20180608.0-0rcnee0~stretch+20180609]
pkg:[firmware-ti-connectivity]:[20170823-1rcnee1~stretch+20180328]
groups:[debian : kmem root adm dialout cdrom floppy sudo audio dip video plugdev users systemd-journal i2c bluetooth netdev cloud9ide gpio pwm eqep admin spi tisdk weston-launch xenomai]
cmdline:[console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet]
dmesg | grep pinctrl-single
[ 1.099779] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
dmesg | grep gpio-of-helper
[ 1.110259] gpio-of-helper ocp:cape-universal: ready
END

It looks like you're using the UIO bindings for the PRU. If you're
also using the prussdrv library, just call the prussdrv_pru_reset()
function.

Otherwise, there's an enable and reset bit in the PRU control register
(PRU_ICSS_PRU_CTRL register 0: CTRL bit 0: SOFT_RST_N and bit 1: EN).
See the PRU section of the TRM for details.

Many many thanks. prussdrv_pru_reset () make the job.
Two very good tips.
This is going to be a nice day. :slight_smile:
All good for you
Peter