mirror of
				https://github.com/fairwaves/UHD-Fairwaves.git
				synced 2025-11-03 21:43:15 +00:00 
			
		
		
		
	Update usrp_e.h file. Change programs to use struct element status instead of flags.
This commit is contained in:
		@@ -81,13 +81,20 @@ static void *read_thread(void *threadid)
 | 
			
		||||
		}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		if (rx_data->flags & RB_OVERRUN)
 | 
			
		||||
		if (rx_data->status & RB_OVERRUN)
 | 
			
		||||
			printf("O");
 | 
			
		||||
 | 
			
		||||
		printf("rx_data->len = %d\n", rx_data->len);
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
		crc = 0xFFFFFFFF;
 | 
			
		||||
		for (i = 0; i < rx_data->len - 4; i++) {
 | 
			
		||||
		for (i = 0; i < rx_data->len - 4; i+=2) {
 | 
			
		||||
			crc = ((crc >> 8) & 0x00FFFFFF) ^
 | 
			
		||||
				crc_tab[(crc ^ rx_data->buf[i+1]) & 0xFF];
 | 
			
		||||
printf("idx = %d, data = %X, crc = %X\n", i, rx_data->buf[i+1],crc);
 | 
			
		||||
			crc = ((crc >> 8) & 0x00FFFFFF) ^
 | 
			
		||||
				crc_tab[(crc ^ rx_data->buf[i]) & 0xFF];
 | 
			
		||||
printf("idx = %d, data = %X, crc = %X\n", i, rx_data->buf[i],crc);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		p = &rx_data->buf[rx_data->len - 4];
 | 
			
		||||
@@ -96,7 +103,7 @@ static void *read_thread(void *threadid)
 | 
			
		||||
 | 
			
		||||
#if 1
 | 
			
		||||
		printf("rx_data->len = %d\n", rx_data->len);
 | 
			
		||||
		printf("rx_data->flags = %d\n", rx_data->flags);
 | 
			
		||||
		printf("rx_data->status = %d\n", rx_data->status);
 | 
			
		||||
		for (i = 0; i < rx_data->len; i++)
 | 
			
		||||
			printf("idx = %d, data = %X\n", i, rx_data->buf[i]);
 | 
			
		||||
		printf("calc crc = %lX, rx crc = %X\n", crc, rx_crc); 
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@ int main(int argc, char *argv[])
 | 
			
		||||
	tx_data = malloc(2048);
 | 
			
		||||
	rx_data = malloc(2048);
 | 
			
		||||
 | 
			
		||||
	tx_data->flags = 0;
 | 
			
		||||
	tx_data->status = 0;
 | 
			
		||||
	tx_data->len = sizeof(struct usrp_transfer_frame) + packet_data_length;
 | 
			
		||||
 | 
			
		||||
	while (1) {
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +63,7 @@ static void *read_thread(void *threadid)
 | 
			
		||||
		if (cnt < 0)
 | 
			
		||||
			printf("Error returned from read: %d\n", cnt);
 | 
			
		||||
 | 
			
		||||
//		printf("Packet received, flags = %X, len = %d\n", rx_data->flags, rx_data->len);
 | 
			
		||||
//		printf("Packet received, status = %X, len = %d\n", rx_data->status, rx_data->len);
 | 
			
		||||
//		printf("p->seq_num = %d\n", p->seq_num);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -119,7 +119,7 @@ static void *write_thread(void *threadid)
 | 
			
		||||
//		p->data[i] = random() >> 16;
 | 
			
		||||
		p->data[i] = i;
 | 
			
		||||
 | 
			
		||||
	tx_data->flags = 0xdeadbeef;
 | 
			
		||||
	tx_data->status = 0xdeadbeef;
 | 
			
		||||
	tx_data->len = 8 + packet_data_length * 2;
 | 
			
		||||
 | 
			
		||||
	printf("tx_data->len = %d\n", tx_data->len);
 | 
			
		||||
@@ -127,7 +127,7 @@ static void *write_thread(void *threadid)
 | 
			
		||||
	seq_number = 1;
 | 
			
		||||
 | 
			
		||||
	while (1) {
 | 
			
		||||
//		printf("tx flags = %X, len = %d\n", tx_data->flags, tx_data->len);
 | 
			
		||||
//		printf("tx status = %X, len = %d\n", tx_data->status, tx_data->len);
 | 
			
		||||
		p->seq_num = seq_number++;
 | 
			
		||||
		p->checksum = calc_checksum(p);
 | 
			
		||||
		cnt = write(fp, tx_data, 2048);
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,7 @@ static void *read_thread(void *threadid)
 | 
			
		||||
	while (1) {
 | 
			
		||||
 | 
			
		||||
		cnt = read(fp, rx_data, 2048);
 | 
			
		||||
//		printf("Packet received, flags = %X, len = %d\n", rx_data->flags, rx_data->len);
 | 
			
		||||
//		printf("Packet received, status = %X, len = %d\n", rx_data->status, rx_data->len);
 | 
			
		||||
//		printf("p->seq_num = %d\n", p->seq_num);
 | 
			
		||||
 | 
			
		||||
		if (p->seq_num != prev_seq_num + 1)
 | 
			
		||||
@@ -102,7 +102,7 @@ static void *write_thread(void *threadid)
 | 
			
		||||
//		p->data[i] = random() >> 16;
 | 
			
		||||
		p->data[i] = i;
 | 
			
		||||
 | 
			
		||||
	tx_data->flags = 0xdeadbeef;
 | 
			
		||||
	tx_data->status = 0xdeadbeef;
 | 
			
		||||
	tx_data->len = 8 + packet_data_length * 2;
 | 
			
		||||
 | 
			
		||||
	printf("tx_data->len = %d\n", tx_data->len);
 | 
			
		||||
 
 | 
			
		||||
@@ -75,7 +75,7 @@ static void *read_thread(void *threadid)
 | 
			
		||||
		}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		if (rx_data->flags & RB_OVERRUN)
 | 
			
		||||
		if (rx_data->status & RB_OVERRUN)
 | 
			
		||||
			printf("O");
 | 
			
		||||
 | 
			
		||||
		bytes_transfered += rx_data->len;
 | 
			
		||||
@@ -118,7 +118,7 @@ static void *write_thread(void *threadid)
 | 
			
		||||
//		p->data[i] = random() >> 16;
 | 
			
		||||
		p->data[i] = i;
 | 
			
		||||
 | 
			
		||||
	tx_data->flags = 0;
 | 
			
		||||
	tx_data->status = 0;
 | 
			
		||||
	tx_data->len = 8 + packet_data_length * 2;
 | 
			
		||||
 | 
			
		||||
	printf("tx_data->len = %d\n", tx_data->len);
 | 
			
		||||
@@ -146,7 +146,7 @@ static void *write_thread(void *threadid)
 | 
			
		||||
		}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//		printf("tx flags = %X, len = %d\n", tx_data->flags, tx_data->len);
 | 
			
		||||
//		printf("tx status = %X, len = %d\n", tx_data->status, tx_data->len);
 | 
			
		||||
		p->seq_num = seq_number++;
 | 
			
		||||
		p->checksum = calc_checksum(p);
 | 
			
		||||
		cnt = write(fp, tx_data, 2048);
 | 
			
		||||
 
 | 
			
		||||
@@ -28,12 +28,12 @@ struct usrp_e_ctl32 {
 | 
			
		||||
	__u32 buf[10];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// SPI interface
 | 
			
		||||
/* SPI interface */
 | 
			
		||||
 | 
			
		||||
#define UE_SPI_TXONLY	0
 | 
			
		||||
#define UE_SPI_TXRX	1
 | 
			
		||||
 | 
			
		||||
// Defines for spi ctrl register
 | 
			
		||||
/* Defines for spi ctrl register */
 | 
			
		||||
#define UE_SPI_CTRL_TXNEG	(1 << 10)
 | 
			
		||||
#define UE_SPI_CTRL_RXNEG	(1 << 9)
 | 
			
		||||
 | 
			
		||||
@@ -65,20 +65,22 @@ struct usrp_e_i2c {
 | 
			
		||||
#define USRP_E_I2C_READ		_IOWR(USRP_E_IOC_MAGIC, 0x25, struct usrp_e_i2c)
 | 
			
		||||
#define USRP_E_I2C_WRITE	_IOW(USRP_E_IOC_MAGIC, 0x26, struct usrp_e_i2c)
 | 
			
		||||
 | 
			
		||||
// Data transfer frame definition
 | 
			
		||||
/* Data transfer frame definition */
 | 
			
		||||
 | 
			
		||||
struct usrp_transfer_frame {
 | 
			
		||||
	__u32 flags;
 | 
			
		||||
	__u32 status;
 | 
			
		||||
	__u32 len;
 | 
			
		||||
	__u8  buf[];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Flag defines
 | 
			
		||||
/* Flag defines */
 | 
			
		||||
#define RB_USER (1 << 0)
 | 
			
		||||
#define RB_KERNEL (1 << 1)
 | 
			
		||||
#define RB_OVERRUN (1 << 2)
 | 
			
		||||
#define RB_DMA_ACTIVE (1 << 3)
 | 
			
		||||
 | 
			
		||||
struct ring_buffer_entry {
 | 
			
		||||
	unsigned int flags;
 | 
			
		||||
	unsigned long dma_addr;
 | 
			
		||||
	struct usrp_transfer_frame *frame_addr;
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user