?? audiounittest.c
字號:
/*======================================================================
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] )
{
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -