?? audiounittest.c
字號:
printf("%d 0x%x@mem 24bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, cTestpattern24bit[(i%SIZE_TESTPATTERN24)+1]);
failcnt++;
}
pdestaddr2++;
}
if(failcnt==0) printf("verifying is ok\n");
//size check. here
}
void I2S_unittest_channel_expanding6ch()
{
unsigned int destaddr = 0x32200000;//pattern
unsigned int* pdestaddr;
unsigned int datasizeByte, datasizeWord;
unsigned int destaddr2 = 0x32300000;//expanding
unsigned int* pdestaddr2 = (unsigned int* )destaddr;
unsigned int datasizeByte2, datasizeWord2;
bool bret;
int failcnt;
int i;
printf("\nmaking 8bit pattern\n");
bret = PCM_DATA_2chpattern_making( &datasizeByte, destaddr, 1, 1, 8);
datasizeWord = datasizeByte/4;
printf("datasize:%d Word\n", datasizeWord);
printf("\nexpanding 2ch 8bit pattern to 6ch\n");
PCM_DATA_2chexpanding(destaddr2, 6, &datasizeByte2,
destaddr , 2, datasizeByte , 8);
datasizeWord2 = datasizeByte2/4;
printf("datasize:%d Word\n", datasizeWord2);
printf("verifying 8bit 6ch\n");
failcnt = 0;
pdestaddr2 = (unsigned int* )destaddr2;
for(i=0; i<datasizeWord ;i++)
{
if( *pdestaddr2 != cTestpattern8bit[i%SIZE_TESTPATTERN8] )
{
printf("%d 0x%x@mem 8bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, cTestpattern8bit[i%SIZE_TESTPATTERN8]);
failcnt++;
}
pdestaddr2++;
if( *pdestaddr2 != cTestpattern8bit[i%SIZE_TESTPATTERN8] )
{
printf("%d 0x%x@mem 8bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, cTestpattern8bit[i%SIZE_TESTPATTERN8]);
failcnt++;
}
pdestaddr2++;
if( *pdestaddr2 != cTestpattern8bit[i%SIZE_TESTPATTERN8] )
{
printf("%d 0x%x@mem 8bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, cTestpattern8bit[i%SIZE_TESTPATTERN8]);
failcnt++;
}
pdestaddr2++;
}
if(failcnt==0) printf("verifying is ok\n");
//size check. here
printf("\n\n");
printf("\nmaking 16bit pattern\n");
bret = PCM_DATA_2chpattern_making( &datasizeByte, destaddr, 1, 1, 16);
datasizeWord = datasizeByte/4;
printf("datasize:%d Word\n", datasizeWord);
printf("\nexpanding 2ch 16bit pattern to 6ch\n");
PCM_DATA_2chexpanding(destaddr2, 6, &datasizeByte2,
destaddr , 2, datasizeByte , 16);
datasizeWord2 = datasizeByte2/4;
printf("datasize:%d Word\n", datasizeWord2);
printf("verifying 16bit 6ch\n");
failcnt = 0;
pdestaddr2 = (unsigned int* )destaddr2;
for(i=0; i<datasizeWord ;i++)
{
if( *pdestaddr2 != cTestpattern16bit[i%SIZE_TESTPATTERN16] )
{
printf("%d 0x%x@mem 16bit 0x%x , pattern 0x%x\n", i, pdestaddr2, *pdestaddr2, cTestpattern16bit[i%SIZE_TESTPATTERN16]);
failcnt++;
}
pdestaddr2++;
if( *pdestaddr2 != cTestpattern16bit[i%SIZE_TESTPATTERN16] )
{
printf("%d 0x%x@mem 16bit 0x%x , pattern 0x%x\n", i, pdestaddr2, *pdestaddr2, cTestpattern16bit[i%SIZE_TESTPATTERN16]);
failcnt++;
}
pdestaddr2++;
if( *pdestaddr2 != cTestpattern16bit[i%SIZE_TESTPATTERN16] )
{
printf("%d 0x%x@mem 16bit 0x%x , pattern 0x%x\n", i, pdestaddr2, *pdestaddr2, cTestpattern16bit[i%SIZE_TESTPATTERN16]);
failcnt++;
}
pdestaddr2++;
}
if(failcnt==0) printf("verifying is ok\n");
//size check. here
printf("\n\n");
printf("\nmaking 24bit pattern\n");
bret = PCM_DATA_2chpattern_making( &datasizeByte, destaddr, 1, 1, 24);
datasizeWord = datasizeByte/4;
printf("datasize:%d Word\n", datasizeWord);
printf("\nexpanding 2ch 24bit pattern to 6ch\n");
PCM_DATA_2chexpanding(destaddr2, 6, &datasizeByte2,
destaddr , 2, datasizeByte , 24);
datasizeWord2 = datasizeByte2/4;
printf("datasize:%d Word\n", datasizeWord2);
printf("verifying 24bit 6ch\n");
failcnt = 0;
pdestaddr2 = (unsigned int* )destaddr2;
for(i=0; i<datasizeWord ;i+=2)
{
if( *pdestaddr2 != cTestpattern24bit[i%SIZE_TESTPATTERN24] )
{
printf("%d 0x%x@mem 24bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, cTestpattern24bit[i%SIZE_TESTPATTERN24]);
failcnt++;
}
pdestaddr2++;
if( *pdestaddr2 != cTestpattern24bit[(i%SIZE_TESTPATTERN24)+1] )
{
printf("%d 0x%x@mem 24bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, cTestpattern24bit[(i%SIZE_TESTPATTERN24)+1]);
failcnt++;
}
pdestaddr2++;
if( *pdestaddr2 != cTestpattern24bit[i%SIZE_TESTPATTERN24] )
{
printf("%d 0x%x@mem 24bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, cTestpattern24bit[i%SIZE_TESTPATTERN24]);
failcnt++;
}
pdestaddr2++;
if( *pdestaddr2 != cTestpattern24bit[(i%SIZE_TESTPATTERN24)+1] )
{
printf("%d 0x%x@mem 24bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, cTestpattern24bit[(i%SIZE_TESTPATTERN24)+1]);
failcnt++;
}
pdestaddr2++;
if( *pdestaddr2 != cTestpattern24bit[i%SIZE_TESTPATTERN24] )
{
printf("%d 0x%x@mem 24bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, cTestpattern24bit[i%SIZE_TESTPATTERN24]);
failcnt++;
}
pdestaddr2++;
if( *pdestaddr2 != cTestpattern24bit[(i%SIZE_TESTPATTERN24)+1] )
{
printf("%d 0x%x@mem 24bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, cTestpattern24bit[(i%SIZE_TESTPATTERN24)+1]);
failcnt++;
}
pdestaddr2++;
}
if(failcnt==0) printf("verifying is ok\n");
//size check. here
}
void I2S_unittest_masking6ch()
{
unsigned int destaddr = 0x32200000;//pattern
unsigned int* pdestaddr;
unsigned int datasizeByte, datasizeWord;
unsigned int destaddr2 = 0x32300000;//expanding
unsigned int* pdestaddr2 = (unsigned int* )destaddr;
unsigned int datasizeByte2, datasizeWord2;
bool bret;
int failcnt;
int i;
printf("\nmaking 24bit pattern\n");
bret = PCM_DATA_2chpattern_making( &datasizeByte, destaddr, 8800, 1, 24);
datasizeWord = datasizeByte/4;
printf("datasize:%d Word\n", datasizeWord);
printf("\nexpanding 2ch 24bit pattern to 6ch\n");
PCM_DATA_2chexpanding(destaddr2, 6, &datasizeByte2,
destaddr , 2, datasizeByte , 24);
datasizeWord2 = datasizeByte2/4;
printf("datasize:%d Word\n", datasizeWord2);
PCM_DATA_masking( destaddr2, datasizeByte2, 24, 6, 0x3B );//3 only
printf("verifying 24bit 6ch\n");
failcnt = 0;
pdestaddr2 = (unsigned int* )destaddr2;
for(i=0; i<datasizeWord ;i+=2)
{
if( *pdestaddr2 != 0 )
{
printf("%d 0x%x@mem 24bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, 0);
failcnt++;
}
pdestaddr2++;
if( *pdestaddr2 != 0 )
{
printf("%d 0x%x@mem 24bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, 0);
failcnt++;
}
pdestaddr2++;
if( *pdestaddr2 != cTestpattern24bit[i%SIZE_TESTPATTERN24] )
{
printf("%d 0x%x@mem 24bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, cTestpattern24bit[i%SIZE_TESTPATTERN24]);
failcnt++;
}
pdestaddr2++;
if( *pdestaddr2 != 0 )
{
printf("%d 0x%x@mem 24bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, 0);
failcnt++;
}
pdestaddr2++;
if( *pdestaddr2 != 0 )
{
printf("%d 0x%x@mem 24bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, 0);
failcnt++;
}
pdestaddr2++;
if( *pdestaddr2 != 0 )
{
printf("%d 0x%x@mem 24bit 0x%x , pattern 0x%x\n",i, pdestaddr2, *pdestaddr2, 0);
failcnt++;
}
pdestaddr2++;
}
if(failcnt==0) printf("verifying is ok\n");
//size check. here
}
bool I2S_unittest()
{
printf("2ch patternmaking testing...\n");
I2S_unittest_patternmaking();
printf("\n\n");
printf("2channel expanding testing...\n");
I2S_unittest_channel_expanding2ch();
printf("4channel expanding testing...\n");
I2S_unittest_channel_expanding4ch();
printf("6channel expanding testing...\n");
I2S_unittest_channel_expanding6ch();
printf("\n\n");
printf("6channel masking testing...\n");
I2S_unittest_masking6ch();
return 1;
}
/*
const unsigned int cUnitTestpattern[]=
{
0x32123321,
0x55432344,
0x45665434
};
//http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples.html
//http://www.google.com/search?hl=en&q=wave+pcm+24bit+stereo+file+format
//http://ccrma.stanford.edu/courses/422/projects/WaveFormat/
//http://www.google.com/search?hl=en&q=wave+file+format
//http://www.google.com/search?hl=en&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=24+bit+wave+file+format&spell=1
//http://www.borg.com/~jglatt/tech/wave.htm
bool I2S_unittest()
{
unsigned int* pdestaddr = (unsigned int* )0x31000000;
unsigned int* porgaddr = (unsigned int* )0x32000000;
int i;
*porgaddr = cUnitTestpattern[0];
*(porgaddr+4) = cUnitTestpattern[1];
*(porgaddr+8) = cUnitTestpattern[2];
*(porgaddr+12) = cUnitTestpattern[0];
*(porgaddr+16) = cUnitTestpattern[1];
*(porgaddr+20) = cUnitTestpattern[2];
// I2S_24bitwavefile_converting( (unsigned int)pdestaddr,
// (unsigned int)porgaddr, 24);
if(*pdestaddr != (0x123321<<8) ) return 0;
pdestaddr++;
if(*pdestaddr != (0x234432<<8) ) return 0;
pdestaddr++;
if(*pdestaddr != (0x345543<<8) ) return 0;
pdestaddr++;
if(*pdestaddr != (0x456654<<8) ) return 0;
pdestaddr++;
if(*pdestaddr != (0x123321<<8) ) return 0;
pdestaddr++;
if(*pdestaddr != (0x234432<<8) ) return 0;
pdestaddr++;
if(*pdestaddr != (0x345543<<8) ) return 0;
pdestaddr++;
if(*pdestaddr != (0x456654<<8) ) return 0;
pdestaddr++;
printf("ok");
return 1;
}
*/
//end of file
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -