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

📄 audiounittest.c

📁 samsung 最新芯片2450 的测试程序.
💻 C
📖 第 1 页 / 共 2 页
字号:
			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 + -