I understand that bringing up GPIOs low is good practice. I meant when I set the P8_11 using "config-pin P8_11 pruout" the pin is automatically pulled high it appears. Is there a way to set it as a "pruout" but as a low pruout to start. It appears to be defaulting to "HI" mode when set to "pruout"
Also I had thought that remoteproc was a program with an interface that allowed the user to load a compiled program to the PRU when the host c script was run, I didn't realize it only kicked in at initialization and loaded specific files in /lib/firmware. I was origianlly under the assumption that I needed to enable the remote_proc and uio_pruss and then use the following API in order to load and run the PRU program. http://processors.wiki.ti.com/index.php/PRU_Linux_Application_Loader_API_Guide#prussdrv_map_prumem Am I over complicating things? Also I have been avoiding use CCS because I wanted to avoid dependencies on automatic tools that abstract away what is running and how. On Tuesday, November 15, 2016 at 10:52:08 AM UTC-5, Greg wrote: > > 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/7e03081f-7862-4875-9d75-a8816f9614bd%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.