It's generally considered good design practice to bring up GPIOs low. But there are exceptions. I'm not sure what the PRU will do when it is disabled. I did the same thing months ago, and I do remember LEDs being lit or dimly lit after boot. Ultimately I got past that concern and it didn't seem to be a problem.
The Remoteproc framework does the job of loading the firmware into the PRUs. This happens seamlessly and the user doesn't do this explicitly. The firmwares should be compiled with clpru and renamed to am335x-pru0-fw and am335x-pru1-fw respectively and then copied to /lib/firmware. So you have 2 firmwares each indendently running in the PRU0 and PRU1. Of course they can interact in various ways. You could also use only one PRU if you don't need both by only having one firmware in /lib/firmware. There are special files which the clpru must incorporate into the compilation process and ultimately the firmware. I've added a little section on this in the PDF file. The TI folks gave me this info. Remoteproc and Linker involved. Best thing to do is to examine the labs and examples in the PRU software package provided by TI. The labs instructions are designed for the CCS IDE. You can avoid that and get everything done on the Beaglebone via SSH and command line. Really not that hard and you need to be an expert at the command line anyway if you want to be an embedded systems designer. Maybe I'll use CCS later, but for now SSH + command line is working for me well. Look at the Labs instructions anyway, as this will give a whole bunch of hints and clues on how to deal with Remoteproc and PRUs. There is also an examples directory which overlaps some of the labs. Good stuff in there, you can dig into the C code and see how to get things done. A good start is the usual LED blinker, this will show how to manipulate the __R30 register to make the header pins go HIGH and LOW programatically from the PRUs. You will find the compiler intrinsic __delay_cycles() to be extremely useful. On Tuesday, November 15, 2016 at 10:13:32 AM UTC-5, Zach B wrote: > > Thanks for the detailed response that helped clear up a bit of confusion I > was having. I've also been rereading through your pdf. I got the > remote_proc up and running again. I started playing around with config-pin > and "Universal IO" and was able to successfully toggle the pins how I > wanted. However, I still have a few questions. I am debugging with a simple > led attached to some pins, ultimately I am going to be driving some ESCs > and then later building a custom brushless DC motor controller but that's > another animal. > > First question, when I set pin P8_11 to "pruout", my testing led turns on, > does this mean that the pin is automatically set to "out hi" until I change > it again with config-pin? Is there a way to set the pin mode to PRU control > and then modify it by writing the desired 1 or 0 to the corresponding > register in the PRU code? > > Second question, is there a way to load a PRU binary program (either > compiled c or assembly) directly to the PRU's from the command line or do I > need a separate c program for that? That's the part I seems to be stumbling > over is how to get the program onto the PRU. > > I have some device tree questions, even though you recommended against > them. With the device trees, is there a list somewhere of the possible > targets that you can set? I have seen &ocp or &pruss and a few others but I > don't fully understand what these mean. If anyone has a good link to > learning about each piece of the device trees I will gladly take that as > well. > -- 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 beagleboard+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/10d2c643-1e9d-4d7e-8c0a-e5dc84369d26%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.