A novice for help! PRU __R30 GPO toggle.


I’m a beginner in BeagleBoard-X15. I’m using the beagleboard PRU and i want to debug the PRU gpio which using the CCS and the JTAG. I learned that PRU can directly control GPIO through __R30. I found out from the schematic diagram that the pin GPIO3_7 of P19 on Beagleboard-X15 is PR1_PRU0_GPO0. I want to output Toggle level directly through __R30 and then observe it through oscilloscope but it is doesn’t work.I don’t know what to do next.
Here is my code :


Have you run config-pin to make sure the pin in muxed to pruout?

Have you seen the PRU Cookbook? It has lots of examples that could help.


You have jtag and CCS supports direct register examinations

Set a breakpoint in main get out the TRM for bit settings of mux and config registers

Let us know what you expect them to be and what they are and what OS is running on ARM


HI Mark,

When I started getting boards, I had no idea what system was running in RAM right now. Then I burned the Linux kernel in, but I found that the config-pin tool output information is Beaglebone’s information. I’m wondering if I didn’t do a good job on the device configuration of BeagleBoard-x15.

Best regards,


Hi Mark,

I just want to control a GPO(pr1_pru0_gpo0) of PRU0 ICSS1 and make it output a toggled level. Isn’t PRU able to directly control its PIN?Or do I still need to configure it?The OS is linux kernel.

I suspect the system is hogging the resource so I can’t control it directly. Then I directly mapped the corresponding register address and configured it to be part of PRU pin’s mux function. The PRU finally has direct control over its output level, but I found that it can’t be used directly by the PRU without other pins doing the same configuration.

I Googled some information on Bealgebone, a note on using CCS with JTAG. There are mainly two doubts. One is that functions need to be configured by config-pin tool on ARM, but I found that this tool in my ARM kernel outputs information of Beaglebone, which makes me very frustrated. The other one is whether the PRU can directly configure the corresponding resources that PRU can use without using ARM. I saw a file about bbb_startup.js that seems to achieve a similar function, but BBX15 did not find it.

Best regards,



I think in your case Linux has configured pin. I don’t use Linux.
I’d look into Mark Y cookbook or

++The other one is whether the PRU can directly configure the corresponding resources that ++PRU can use without using ARM

You can Poke the registers using jtag and ccs thats what i was saying earlier

Mark L