Beispiel #1
0
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;
}
Beispiel #2
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);
}
Beispiel #3
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);
}
Beispiel #4
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;
}
Beispiel #5
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);
}
Beispiel #6
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;
}
Beispiel #7
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);
}
Beispiel #8
0
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);
}
Beispiel #9
0
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;
}