|
初学者求教:
我想在应用程序中响应中断来获得摄像头采集的图像数据,根据SMDK6410的摄像头驱动,在其函数InterruptInitialize()中做了如下事情创建了一个跟中断g_CamIrq_C相关联的CaptureEvent:
KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &g_CamIrq_C, sizeof(UINT32), &g_CamSysIntr_C, sizeof(UINT32), NULL);
CaptureEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
InterruptInitialize(g_CamSysIntr_C, CaptureEvent, NULL, 0);
之后,在DWORD WINAPI CameraCaptureThread(void)中使用WaitForSingleObject(CaptureEvent, INFINITE);来处理中断。
那么我想问的是:
1.如果我通过CAM_IOControl()将这个CaptureEvent的值传给应用程序,那么在应用程序中能不能使用这个值来WaitForSingleObject()等待并处理中断?
2.读摄像头传来的图像数据就需要缓存的地址,同样的,如果通过CAM_IOControl()将在驱动程序中分配的缓存的指针(是虚拟地址,不是物理地址)传给应用程序,那么在应用程序中是不是能访问这个地址?
总之我想的是,在应用程序中通过CAM_IOControl获得中断事件和摄像头缓存地址,然后在应用程序中干驱动程序里的CameraCaptureThread()函数干的事……不知道这样是不是能行。
望大家赐教,谢谢!
|
|