📄 gdmatest_omap32.c
字号:
{
UWORD8* MemPtr;
i = BlockSize;
MemPtr = (UWORD8*)Address;
if ((UWORD8)(*MemPtr++) != (UWORD8)DMAT_GeneratePattern(Chptr->Pattern,i))
{
DMAT_SpyWriteFailResults( ChannelNumber, i, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i))));
rtn_status = NOT_OK;
break;
}
else if ((UWORD8)(*MemPtr++) != (UWORD8)(DMAT_GeneratePattern(Chptr->Pattern,i)>>8))
{
DMAT_SpyWriteFailResults( ChannelNumber, i, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i))));
rtn_status = NOT_OK;
break;
}
}
else
{
UWORD16* MemPtr;
i = BlockSize;
MemPtr = (UWORD16*)Address;
if ((UWORD16)(*MemPtr++) != (UWORD16)DMAT_GeneratePattern(Chptr->Pattern,i))
{
DMAT_SpyWriteFailResults( ChannelNumber, i, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i))));
rtn_status = NOT_OK;
break;
}
}
break;
} // End of case DMA_TYPE_16_BITS
case DMA_TYPE_8_BITS:
{
UWORD8* MemPtr;
i = BlockSize;
MemPtr = (UWORD8*)Address;
if ((UWORD8)(*MemPtr++) != (UWORD8)DMAT_GeneratePattern(Chptr->Pattern,i))
{
DMAT_SpyWriteFailResults( ChannelNumber, i, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i))));
rtn_status = NOT_OK;
}
break;
} // End of case DMA_TYPE_8_BITS
} // End of switch(Chptr->TypeSize)
break;
} // End of case : VERIFY_MEM
} // End of switch(MemMode)
break;
} // End of case DMA_ADD_CONSTANT
//--------------------------------------------------------------------------------
case DMA_ADD_POSTINC:
{
switch(MemMode)
{
case INITIALIZE_MEM:
{
switch(Chptr->TypeSize)
{
case DMA_TYPE_32_BITS:
{
switch(AddressAlign)
{
case 0x00: // Then 32-bit aligned
{
UWORD32* MemPtr;
for (i = 0; i < BlockSize ; i++)
{
if (i == 0)
{
MemPtr = (UWORD32*)Address;
}
*MemPtr++ = DMAT_GeneratePattern(Chptr->Pattern,i);
}
break;
}
case 0x02: // Then 16-bit aligned
{
UWORD16* MemPtr;
for (i = 0; i < (BlockSize * 2) ; i++)
{
if (i == 0)
{
MemPtr = (UWORD16*)Address;
}
*MemPtr++ = (UWORD16)DMAT_GeneratePattern(Chptr->Pattern,i/2);
}
break;
}
case 0x01: // Then 8-bit aligned
{
UWORD8* MemPtr;
for (i = 0; i < (BlockSize * 4) ; i++)
{
if (i == 0)
{
MemPtr = (UWORD8*)Address;
}
*MemPtr++ = (UWORD8)DMAT_GeneratePattern(Chptr->Pattern,i/4);
}
break;
}
} // End of switch(SrcAddressAlign)
break;
} // End of case DMA_TYPE_32_BITS
case DMA_TYPE_16_BITS:
{
if (AddressAlign == 0x01) // Then 8-bit aligned
{
UWORD8* MemPtr;
for (i = 0; i < (BlockSize * 2) ; i++)
{
if (i == 0)
{
MemPtr = (UWORD8*)Address;
}
*MemPtr++ = (UWORD8)DMAT_GeneratePattern(Chptr->Pattern,i/2);
}
break;
}
else // Then 16-bit aligned
{
UWORD16* MemPtr;
for (i = 0; i < BlockSize; i++)
{
if (i == 0)
{
MemPtr = (UWORD16*)Address;
}
*MemPtr++ = (UWORD16)DMAT_GeneratePattern(Chptr->Pattern,i);
}
break;
}
} // End of case DMA_TYPE_16_BITS
case DMA_TYPE_8_BITS:
{
UWORD8* MemPtr;
for (i = 0; i < BlockSize; i++)
{
if (i == 0)
{
MemPtr = (UWORD8*)Address;
}
*MemPtr++ = (UWORD8)DMAT_GeneratePattern(Chptr->Pattern,i);
}
break;
} // End of case DMA_TYPE_8_BITS
} // End of switch(Chptr->TypeSize)
break;
} // End of case : INITIALIZE_MEM
case VERIFY_MEM:
{
switch(Chptr->TypeSize)
{
case DMA_TYPE_32_BITS:
{
switch(AddressAlign)
{
case 0x00: // Then 32-bit aligned
{
UWORD32* MemPtr;
for (i = 0; i < BlockSize; i++)
{
if (i == 0)
{
MemPtr = (UWORD32*)Address;
}
if (*MemPtr != DMAT_GeneratePattern(Chptr->Pattern,i))
{
DMAT_SpyWriteFailResults( ChannelNumber, i, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i))));
rtn_status = NOT_OK;
break;
}
MemPtr++;
}
break;
}
case 0x02: // Then 16-bit aligned
{
UWORD16* MemPtr;
for (i = 0; i < (BlockSize * 2); i++)
{
if (i == 0)
{
MemPtr = (UWORD16*)Address;
}
if ((UWORD16)(*MemPtr) != (UWORD16)DMAT_GeneratePattern(Chptr->Pattern,i/2))
{
DMAT_SpyWriteFailResults( ChannelNumber, i/2, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i/2))));
rtn_status = NOT_OK;
break;
}
else if ((UWORD16)(*MemPtr) != (UWORD16)(DMAT_GeneratePattern(Chptr->Pattern,i/2)>>16))
{
DMAT_SpyWriteFailResults( ChannelNumber, i/2, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i/2)>>16)));
rtn_status = NOT_OK;
break;
}
MemPtr++;
}
break;
}
case 0x01: // Then 8-bit aligned
{
UWORD8* MemPtr;
for (i = 0; i < (BlockSize * 4); i++)
{
if (i == 0)
{
MemPtr = (UWORD8*)Address;
}
if ((UWORD8)(*MemPtr) != (UWORD8)DMAT_GeneratePattern(Chptr->Pattern,i/4))
{
DMAT_SpyWriteFailResults( ChannelNumber, i/4, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i/4))));
rtn_status = NOT_OK;
break;
}
else if ((UWORD8)(*MemPtr) != (UWORD8)(DMAT_GeneratePattern(Chptr->Pattern,i/4)>>8))
{
DMAT_SpyWriteFailResults( ChannelNumber, i/4, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i/4)>>8)));
rtn_status = NOT_OK;
break;
}
else if ((UWORD8)(*MemPtr) != (UWORD8)(DMAT_GeneratePattern(Chptr->Pattern,i/4)>>16))
{
DMAT_SpyWriteFailResults( ChannelNumber, i/4, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i/4)>>16)));
rtn_status = NOT_OK;
break;
}
else if ((UWORD8)(*MemPtr) != (UWORD8)(DMAT_GeneratePattern(Chptr->Pattern,i/4)>>24))
{
DMAT_SpyWriteFailResults( ChannelNumber, i/4, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i/4)>>24)));
rtn_status = NOT_OK;
break;
}
MemPtr++;
}
break;
}
} // End of switch(SrcAddressAlign)
break;
} // End of case DMA_TYPE_32_BITS
case DMA_TYPE_16_BITS:
{
if (AddressAlign == 0x01) // Then 8-bit aligned
{
UWORD8* MemPtr;
for (i = 0; i < (BlockSize * 2); i++)
{
if (i == 0)
{
MemPtr = (UWORD8*)Address;
}
if (((UWORD8)(*MemPtr)) != (UWORD8)DMAT_GeneratePattern(Chptr->Pattern,i/2))
{
DMAT_SpyWriteFailResults( ChannelNumber, i/2, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i/2))));
rtn_status = NOT_OK;
break;
}
else if (((UWORD8)(*MemPtr)) != (UWORD8)(DMAT_GeneratePattern(Chptr->Pattern,i/2)>>8))
{
DMAT_SpyWriteFailResults( ChannelNumber, i/2, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i/2)>>8)));
rtn_status = NOT_OK;
break;
}
MemPtr++;
}
break;
}
else
{ // Then 16-bit aligned
UWORD16* MemPtr;
for (i = 0; i < BlockSize; i++)
{
if (i == 0)
{
MemPtr = (UWORD16*)Address;
}
if (((UWORD16)(*MemPtr)) != (UWORD16)DMAT_GeneratePattern(Chptr->Pattern,i))
{
DMAT_SpyWriteFailResults( ChannelNumber, i, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i))));
rtn_status = NOT_OK;
break;
}
MemPtr++;
}
break;
}
} // End of case DMA_TYPE_16_BITS
case DMA_TYPE_8_BITS:
{
UWORD8* MemPtr;
for (i = 0; i < BlockSize; i++)
{
if (i == 0)
{
MemPtr = (UWORD8*)Address;
}
if (((UWORD8)(*MemPtr)) != (UWORD8)DMAT_GeneratePattern(Chptr->Pattern,i))
{
DMAT_SpyWriteFailResults( ChannelNumber, i, (0x0000FFFF & (*MemPtr)),
(0x0000FFFF & (DMAT_GeneratePattern(Chptr->Pattern,i))));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -