I had the same problem with you. My device tree overlay won't set the
PRUSS. So I tried recompiling the the main boneblack overlay where my PRUSS
pinmuxing is included and that solve the problem. However, I had to
separate the GPIO and the PRU overlays because I can't make the GPIO (OCP)
overlay work when it is in the main boneblack overlay.
On Wednesday, June 8, 2016 at 1:25:20 PM UTC+8, David Good wrote:
>
> Alright, I'm making some progress, but am having some issues:
>
> 1. I can't seem to get my device tree to change the mode of pins
> associated with the pruss, but other pins are configured correctly. Is
> there some kind of order that the PRU firmware and device tree has to load
> in?
>
> /* Start EBB-PRU-Example.dts */
> /dts-v1/;
> /plugin/;
>
> / {
> compatible = "ti,beaglebone", "ti,beaglebone-black";
>
> part-number = "EBB-PRU-Example";
> version = "00A0";
>
> /* This overlay uses the following resources */
> exclusive-use =
> "P9.11", "P9.13", "P9.27", "P9.28", "pru0";
>
> fragment@0 {
> target = <&am33xx_pinmux>;
> __overlay__ {
>
> gpio_pins: pinmux_gpio_pins { // The GPIO pins
> pinctrl-single,pins = <
> 0x070 0x07 // P9_11 MODE7 | OUTPUT | GPIO pull-down
> 0x074 0x27 // P9_13 MODE7 | INPUT | GPIO pull-down
> >;
> };
>
> pru_pru_pins: pinmux_pru_pru_pins { // The PRU pin modes
> pinctrl-single,pins = <
> 0x1a4 0x05 // P9_27 pr1_pru0_pru_r30_5, MODE5 | OUTPUT |
> PRU
> 0x19c 0x26 // P9_28 pr1_pru0_pru_r31_3, MODE6 | INPUT | PRU
> >;
> };
> };
> };
>
> fragment@1 { // Enable the PRUSS
> target = <&pruss>;
> __overlay__ {
> status = "okay";
> pinctrl-names = "default";
> pinctrl-0 = <&pru_pru_pins>;
> };
> };
>
> fragment@2 { // Enable the GPIOs
> target = <&ocp>;
> __overlay__ {
> gpio_helper {
> compatible = "gpio-of-helper";
> status = "okay";
> pinctrl-names = "default";
> pinctrl-0 = <&gpio_pins>;
> };
> };
> };
> };
> /* End EBB-PRU-Example.dts */
>
>
> 2. I've got one of the TI examples compiled running as
> /lib/firmware/am335x-pru0-fw
> dmesg seems to show that it loads successfully, without errors.
>
> #include <stdint.h>
> #include <pru_cfg.h>
> #include "resource_table_empty.h"
>
> volatile register uint32_t __R30;
> volatile register uint32_t __R31;
>
> void main(void)
> {
>
> uint32_t gpio;
>
> /* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */
> CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
>
> /* gpio = 0x000F; */
> /* gpio = (1 << 5); */
> gpio = 0x0010;
>
> __R30 = 0x0;
>
> /* Toggle the LEDs */
> /* TODO: Create stop condition, else it will toggle indefinitely */
> while (1) {
> __R30 ^= gpio;
>
> __delay_cycles(100000000);
>
> }
> }
>
> As you can see, main is an infinite loop. This means that if I try to
> rmmod pru-rproc, I get the following error:
> rmmod: ERROR: Module pru_rproc is in use
>
> This means that I have to reboot in order to update the code. How do I
> either force the pru to unload or send it signals to stop so I don't have
> to reboot everytime?
>
> Thanks again!
>
> --David
>
>
> On Wed, May 11, 2016 at 5:57 PM, Greg <[email protected] <javascript:>>
> wrote:
>
>> Ok, thanks-- no insurmountable legal issues for sharing your own PRU
>> code. Beagleboard PRU fans, please start your code sharing engines!
>>
>> Greg
>>
>>
>> --
>> 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] <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/beagleboard/566d5ab7-7b0d-4445-8c2c-0ed6004d1242%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/beagleboard/566d5ab7-7b0d-4445-8c2c-0ed6004d1242%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
--
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/54a85a4a-d0bf-44d2-a6bf-bfb88c4df707%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.