⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dma_peek.c

📁 universeII驱动
💻 C
字号:
#include <vme/vme.h>#include <vme/vme_api.h>#include <stdio.h>#define VME_ADDRESS       0x08000000#define ADDRESS_MODIFIER  VME_A32SD#define NBYTES            0x40int main(){	vme_bus_handle_t bus_handle;	vme_dma_handle_t dma_handle;	uint8_t *ptr;	int ii;	if (vme_init(&bus_handle)) {		perror("Error initializing the VMEbus");		return -1;	}	if (vme_dma_buffer_create(bus_handle, &dma_handle, NBYTES, 0, NULL)) {		perror("Error creating the buffer");		vme_term(bus_handle);		return -1;	}	ptr = vme_dma_buffer_map(bus_handle, dma_handle, 0);	if (!ptr) {		perror("Error mapping the buffer");		vme_dma_buffer_release(bus_handle, dma_handle);		vme_term(bus_handle);		return -1;	}	/* Transfer the data */	if (vme_dma_read(bus_handle, dma_handle, 0, VME_ADDRESS,			 ADDRESS_MODIFIER, NBYTES, 0)) {		perror("Error reading data");		vme_dma_buffer_unmap(bus_handle, dma_handle);		vme_dma_buffer_release(bus_handle, dma_handle);		vme_term(bus_handle);		return -1;	}	/* Print the VMEbus data */	for (ii = 0; ii < NBYTES; ++ii, ++ptr) {		printf("%.2x ", *ptr);		/* Add a newline every 16 bytes */		if (!((ii + 1) % 0x10))			printf("\n");	}	printf("\n");	if (vme_dma_buffer_unmap(bus_handle, dma_handle)) {		perror("Error unmapping the buffer");		vme_dma_buffer_release(bus_handle, dma_handle);		vme_term(bus_handle);		return -1;	}	if (vme_dma_buffer_release(bus_handle, dma_handle)) {		perror("Error releasing the buffer");		vme_term(bus_handle);		return -1;	}	if (vme_term(bus_handle)) {		perror("Error terminating");		return -1;	}	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -