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

📄 dma.c

📁 嵌入式Linux系统下,ov965摄像头驱动.
💻 C
字号:
static int malloc_buffer(){        printk("malloc buffer\n");	if ((csi_data_buf = (U32 *) __get_free_pages(GFP_KERNEL, 8)))	// 128 pages = 128x4K = 512K	{		dma_buf_phy_addr = virt_to_phys((void *) csi_data_buf);//		dprintcsi2c("Buffer start: 0x%08x, DMA addr: 0x%08x\n",		printk("Buffer start: 0x%08x, DMA addr: 0x%08x\n",			    (int) csi_data_buf, (int) dma_buf_phy_addr);//			    (int) csi_data_buf, (int) dma_buf_phy_addr);	} else {		printk		    ("*** ERROR: cannot allocate buffer memory for driver ! ***\n");		return -1;	}	if ((csi_data_buf2 = (U32 *) __get_free_pages(GFP_KERNEL, 8)))	// 128 pages = 128x4K = 512K	{		dma_buf_phy_addr2 = virt_to_phys((void *) csi_data_buf2);	}	return 0;	// 128 pages = 128x4K = 512K}static void free_buffer(){	if (csi_data_buf)		__free_pages((void *) csi_data_buf, 8);	// 512K	if (csi_data_buf2)		__free_pages((void *) csi_data_buf2, 8);}//------------------------------------////      Capture image data with DMA////      Unified function for all //      supported image size capture////      Return TRUE if success//      Return FALSE if FIFO is overrun////------------------------------------static U32 SFCM_capture_DMA(U32 nPixel){	dma_data_size = nPixel;	readSeqNum = capSeqNum = SOFseqNum = 0;	stopCapture = 0;	PRP_enable();	return TRUE;}void dma_complete_handler(){	disable_dma(dma_channel);	_reg_DMA_DISR = (1 << dma_channel);	// clear DMA complete interrupt flag	wake_up_interruptible(&dma_wait);	enable_dma(dma_channel);	/*	   if (*(U32 *) CSI_STS_REG & 1) {	   printk("!!! Data in FIFO !!!\n");	   return;	   }	 */}static void dma_error_handler(int error_type){	printk("*** CSI DMA error, type = 0x%08x ! ***\n", error_type);}static void csi_intr_handler(int irq, void *dev_id, struct pt_regs *regs){	if (_reg_CSI_CSISTATR & 0x10000)	// SOF intr ?	{		_reg_CSI_CSISTATR = 0x10000;	// clear SOF intr		if (SOFseqNum == 0) {			_reg_CSI_CSICR1 &= ~0x10000;	//disable SOF intr		} else {			return;		}	}	return;}

⌨️ 快捷键说明

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