int main(void) { const int cpu = procnum(); lock_lock(&lock); printf("Hello from processor %d\n", procnum()); lock_unlock(&lock); set_irq_handler(irq_handler); enable_hw_irq(0); irq_enable(); soclib_io_set( base(TIMER), procnum()*TIMER_SPAN+TIMER_PERIOD, period[cpu]); soclib_io_set( base(TIMER), procnum()*TIMER_SPAN+TIMER_MODE, TIMER_RUNNING|TIMER_IRQ_ENABLED); while (1) pause(); return 0; }
int main(void) { uint32_t time = 0; int cpu = procnum(); printf("hello From Nios II processor %d\n", procnum()); printf("start FIR application excecution"); printf("\n"); soclib_io_set(timer_address, TIMER_VALUE, 0); soclib_io_set(timer_address, TIMER_MODE, TIMER_RUNNING); fir_n(a, b, c); // time = soclib_io_get(timer_address, TIMER_VALUE); // printf("\nInterruption caught on proc "); // printf("%d", cpu); printf(" at time "); // printf("%d \n", (int) time); // printf("\n"); printf("end of FIR testing "); printf("\n"); int *p=(int*)0x0100A000; *p = -1; while (1) ; /* TRAP; */ return (0); }
void irq_handler(int irq) { printf("IRQ handle\n\n"); uint32_t ti; int count = atomic_add(&interrupt_counter, 1); ti = soclib_io_get( base(TIMER), procnum()*TIMER_SPAN+TIMER_VALUE); printf("IRQ %d received at cycle %d on cpu %d, %d interrupts received\n\n", irq, ti, procnum(), count); soclib_io_set( base(TIMER), procnum()*TIMER_SPAN+TIMER_RESETIRQ, 0); }
int main(void) { puts("hello from processor "); putchar(procnum()+'0'); putchar('\n'); int i, samples; //printf("Hello from processor %d\n", procnum()); ///printf("start FIR application excecution\n"); puts("start FIR application excecution"); putchar('\n'); for (i = 0; i <64; i++) { samples = i*2; printf("samples = %d\n", samples); } ////printf("end of FIR testing\n"); puts("end of FIR testing"); putchar('\n'); //int *p=(int*)0x0100A000; //*p = -1; /* itoa(*p,s); */ /* uputs(s); */ while (1) ; /* TRAP; */ return 0; }
void irq_handler(int irq) { uint32_t ti; int left = atomic_add(&max_interrupts, -1); ti = soclib_io_get( base(TIMER), procnum()*TIMER_SPAN+TIMER_VALUE); lock_lock(&lock); printf("IRQ %d received at cycle %d on cpu %d %d interrupts to go\n\n", irq, ti, procnum(), left); lock_unlock(&lock); soclib_io_set( base(TIMER), procnum()*TIMER_SPAN+TIMER_RESETIRQ, 0); if ( ! left ) exit(0); }
int main(void) { printf("Hello from processor %d\n", procnum()); set_irq_handler(irq_handler); enable_hw_irq(0); irq_enable(); while (1){ pause(); } return 0; }
int main(void) { const int cpu = procnum(); int i; printf("Cpu %x booted\n", cpu); for (i=0; i<100; ++i) { lock_lock(&lock); printf("Hello from cpu %x\n", cpu); lock_unlock(&lock); } if (atomic_inc(&count) == 4) exit(0); while(1); }
void irq_handler() { char data = soclib_io_get( base(TTY), procnum()*TTY_SPAN + TTY_READ ); soclib_io_set( base(TTY), procnum()*TTY_SPAN + TTY_WRITE, data); }
int main(void) { const int cpu = procnum(); //unsigned int time; printf("Hello from processor %d\n", procnum()); set_irq_handler(irq_handler); // irq_set_pil(0); // enable_hw_irq(0); // irq_enable(); // included in enable_hw_irq(); printf("TIMER_BASE:%x\n",base(TIMER)); printf("TIMER_SPAN:%d\n",TIMER_SPAN); printf("TIMER_RERIOD:%d\n",TIMER_PERIOD); // time = soclib_io_get( // base(TIMER), // procnum()*TIMER_SPAN+TIMER_VALUE); // printf("timer value:%d\n",time ); soclib_io_set( base(TIMER), procnum()*TIMER_SPAN+TIMER_PERIOD, 10000); // period[cpu]); soclib_io_set( base(TIMER), procnum()*TIMER_SPAN+TIMER_MODE, TIMER_RUNNING|TIMER_IRQ_ENABLED); int i=0; /* for(;i<100000;i++) { for(;j<10000;j++) ; } */ for (i=0;i<20;i++) { if(i%NCPU==cpu) { printf("Fifo %d : %d\n",i,fibo(i)); } } time = soclib_io_get( base(TIMER), procnum()*TIMER_SPAN+TIMER_VALUE); finish_bit[cpu]=1; while(1) { int flag=0; // printf("==========\n"); for(i=0;i<NCPU;i++) { flag+=finish_bit[cpu]; // printf("%d ",finish_bit[cpu]); } // printf("\n"); if (flag == NCPU) { break; } } printf("RUN_TIME:%d\n",time ); while (1) ; // pause(); return 0; }