void main(void){ struct pru_rpmsg_transport transport; uint16_t src, dst, len; volatile uint8_t *status;
/* Allow OCP master port access by the PRU so the PRU can read external memories */ CT_CFG.SYSCFG_bit.STANDBY_INIT = 0;
/* Clear the status of the PRU-ICSS system event that the ARM will use to 'kick' us */ CT_INTC.SICR_bit.STS_CLR_IDX = FROM_ARM_HOST;
/* Make sure the Linux drivers are ready for RPMsg communication */ status = &resourceTable.rpmsg_vdev.status; while (!(*status & VIRTIO_CONFIG_S_DRIVER_OK));
/* Initialize the RPMsg transport structure */ pru_rpmsg_init(&transport, &resourceTable.rpmsg_vring0, &resourceTable.rpmsg_vring1, TO_ARM_HOST, FROM_ARM_HOST);
/* Create the RPMsg channel between the PRU and ARM user space using the transport structure. */ while (pru_rpmsg_channel(RPMSG_NS_CREATE, &transport, CHAN_NAME, CHAN_DESC, CHAN_PORT) != PRU_RPMSG_SUCCESS); while (1) { if (__R31 & HOST_INT) { /* Clear the event status */ CT_INTC.SICR_bit.STS_CLR_IDX = FROM_ARM_HOST; /* Receive all available messages, multiple messages can be sent per kick */ while (pru_rpmsg_receive(&transport, &src, &dst, payload, &len) == PRU_RPMSG_SUCCESS) { while (__R31 & (1 << Start_signal)) { if (__R31 & (1 << Main_signal)) { strcpy((char *)payload, "I GOT 1"); pru_rpmsg_send(&transport, dst, src, payload, 7); } else { strcpy((char *)payload, "I GOT 0"); pru_rpmsg_send(&transport, dst, src, payload, 7); } __R31=0x0; } pru_rpmsg_send(&transport, dst, src, "No Transition", 12);
} } }}
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.569884] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.678319] Process irq/155-remotep (pid: 2939, stack limit = 0xdc14e 218)
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.685138] Stack: (0xdc14fe08 to 0xdc150000)
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.689518] fe00: dc915600 dc14fe7c 00000381 000000 01 dc14fe44 00000000
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.697736] fe20: dc915600 daba1b84 db3f6180 daba1b8c 0001ba6a db3f61 c4 dc14febc dc14fe48
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.705952] fe40: bf17c08c c08577fc 014000c0 dc14fe58 c016d074 c0dab9 00 db630000 c1504dc8
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.714170] fe60: bf17d6c4 bf17d488 bf17d6b0 bf17d678 daa7d400 daa7d8 38 00000200 dfd656f6
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.722386] fe80: 00000600 00000381 00000000 322c3fc6 dc14ff0c daa7d4 00 00000000 daba1664
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.730604] fea0: 00000001 dc6ee200 daba1640 c01acfc0 dc14fed4 dc14fe c0 c0856cec bf17bfe0
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.738822] fec0: db3b5800 00000000 dc14feec dc14fed8 c0b8b7e0 c0856c a8 db3b5a58 dc6ee200
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.747039] fee0: dc14ff04 dc14fef0 bf02c760 c0b8b7a4 daba1640 dc6ee2 00 dc14ff24 dc14ff08
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.755256] ff00: c01acfec bf02c744 dc14e000 00000000 daba1664 000000 01 dc14ff74 dc14ff28
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.763472] ff20: c01ad34c c01acfcc 00000004 c15f1440 dc14ff5c c1504d c8 00000000 00000000
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.771690] ff40: c01ad0f8 322c3fc6 daba135c daba1340 00000000 daba18 00 dc14e000 daba1640
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.779906] ff60: daba135c db23fd04 dc14ffac dc14ff78 c0163e20 c01ad1 e8 00000000 c01ad1dc
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.788123] ff80: 00000000 daba1800 c0163cdc 00000000 00000000 000000 00 00000000 00000000
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.796340] ffa0: 00000000 dc14ffb0 c0108fe8 c0163ce8 00000000 000000 00 00000000 00000000
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.804556] ffc0: 00000000 00000000 00000000 00000000 00000000 000000 00 00000000 00000000
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.812773] ffe0: 00000000 00000000 00000000 00000000 00000013 000000 00 00000000 00000000
Message from syslogd@beaglebone at Aug 30 20:59:26 ... kernel:[ 885.891844] Code: e50b303c e1a0a001 e50b2030 0a00009e (e5d05031)