?? temp2.c
字號:
ulDescAdrs = ;
ulTempData = pc1394DevGetAsyncReqReceiveCtxCtl();
if (list)
{
printf("pc1394ConfigRun: AsyncReqReceiveCtxCtl = 0x%.8x\n", ulTempData);
}
if (ulTempData & 0x00008000)
{
printf("pc1394ConfigRun: AsyncReqReceiveContextControl is running.\n");
iStatus = pc1394DevClrAsyncReqReceiveCtxCtl(0x00008000);
if (iStatus == ERROR)
{
}
pciWriteLong((int)(pPc1394Dev.pciControllerSpace0 + SELFID_BUFFER_ADR), 0);
free(selfIDBuf);
free(pAsyOutputLastI);
free(pAsyRecReqCtxBuf);
free(pAsyRecRespCtxBuf);
free(pAsyRecReqInputMoreDesc);
return(ERROR);
}
if (ulTempData & 0x00000800)
{
printf("pc1394ConfigRun: AsyncReqReceiveContextControl is dead.\n");
pciWriteLong((int)(pPc1394Dev.pciControllerSpace0 + SELFID_BUFFER_ADR), 0);
free(selfIDBuf);
free(pAsyOutputLastI);
free(pAsyRecReqCtxBuf);
free(pAsyRecRespCtxBuf);
free(pAsyRecReqInputMoreDesc);
return(ERROR);
}
if (ulTempData & 0x00000400)
{
printf("pc1394ConfigRun: AsyncReqReceiveContextControl is active.\n");
pciWriteLong((int)(pPc1394Dev.pciControllerSpace0 + SELFID_BUFFER_ADR), 0);
free(selfIDBuf);
free(pAsyOutputLastI);
free(pAsyRecReqCtxBuf);
free(pAsyRecRespCtxBuf);
free(pAsyRecReqInputMoreDesc);
return(ERROR);
}
/*
For each AR context (Request and Receive) Z may be either 1 to indicate
that descriptorAddress points to a valid command descriptor, or 0 to
indicate that there are no descriptors in the context program.
*/
iStatus = pc1394DevSetAsyncReqReceiveCmdPtr(ulDescAdrs, 1);
if (iStatus == ERROR)
{
printf("pc1394ConfigRun: pc1394DevSetAsyncReqReceiveCmdPtr failed.\n");
pciWriteLong((int)(pPc1394Dev.pciControllerSpace0 + SELFID_BUFFER_ADR), 0);
free(selfIDBuf);
free(pAsyOutputLastI);
free(pAsyRecReqCtxBuf);
free(pAsyRecRespCtxBuf);
free(pAsyRecReqInputMoreDesc);
return(ERROR);
}
if (list)
{
ulTempData = pc1394DevGetAsyncReqReceiveCmdPtr();
printf("pc1394ConfigRun: AsyncReqReceiveCmdPtr = 0x%.8x\n", ulTempData);
}
ulTempData = 0x00008000;
iStatus = pc1394DevSetAsyncReqReceiveCtxCtl(ulTempData);
if (iStatus == ERROR)
{
printf("pc1394ConfigRun: pc1394DevSetAsyncReqReceiveCtxCtl failed.\n");
pciWriteLong((int)(pPc1394Dev.pciControllerSpace0 + SELFID_BUFFER_ADR), 0);
free(selfIDBuf);
free(pAsyOutputLastI);
free(pAsyRecReqCtxBuf);
free(pAsyRecRespCtxBuf);
free(pAsyRecReqInputMoreDesc);
return(ERROR);
}
if (list)
{
ulTempData = pc1394DevGetAsyncReqReceiveCtxCtl();
printf("pc1394ConfigRun: AsyncReqReceiveCtxCtl = 0x%.8x\n", ulTempData);
}
iGetCount = 0;
ulTempData = 0;
while ((!ulTempData) && (iGetCount < 30))
{
taskDelay(1);
ulIntEvent = pc1394DevGetIntEvent();
ulTempData = ulIntEvent & DATA_BIT4;
iGetCount ++;
}
if (list)
{
printf("pc1394ConfigRun: IntEvent = 0x%.8x\n", ulIntEvent);
}
if (list)
{
printf("pc1394ConfigRun: IntEvent.RQPkt = 0x%.2x\n", ulTempData);
printf("pc1394ConfigRun: iGetCount = %d\n", iGetCount);
}
if ((!ulTempData) && (iGetCount == 30))
{
printf("pc1394ConfigRun: can't Get IntEvent.RQPkt.\n");
iStatus = pc1394DevClrAsyncReqReceiveCtxCtl(0x00008000);
if (iStatus == ERROR)
{
}
if (list)
{
ulTempData = pc1394DevGetAsyncReqReceiveCtxCtl();
printf("pc1394ConfigRun: AsyncReqReceiveCtxCtl = 0x%.8x\n", ulTempData);
}
pciWriteLong((int)(pPc1394Dev.pciControllerSpace0 + SELFID_BUFFER_ADR), 0);
free(selfIDBuf);
free(pAsyOutputLastI);
free(pAsyRecReqCtxBuf);
free(pAsyRecRespCtxBuf);
free(pAsyRecReqInputMoreDesc);
return(ERROR);
}
if (list)
{
printf("pc1394ConfigRun: complete receive of an AR DMA request INPUT_MORE command.\n");
ulTempData = pc1394DevGetIntEvent();
printf("pc1394ConfigRun: IntEvent = 0x%.8x\n", ulTempData);
}
ulTempData = DATA_BIT4;
iStatus = pc1394DevSetIntEvent(ulTempData);
if (iStatus == ERROR)
{
}
if (list)
{
ulTempData = pc1394DevGetAsyncReqReceiveCtxCtl();
printf("pc1394ConfigRun: AsyncReqReceiveCtxCtl = 0x%.8x\n", ulTempData);
ulTempData = pc1394DevGetIntEvent();
printf("pc1394ConfigRun: IntEvent = 0x%.8x\n", ulTempData);
}
/****************************************************/
iGetCount = 0;
ulTempData = 0;
while ((!ulTempData) && (iGetCount < 30))
{
taskDelay(1);
ulTempData = (pAsyRecReqInputMoreDesc->xferStatus) & 0x0400;
iGetCount ++;
}
if (list)
{
printf("pc1394ConfigRun: pAsyRecReqInputMoreDesc->xferStatus = 0x%.4x\n", pAsyRecReqInputMoreDesc->xferStatus);
printf("pc1394ConfigRun: iGetCount = %d\n", iGetCount);
}
if ((!ulTempData) && (iGetCount == 30))
{
printf("pc1394ConfigRun: can't Get pAsyRecReqInputMoreDesc->xferStatus.\n");
iStatus = pc1394DevClrAsyncReqReceiveCtxCtl(0x00008000);
if (iStatus == ERROR)
{
}
pciWriteLong((int)(pPc1394Dev.pciControllerSpace0 + SELFID_BUFFER_ADR), 0);
free(selfIDBuf);
free(pAsyOutputLastI);
free(pAsyRecReqCtxBuf);
free(pAsyRecRespCtxBuf);
free(pAsyRecReqInputMoreDesc);
return(ERROR);
}
ulTempData = (pAsyRecReqInputMoreDesc->xferStatus) & 0x0800;
if (ulTempData)
{
printf("pc1394ConfigRun: The Host Controller encounters a fatal error.\n");
ulTempData = 0x00008000;
iStatus = pc1394DevClrAsyncReqTransCtxCtl(ulTempData);
if (iStatus == ERROR)
{
printf("pc1394ConfigRun: pc1394DevSetAsyncReqTransCtxCtl failed.\n");
pciWriteLong((int)(pPc1394Dev.pciControllerSpace0 + SELFID_BUFFER_ADR), 0);
free(selfIDBuf);
free(pAsyOutputLastI);
free(pAsyRecReqCtxBuf);
free(pAsyRecRespCtxBuf);
free(pAsyRecReqInputMoreDesc);
return(ERROR);
}
if (list)
{
ulTempData = pc1394DevGetAsyncReqReceiveCtxCtl();
printf("pc1394ConfigRun: AsyncReqReceiveCtxCtl = 0x%.8x\n", ulTempData);
}
pciWriteLong((int)(pPc1394Dev.pciControllerSpace0 + SELFID_BUFFER_ADR), 0);
free(selfIDBuf);
free(pAsyOutputLastI);
free(pAsyRecReqCtxBuf);
free(pAsyRecRespCtxBuf);
free(pAsyRecReqInputMoreDesc);
return(ERROR);
}
if (list)
{
ulTempData = pc1394DevGetAsyncReqReceiveCtxCtl();
printf("pc1394ConfigRun: AsyncReqReceiveCtxCtl = 0x%.8x\n", ulTempData);
ulTempData = (unsigned long)pAsyRecReqInputMoreDesc->timeStamp;
printf("pc1394ConfigRun: asynchrous request receive successfully at timeStamp 0x%.8x.\n", ulTempData);
}
pTempBuf = (unsigned long *)pAsyRecReqInputMoreDesc;
if (list)
{
printf("pc1394ConfigRun: after asynchrous receive successfully,read Asy receive request Desc value.\n");
printf("pc1394ConfigRun: pTempBuf[0] = 0x%.8x\n", pTempBuf[0]);
printf("pc1394ConfigRun: pTempBuf[1] = 0x%.8x\n", pTempBuf[1]);
printf("pc1394ConfigRun: pTempBuf[2] = 0x%.8x\n", pTempBuf[2]);
printf("pc1394ConfigRun: pTempBuf[3] = 0x%.8x\n", pTempBuf[3]);
printf("pc1394ConfigRun: pTempBuf[4] = 0x%.8x\n", pTempBuf[4]);
printf("pc1394ConfigRun: pTempBuf[5] = 0x%.8x\n", pTempBuf[5]);
printf("pc1394ConfigRun: pTempBuf[6] = 0x%.8x\n", pTempBuf[6]);
printf("pc1394ConfigRun: pTempBuf[8] = 0x%.8x\n", pTempBuf[7]);
}
/*************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -