Hello Bruce in my opinion your missing some things important 1 Most important what's it doing?2 This is the BB AI correct?3 Where did this code come from?4 What is your ARM OS and version. Compiler host details5 Brief Summary of what you tried with important details(start from 5 and work backwards trying to keep it clear and concise)
Sent from Yahoo Mail on Android On Mon, May 24, 2021 at 10:44 AM, Bruce Chidester<[email protected]> wrote: Maybe some code in the post will promote some response: Main Application: #include <stdio.h> #include <pruss_intc_mapping.h> #include <prussdrv.h> #include <poll.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #define DEVICE_NAME "/dev/rpmsg_pru30" int main(int argc, char* argv[]){ int result = 0; struct pollfd pollfds[1]; pollfds[0].fd = open(DEVICE_NAME, O_RDWR); if (pollfds[0].fd < 0) { printf("Failed to open %s\n", DEVICE_NAME); return -1; } /* Send 'hello world!' to the PRU through the RPMsg channel */ result = write(pollfds[0].fd, "hello world!", 13); while (1) { prussdrv_pru_wait_event(PRU_EVTOUT_0); printf("Responding to interrupt\n"); prussdrv_pru_clear_event(PRU_EVTOUT_0, PRU0_ARM_INTERRUPT); } return 0; } PRU Code: #include <stdint.h> #include <pru_cfg.h> #include <pru_intc.h> #include "resource_table_empty.h" volatile register uint32_t __R30; volatile register uint32_t __R31; #define PRU_ARM_INTERRUPT 19 #define HOST_NUM 2 #define CHAN_NUM 2 #define PRU_ARM_INTERRUPT_PULSE 0x23 #define HOST_INT ((uint32_t) 1 << 31) // PRU Interrupt control registers #define PRU_INTC 0x00020000 // Start of PRU INTC registers TRM 4.3.1.2 #define PRU_INTC_GER ((volatile uint32_t *)(PRU_INTC + 0x10)) // Global Interrupt Enable, TRM 4.5.3.3 #define PRU_INTC_SICR ((volatile uint32_t *)(PRU_INTC + 0x24)) // Interrupt, TRM 4.5.3.6 #define PRU_INTC_GPIR ((volatile uint32_t *)(PRU_INTC + 0x80)) // Interrupt, TRM 4.5.3.11 void main(void){ /* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */ CT_CFG.SYSCFG_bit.STANDBY_INIT = 0; // Globally enable host interrupts CT_INTC.GER = 0x1; /* Clear any pending PRU-generated events */ __R31 = 0x00000000; /* Enable Host interrupt 2 */ CT_INTC.HIEISR |= HOST_NUM; //Enable the system event to be propagated through the INTC CT_INTC.EISR |= PRU_ARM_INTERRUPT; /* Map channel 2 to host 2 */ CT_INTC.HMR0_bit.HINT_MAP_2 = CHAN_NUM; /* Map PRU0_ARM_INTERRUPT (event 19) to channel 2 */ CT_INTC.CMR4_bit.CH_MAP_19 = CHAN_NUM; /* Ensure PRU_ARM_INTERRUPT is cleared */ CT_INTC.SICR = PRU_ARM_INTERRUPT; volatile uint32_t gpio; /* Clear SYSCFG[STANDBY_INIT] to enable OCP master port */ CT_CFG.SYSCFG_bit.STANDBY_INIT = 0; gpio = 0x000F; while (!(__R31 & HOST_INT)) { } while (1) { __R30 ^= gpio; __delay_cycles(1000000000); __R31 = PRU_ARM_INTERRUPT_PULSE; // Clear interrupt CT_INTC.SICR = 15; } } On Sunday, May 23, 2021 at 2:10:24 PM UTC-5 Bruce Chidester wrote: Group, I have been attempting to make a messaging example and I am either very close or so far away I don't realize it since I cannot seem to get it to respond. Once I get it working I will leave the answer for the world, please help me get this example working. It is at: https://gitlab.com/brucechidester/pru-messaging-example In summary, it is the smallest possible example where the application code sends an interrupt (or message) to the PRU and the PRU sends an interrupt every second (with a GPIO pulse). Every time the pulse is sent from the PRU, the main application prints a message. Thanks in advance. -- 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/176deb85-62a7-4370-890a-c7ae7873d168n%40googlegroups.com. -- 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/1669188830.2230694.1621876388447%40mail.yahoo.com.
