//#include "func_gen.h"
//#include "project_para.h"
#include "ARM_CommBlock_v1.h"
#include "xil_types.h"
#include "xil_io.h"

u32 reg_value;
u32 reg_val;
__uint8_t reg1, reg2,reg3,reg4;
//u32 Read_registers(u32* addr, u32 size)
//{
//	xil_printf("este es la addr %d\n\r",addr);
//   for(int i=0; i<size; i++){
//   reg_value= Xil_In32(reg_block_base_addr+4* addr[i]);
//	   xil_printf("este es el reg %d\n",reg_value);
//	   xil_printf("len reg_value= %d\n", sizeof(reg_value));
//      trans_buf[i]= reg_value;
//   }
// return reg_value;
//
//
//}
		
		
//void Write_registers(u32* addr, u32* val, u32 size)
//{
////	xil_printf("Write Address %d\n\r", addr[0]);
////	xil_printf("Write Value %d\n\r", val[0]);
//    xil_printf("Number of Addresses %d\n\r",size);
//    for(int i=0; i<size; i++){
//
////    	Xil_Out32(reg_block_base_addr + 4*addr[i], val[i]);
//
//    	reg_val= Xil_In32(reg_block_base_addr + 4*addr[i]);
//
//       xil_printf("Write address %d	 Value written %d\n\r", addr[i], reg_val);
//    }
//
//}
//
//void Read_FIFO_Stream(u32* addr, u32* val, u32 size){
//	xil_printf("Number of Addresses %d\n\r",size);
//	for(int i=0; i<size; i++){
////		FIFO_STREAM_ADDR = INTAN_A_RX_BUF_BASE+addr[i];
////		cur_buf = ( u8* ) FIFO_STREAM_ADDR;
////		xil_printf("FIFO Stream Address 0x%x\n\r", FIFO_STREAM_ADDR);
//	}
//	if(FIFO_STREAM_ADDR !=0){
//		xil_printf("Set the variables \n\r");
//		strvar = "read_sfifo";
////		eTxCnt = 0;
//	}
//
//}

//
//void Read_FIFO(u32* addr, u32 size)
//{  addr= comblock_FIFO_RD;
//	fifo_status=Xil_In32(comblock_FIFO_STATUS);
//	xil_printf("fifo_status : %d",fifo_status);
//   if((fifo_status&0x00000001)!=1){ //Si no esta vacia
//	   xil_printf("fifo_status 1 ");
//	for (int var = 0; var < size-1; ++var) {
//		trans_bufifo[var] = Xil_In32(addr);
//	 }
//   }
//  else{
//	  xil_printf("fifo_status 0 ");
//	for (int var = 0; var < size-1; ++var) {
//	trans_bufifo[var] = 0;
//	}
//  }
//}
//
//
//void Write_FIFO(int addr, int val)
//{    int tipo;
//     tipo=addr;
//     addr= comblock_FIFO_RD;  //Buscar la de write
//	//Tal vez tenga que preguntar constantemente por la bandera de full
//	 //if((fifo_status&0x00000001)!=1){ //Si no esta llena, ver el numero que me da estatus de full
//        if (tipo==0){
//	  for (int dir=0; dir<=1024; dir++){
//		Xil_Out32(addr,val);
//	  }
//	//}
//    }
//        else{
//            Xil_Out32(addr,val);
//        	int a;
//        	a= addr;
//        	reg_val= Xil_In32(a);
//			xil_printf("este es el add+diram %x \n\r", a);
//			xil_printf("este es el reg %d con valor %d \n\r",a, reg_val);
//
//        }
//
//}
//
//void Read_TDRAM(u32* addr, u32 size)
//{  u32 addrbase= comblock_TDPR_addr+addr[0];
//xil_printf("este es el addbase%x \n\r", addrbase);
//   for (int dir=0; dir<=size*4; dir+=4){
//	   xil_printf("entre en el for \n\r");
//	   int a;
//	   a= addrbase+dir;
//	trans_bufram[dir/4]=Xil_In32(addrbase+dir);
//	xil_printf("este es el add+dir %x \n\r", a);
//	xil_printf("este es el reg %d con valor %d \n\r",dir, trans_bufram[dir/4]);
//    }
//}
//
//void Write_TDRAM(u32 * addr, u32 * val, u32 size)
//{
//	u32 addrbase;
//	addrbase= comblock_TDPR_addr;
//	if (size == 1){
//xil_printf("este es el add %x \n\r", addrbase);
//	 for(int dir=0; dir<=2048*4; dir+=4){
//		xil_printf("entre en el for\n\r");//ver aqui si lo dejo como size o si multiplico por 4
//		xil_printf("este es el val \n\r",val[0]);
//		Xil_Out32(addrbase+dir,val[0]);
//		xil_printf("ya escribi\n\r");
//		int a;
//		a= addrbase+dir;
//		xil_printf("este es el add+dir %x \n\r", a);
//		reg_val= Xil_In32(addrbase+ dir);
//		xil_printf("este es el reg %d con valor %d \n\r",dir, reg_val);
//	}
//	}
//	else{
//		for (int i=0; i<size*4; i+=4){
//		Xil_Out32(addrbase+i,val[i/4]);
//		int a;
//	    a= addrbase+i;
//		reg_val= Xil_In32(a);
//		xil_printf("este es el add+diram %x \n\r", a);
//		xil_printf("este es el reg %d con valor %d \n\r",i, reg_val);
//		}
//	}
//}
//
