PRU fails on startup, but works after login

Essentially, my issue is that I can successfully execute my program after sshing to the BBB, logging in as root or default user, and manually executing the program (all overlays are enabled in a startup script beforehand). However, if I attempt to execute my program from a startup script, it fails when it reaches the first point from which it must access a PRU, leading me to believe that is the issue.

Is there an issue with trying to activate and use a PRU on startup? The program runs perfectly if I manually execute it.

Some output from dmesg:

[ 15.303395] bone-capemgr bone_capemgr.9: part_number ‘hcsr04’, version ‘N/A’
[ 15.303471] bone-capemgr bone_capemgr.9: slot #13: generic override
[ 15.303489] bone-capemgr bone_capemgr.9: bone: Using override eeprom data at slot 13
[ 15.303506] bone-capemgr bone_capemgr.9: slot #13: ‘Override Board Name,00A0,Override Manuf,hcsr04’
[ 15.303610] bone-capemgr bone_capemgr.9: slot #13: Requesting part number/version based 'hcsr04-00A0.dtbo
[ 15.303626] bone-capemgr bone_capemgr.9: slot #13: Requesting firmware ‘hcsr04-00A0.dtbo’ for board-name ‘Override Board Name’, version ‘00A0’
[ 15.305476] bone-capemgr bone_capemgr.9: slot #13: dtbo ‘hcsr04-00A0.dtbo’ loaded; converting to live tree
[ 15.306536] bone-capemgr bone_capemgr.9: slot #13: #3 overlays
[ 15.331439] omap_hwmod: pruss: failed to hardreset
[ 15.343639] bone-capemgr bone_capemgr.9: slot #13: Applied #3 overlays.
[ 15.362146] pruss_uio 4a300000.pruss: pins are not configured from the driver (this might be the issue? Can’t find anything telling me how to fix it)

What I have tried:
Executing modprobe uio_pruss manually in the startup script
An older solution found here:!topic/beagleboard/gqCjxh4uZi0 (it’s the fourth post down)

Any assistance would be much appreciated.

I recently had an error that looked quite similiar.

It turned out that the difference between "startup script" and "started
from shell" in my case was the current working directory: as startup
script the program was started in / and did not find the binaries it
tried to upload to the PRU --> fail.

Another typical difference are the environment variables. Your program
might depend on some environment variables not set when started from a
startup script.