Ejemplo n.º 1
0
int request_irq(int irqno,void (*handler)(void))
{
	if (irqno < 0 || irqno > 63){
		return -1;
	}

	if (irqno < 32){
		VIC0VECTADDR[irqno] = (unsigned int)handler;
		set_1(VIC0INTENABLE,irqno);
	}else{
		irqno = irqno - 32;
		VIC1VECTADDR[irqno] = (unsigned int)handler;
		set_1(VIC1INTENABLE,irqno);
	}
	__asm__ __volatile__(
		"mrs	r0,cpsr\n\t"
		"bic	r0,r0,#0x80\n\t"
		"msr	cpsr,r0\n\t"
		:
		:
		:"r0"
	);
	
	return 0;
}
Ejemplo n.º 2
0
int main() 
{
   int n,i,r;
   printf("Enter number and index:");
   scanf("%d",&n);
   scanf("%d",&i);
   
   printf("\n Given number");
   display(n);
   printf("\t Decimal Equivalant: %d",n);
   
   printf("\n Bit %d set to 1:",i);
   r=set_1(n,i);
   display(r);
   printf("\t Decimal Equivalant: %d",r);
   
   printf("\n Bit %d set to 0:",i);
   r=set_0(n,i);
   display(r);
   printf("\t Decimal Equivalant: %d",r);
   
   printf("\n Toggled Bit %d:",i);
   r=toggle(n,i);
   display(r);
   printf("\t Decimal Equivalant: %d",r);
   
   printf("\n Toggled Except Bit %d:",i);
   r=toggle_except(n,i);
   display(r);
   printf("\t Decimal Equivalant: %d",r);
   
   printf("\n Right Rotate:");
   r=rotate_right(n);
   display(r);
   printf("\t Decimal Equivalant: %d",r);
   
   printf("\n Left Rotate:");
   r=rotate_left(n);
   display(r);
   printf("\t Decimal Equivalant: %d",r);
   
   printf("\n Swap Nibble: ");
   r=swap(n);
   display(r);
   printf("\t Decimal Equivalant: %d",r);
   
   return 0;
}