void init_pru_program(){ tpruss_intc_initdata pruss_intc_initdata = PRUSS_INTC_INITDATA; prussdrv_init(); dbg("\tPRUSS driver was initialized...\n"); prussdrv_open(PRU_EVTOUT_0); prussdrv_pruintc_init(&pruss_intc_initdata); dbg("\tPRUSS driver intc was initialized...\n"); prussdrv_load_datafile(PRU_NUM, "./data.bin"); dbg("\tDatafile was loaded...\n"); prussdrv_exec_program_at(PRU_NUM, "./text.bin", START_ADDR); dbg("\tTextfile was loaded...\n"); }
int main (int ac, char** av) { tpruss_intc_initdata pruss_intc_initdata = PRUSS_INTC_INITDATA; uint32_t x[MEM_SIZE]; const size_t n = sizeof (x) / sizeof (x[0]); size_t i; size_t count = 0; printf ("n: %u \n", n); prussdrv_init (); if (prussdrv_open (PRU_EVTOUT_0)) { printf ("prussdrv_open open failed\n"); return -1; } prussdrv_pruintc_init (&pruss_intc_initdata); /* zero_words(n); */ /* write data from data.bin */ prussdrv_load_datafile (PRU_NUM, "./data.bin"); /* execute code on pru0 */ prussdrv_exec_program_at (PRU_NUM, "./text.bin", START_ADDR); // prussdrv_exec_program(PRU_NUM, "./text.bin"); signal (SIGINT, on_sigint); while (is_sigint == 0) { printf ("reading count: %d\n", count++); usleep (1000000); read_words (x, n); for (i = 0; i != n; ++i) { //printf("mem 0x%08x: (%f)\n", x[i], *((float*)(x + i))); printf ("mem %d %08x: (%08x)\n", i, (x + i), (unsigned int) (*(x + i))); } printf ("\n"); } /* disable pru and close memory mapping */ prussdrv_pru_disable (PRU_NUM); prussdrv_exit (); return 0; }
void init_pru_program(){ tpruss_intc_initdata pruss_intc_initdata = PRUSS_INTC_INITDATA; prussdrv_init(); prussdrv_open(PRU_EVTOUT_0); prussdrv_pruintc_init(&pruss_intc_initdata); // Get pointer to shared ram void* p; prussdrv_map_prumem(PRUSS0_SHARED_DATARAM, &p); shared_ram = (unsigned int*)p; prussdrv_load_datafile(PRU_NUM, "./data.bin"); prussdrv_exec_program_at(PRU_NUM, "./text.bin", START_ADDR); }