mirror of
				https://github.com/fairwaves/UHD-Fairwaves.git
				synced 2025-11-04 05:53:17 +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
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (rx_data->flags & RB_OVERRUN)
 | 
							if (rx_data->status & RB_OVERRUN)
 | 
				
			||||||
			printf("O");
 | 
								printf("O");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							printf("rx_data->len = %d\n", rx_data->len);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						
 | 
				
			||||||
		crc = 0xFFFFFFFF;
 | 
							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 = ((crc >> 8) & 0x00FFFFFF) ^
 | 
				
			||||||
				crc_tab[(crc ^ rx_data->buf[i]) & 0xFF];
 | 
									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];
 | 
							p = &rx_data->buf[rx_data->len - 4];
 | 
				
			||||||
@@ -96,7 +103,7 @@ static void *read_thread(void *threadid)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#if 1
 | 
					#if 1
 | 
				
			||||||
		printf("rx_data->len = %d\n", rx_data->len);
 | 
							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++)
 | 
							for (i = 0; i < rx_data->len; i++)
 | 
				
			||||||
			printf("idx = %d, data = %X\n", i, rx_data->buf[i]);
 | 
								printf("idx = %d, data = %X\n", i, rx_data->buf[i]);
 | 
				
			||||||
		printf("calc crc = %lX, rx crc = %X\n", crc, rx_crc); 
 | 
							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);
 | 
						tx_data = malloc(2048);
 | 
				
			||||||
	rx_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;
 | 
						tx_data->len = sizeof(struct usrp_transfer_frame) + packet_data_length;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	while (1) {
 | 
						while (1) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -63,7 +63,7 @@ static void *read_thread(void *threadid)
 | 
				
			|||||||
		if (cnt < 0)
 | 
							if (cnt < 0)
 | 
				
			||||||
			printf("Error returned from read: %d\n", cnt);
 | 
								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);
 | 
					//		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] = random() >> 16;
 | 
				
			||||||
		p->data[i] = i;
 | 
							p->data[i] = i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tx_data->flags = 0xdeadbeef;
 | 
						tx_data->status = 0xdeadbeef;
 | 
				
			||||||
	tx_data->len = 8 + packet_data_length * 2;
 | 
						tx_data->len = 8 + packet_data_length * 2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	printf("tx_data->len = %d\n", tx_data->len);
 | 
						printf("tx_data->len = %d\n", tx_data->len);
 | 
				
			||||||
@@ -127,7 +127,7 @@ static void *write_thread(void *threadid)
 | 
				
			|||||||
	seq_number = 1;
 | 
						seq_number = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	while (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->seq_num = seq_number++;
 | 
				
			||||||
		p->checksum = calc_checksum(p);
 | 
							p->checksum = calc_checksum(p);
 | 
				
			||||||
		cnt = write(fp, tx_data, 2048);
 | 
							cnt = write(fp, tx_data, 2048);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -65,7 +65,7 @@ static void *read_thread(void *threadid)
 | 
				
			|||||||
	while (1) {
 | 
						while (1) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		cnt = read(fp, rx_data, 2048);
 | 
							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);
 | 
					//		printf("p->seq_num = %d\n", p->seq_num);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (p->seq_num != prev_seq_num + 1)
 | 
							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] = random() >> 16;
 | 
				
			||||||
		p->data[i] = i;
 | 
							p->data[i] = i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tx_data->flags = 0xdeadbeef;
 | 
						tx_data->status = 0xdeadbeef;
 | 
				
			||||||
	tx_data->len = 8 + packet_data_length * 2;
 | 
						tx_data->len = 8 + packet_data_length * 2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	printf("tx_data->len = %d\n", tx_data->len);
 | 
						printf("tx_data->len = %d\n", tx_data->len);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -75,7 +75,7 @@ static void *read_thread(void *threadid)
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (rx_data->flags & RB_OVERRUN)
 | 
							if (rx_data->status & RB_OVERRUN)
 | 
				
			||||||
			printf("O");
 | 
								printf("O");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		bytes_transfered += rx_data->len;
 | 
							bytes_transfered += rx_data->len;
 | 
				
			||||||
@@ -118,7 +118,7 @@ static void *write_thread(void *threadid)
 | 
				
			|||||||
//		p->data[i] = random() >> 16;
 | 
					//		p->data[i] = random() >> 16;
 | 
				
			||||||
		p->data[i] = i;
 | 
							p->data[i] = i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	tx_data->flags = 0;
 | 
						tx_data->status = 0;
 | 
				
			||||||
	tx_data->len = 8 + packet_data_length * 2;
 | 
						tx_data->len = 8 + packet_data_length * 2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	printf("tx_data->len = %d\n", tx_data->len);
 | 
						printf("tx_data->len = %d\n", tx_data->len);
 | 
				
			||||||
@@ -146,7 +146,7 @@ static void *write_thread(void *threadid)
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
#endif
 | 
					#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->seq_num = seq_number++;
 | 
				
			||||||
		p->checksum = calc_checksum(p);
 | 
							p->checksum = calc_checksum(p);
 | 
				
			||||||
		cnt = write(fp, tx_data, 2048);
 | 
							cnt = write(fp, tx_data, 2048);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,12 +28,12 @@ struct usrp_e_ctl32 {
 | 
				
			|||||||
	__u32 buf[10];
 | 
						__u32 buf[10];
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SPI interface
 | 
					/* SPI interface */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define UE_SPI_TXONLY	0
 | 
					#define UE_SPI_TXONLY	0
 | 
				
			||||||
#define UE_SPI_TXRX	1
 | 
					#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_TXNEG	(1 << 10)
 | 
				
			||||||
#define UE_SPI_CTRL_RXNEG	(1 << 9)
 | 
					#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_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)
 | 
					#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 {
 | 
					struct usrp_transfer_frame {
 | 
				
			||||||
	__u32 flags;
 | 
						__u32 status;
 | 
				
			||||||
	__u32 len;
 | 
						__u32 len;
 | 
				
			||||||
	__u8  buf[];
 | 
						__u8  buf[];
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Flag defines
 | 
					/* Flag defines */
 | 
				
			||||||
#define RB_USER (1 << 0)
 | 
					#define RB_USER (1 << 0)
 | 
				
			||||||
#define RB_KERNEL (1 << 1)
 | 
					#define RB_KERNEL (1 << 1)
 | 
				
			||||||
#define RB_OVERRUN (1 << 2)
 | 
					#define RB_OVERRUN (1 << 2)
 | 
				
			||||||
 | 
					#define RB_DMA_ACTIVE (1 << 3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct ring_buffer_entry {
 | 
					struct ring_buffer_entry {
 | 
				
			||||||
 | 
						unsigned int flags;
 | 
				
			||||||
	unsigned long dma_addr;
 | 
						unsigned long dma_addr;
 | 
				
			||||||
	struct usrp_transfer_frame *frame_addr;
 | 
						struct usrp_transfer_frame *frame_addr;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user