Hi. I managed to compile a PRU binary and get it running.
I created a simple web app to start at bootup, with a simple script to
configure the pins before starting the server. It turned out that the file
`/sys/class/remoteproc/remoteproc2/state` was not present for the first ~20
seconds after boot, causing the configuration script to fail. I created the
following script to overcome this:
```
$ cat
configure_pru.sh
#/bin/sh
while [ ! -e /sys/class/remoteproc/remoteproc2/state ]
do
echo "waiting for remoteproc to start"
sleep 1
done
config-pin 8.45 pruout
config-pin 8.46 pruin
config-pin 8.39 pruout
config-pin 8.40 pruin
config-pin 8.27 pruout
config-pin 8.29 pruin
config-pin 8.28 pruout
config-pin 8.30 pruin
echo -n start > /sys/class/remoteproc/remoteproc2/state
```
This worked well as a kludge until I upgraded my kernel. Now at kernel
`4.14.108-ti-r124` this no longer works, as the file will be present
immediately after boot.
Right now, the PRU code will not run correctly if I start the web service
just after boot. It I wait half a minute before configuring the PRU,
everything works well. I expect that I need to wait for some service to
start up after boot, before initializing the PRU, but I have not found any
documentation mention of how to do this.
So my question is: how could I detect that the PRU is ready for use after
boot. Just now I am using a `sleep`, but this is not a robust solution.
Extra question: Is there a way to boot the PRU code automatically at boot
without having to echo `start` to the `state`file?
Thx
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/beagleboard/1c6aa8c3-a242-4966-a79c-28305fe082b7%40googlegroups.com.