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

📄 audiounittest.c

📁 samsung 最新芯片2450 的测试程序.
💻 C
📖 第 1 页 / 共 2 页
字号:
/*======================================================================

 Project Name : S3C2450

 Copyright 2006 by Samsung Electronics, Inc.
 All rights reserved.

 Project Description :
 This software is only for verifying functions of the S3C2443. 
 Anybody can use this code without our permission.

 File Name    : iisnew.c
 Description  : S3C2450 IIS ip driver
 Author       : Dongjin Kim
 Dept         : AP
 Created Date : 2007.11.14
 Version      : 0.0
 History
=======================================================================*/

#include "System.h"
#include "iis.h"
#include "audiolibrary.h"
#include "audiolibraryexterns.h"


void I2S_unittest_patternmaking()
{
	unsigned int destaddr = 0x32200000;
	unsigned int* pdestaddr = (unsigned int* )destaddr;
	unsigned int datasizeByte, datasizeWord;
	bool bret;
	int 		failcnt;
	int i;

	printf("\nmaking 8bit pattern\n");
	bret = PCM_DATA_2chpattern_making( &datasizeByte, destaddr, 2, 1, 8);	
	datasizeWord = datasizeByte/4;
	printf("datasize:%d Word\n", datasizeWord);
	
	printf("verifying 8bit\n");	
	failcnt = 0;
	pdestaddr = (unsigned int* )destaddr;
	for(i=0; i<datasizeWord ;i++)
	{
		if( *pdestaddr != cTestpattern8bit[i%SIZE_TESTPATTERN8] )
		{
			printf("%d 0x%x@mem 8bit 0x%x , pattern 0x%x\n",i, pdestaddr,  *pdestaddr, cTestpattern8bit[i%SIZE_TESTPATTERN8]);
			failcnt++;
		}
		pdestaddr++;
	}
	if(failcnt==0) printf("verifying is ok\n");
	
	//size check. here
	
	printf("\nmaking 16bit pattern\n");
	bret = PCM_DATA_2chpattern_making( &datasizeByte, destaddr, 2, 1, 16);	
	datasizeWord = datasizeByte/4;
	printf("datasize:%d Word\n", datasizeWord);
	
	printf("verifying 16bit\n");
	failcnt = 0;	
	pdestaddr = (unsigned int* )destaddr;
	for(i=0; i<datasizeWord ;i++)
	{
		if( *pdestaddr != cTestpattern16bit[i%SIZE_TESTPATTERN16] )
		{
			printf("%d 0x%x@mem 16bit 0x%x , pattern 0x%x\n", i, pdestaddr,  *pdestaddr, cTestpattern16bit[i%SIZE_TESTPATTERN16]);
			failcnt++;			
		}
		pdestaddr++;
	}
	if(failcnt==0) printf("verifying is ok\n");

	//size check. here


	printf("\nmaking 24bit pattern\n");
	bret = PCM_DATA_2chpattern_making( &datasizeByte, destaddr, 2, 1, 24);	
	datasizeWord = datasizeByte/4;
	printf("datasize:%d Word\n", datasizeWord);
	
	printf("verifying 24bit\n");
	failcnt = 0;	
	pdestaddr = (unsigned int* )destaddr;
	for(i=0; i<datasizeWord ;i++)
	{
		if( *pdestaddr != cTestpattern24bit[i%SIZE_TESTPATTERN24] )
		{
			printf("%d 0x%x@mem 24bit 0x%x , pattern 0x%x\n",i, pdestaddr,  *pdestaddr, cTestpattern24bit[i%SIZE_TESTPATTERN24]);
			failcnt++;			
		}
		pdestaddr++;
	}
	if(failcnt==0) printf("verifying is ok\n");
	
	//size check. here
	
	bret = PCM_DATA_2chpattern_making( NULL, destaddr, 2, 1, 24);	
	if(bret != 0) printf("assert null error\n");
	bret = PCM_DATA_2chpattern_making( &datasizeByte, 0, 2, 1, 24);	
	if(bret != 0) printf("assert address error\n");	
	bret = PCM_DATA_2chpattern_making( &datasizeByte, destaddr, 0, 1, 24);
	if(bret != 0) printf("assert totrepeat error\n");
	bret = PCM_DATA_2chpattern_making( &datasizeByte, destaddr, 2, 0, 24);
	if(bret != 0) printf("assert eachrepeat error\n");
	bret = PCM_DATA_2chpattern_making( &datasizeByte, destaddr, 2, 1, 0);
	if(bret != 0) printf("assert bit error\n");
	bret = PCM_DATA_2chpattern_making( &datasizeByte, destaddr, 5, 8800, 24);
	if(bret != 0) printf("assert overflow error\n");
	
	
}



void I2S_unittest_channel_expanding2ch()
{
	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 2ch\n");
	PCM_DATA_2chexpanding(destaddr2, 2, &datasizeByte2, 
						  destaddr , 2, datasizeByte  , 8);
	datasizeWord2 = datasizeByte2/4;
	printf("datasize:%d Word\n", datasizeWord2);
	
	printf("verifying 8bit 2ch\n");	
	failcnt = 0;
	pdestaddr2 = (unsigned int* )destaddr2;
	for(i=0; i<datasizeWord2 ;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(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 2ch\n");
	PCM_DATA_2chexpanding(destaddr2, 2, &datasizeByte2, 
						  destaddr , 2, datasizeByte  , 16);
	datasizeWord2 = datasizeByte2/4;
	printf("datasize:%d Word\n", datasizeWord2);
	
	printf("verifying 16bit 2ch\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(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 2ch\n");
	PCM_DATA_2chexpanding(destaddr2, 2, &datasizeByte2, 
						  destaddr , 2, datasizeByte  , 24);
	datasizeWord2 = datasizeByte2/4;
	printf("datasize:%d Word\n", datasizeWord2);
	
	printf("verifying 24bit 2ch\n");	
	failcnt = 0;
	pdestaddr2 = (unsigned int* )destaddr2;
	for(i=0; i<datasizeWord ;i++)
	{
		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(failcnt==0) printf("verifying is ok\n");				
	//size check. here
}


void I2S_unittest_channel_expanding4ch()
{
	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 4ch\n");
	PCM_DATA_2chexpanding(destaddr2, 4, &datasizeByte2, 
						  destaddr , 2, datasizeByte  , 8);
	datasizeWord2 = datasizeByte2/4;
	printf("datasize:%d Word\n", datasizeWord2);
	
	printf("verifying 8bit 4ch\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(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 4ch\n");
	PCM_DATA_2chexpanding(destaddr2, 4, &datasizeByte2, 
						  destaddr , 2, datasizeByte  , 16);
	datasizeWord2 = datasizeByte2/4;
	printf("datasize:%d Word\n", datasizeWord2);
	
	printf("verifying 16bit 4ch\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(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 4ch\n");
	PCM_DATA_2chexpanding(destaddr2, 4, &datasizeByte2, 
						  destaddr , 2, datasizeByte  , 24);
	datasizeWord2 = datasizeByte2/4;
	printf("datasize:%d Word\n", datasizeWord2);
	
	printf("verifying 24bit 4ch\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] )
		{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -