Ejemplo n.º 1
0
/*-----------------------------------------------------------------------------*/
int main(void)
{
	int  i, chr;
	
    sysDisableCache();
    sysFlushCache(I_D_CACHE);
    sysEnableCache(CACHE_WRITE_BACK);
    sysInitializeUART();
    
    /* enable MTP clock */
	outpw(REG_CLK_PCLKEN1, inpw(REG_CLK_PCLKEN1) | (1 << 26));

	i = 0;
	while (1)
	{	
		sysprintf("+-------------------------------------------+\n");
		sysprintf("|  MTP menu                                 |\n");
		sysprintf("+-------------------------------------------+\n");
		sysprintf("| [1] On-chip MTP key status                |\n");
		sysprintf("| [2] Program MTP key                       |\n");
		sysprintf("| [3] Lock MTP key                          |\n");
		sysprintf("+-------------------------------------------+\n");
	
		chr = sysGetChar();

		switch (chr)
		{
			case '1':
				if (MTP_Enable() != MTP_RET_OK)
				{
					sysprintf("Failed to enable MTP!\n");
					break;
				}
				dump_mtp_status();
				break;
				
			case '2':
				if (MTP_Program(key_table[i++], 0x40) == MTP_RET_OK)
					sysprintf("MTP key program done.\n");
				else
					sysprintf("Failed to program MTP key!\n");
				break;
				
			case '3':
				if (MTP_Lock() == MTP_RET_OK)
					sysprintf("MTP key is locked.\n");
				else
					sysprintf("Failed to lock MTP key!\n");
				break;
		}
		sysprintf("\nPress any key...\n");
		sysGetChar();
	}
}
Ejemplo n.º 2
0
/**
  * @brief  Ask user to input PIN from console
  * @param  None
  * @return None
  * @details Valid input characters (0~9) are echo to console and store in command buffer.
  *         Backspace key can delete previous input digit, ESC key delete all input digits.
  *         Valid PIN length is between 4~8 digits. If PIN length is shorter than 8
  *         digits, an Enter key can terminate the input procedure.
  */
void get_pin(void)
{
    int i = 0;
    char c = 0;

    sysprintf("Please input PIN number:");
    while(i < 8) {
        c = sysGetChar();
        if(c >= 0x30 && c <= 0x39) {    // Valid input characters (0~9)
            au8VerifyChv[5 + i] = c;
            sysprintf("%c", c);
            i++;
        } else if(c == 0x7F) {// DEL (Back space)
            i--;
            sysprintf("%c", c);
        } else if(c == 0x0D) { // Enter
            if(i >= 4)  //Min CHV length is 4 digits
                break;
        } else if(c == 0x1B) {//ESC
            sysprintf("\nPlease input PIN number:");
            i = 0;  // retry
        } else {
            continue;
        }

    }

    // Fill remaining digits with 0xFF
    for(; i < 8; i++) {
        au8VerifyChv[5 + i] = 0xFF;
    }

    sysprintf("\n");

    return;
}
Ejemplo n.º 3
0
int main()
{

	FMI_CARD_DETECT_T card;
	AU_I2C_TYPE_T	i2cType;
	
	//_pucPcmQueue = _TempQueue;
	
	outpw(REG_HICSR, inpw(REG_HICSR) & 0xFFFFFF7F);
	
//	PCM_QUEUE_LEN = sizeof (_pucPcmQueue);
	wb702_STS_READY();
	/* start timer0 for FMI init */
	sysConfiguration();
	
	
#if 1	// demo
	card.uCard = FMI_SD_CARD;					// card type
#if _DEMO_VER >= 0x17
	card.uGPIO = 15;					// card detect GPIO pin V1.7
#else 
	card.uGPIO = 4;					// card detect GPIO pin
#endif
	card.uWriteProtect = 16;					// card detect GPIO pin
	card.uInsert = 0;				// 0/1 which one is insert
	card.nPowerPin = 12;				// card power pin, -1 means no power pin
	card.bIsTFlashCard = FALSE;
#endif
#if 0	// Module
	card.uCard = FMI_SD_CARD;		// card type
	card.uGPIO = 17;				// card detect GPIO pin
	card.uWriteProtect = 6;			// card detect GPIO pin
	card.uInsert = 0;				// 0/1 which one is insert
	card.nPowerPin = -1;			// card power pin, -1 means no power pin
	card.bIsTFlashCard = FALSE;
#endif
	
#if _USE_SD	
	fmiSetCardDetection(&card);
	fsInitFileSystem();
	fmiSetFMIReferenceClock(48000);
	fmiInitDevice();
	fmiInitSDDevice();
#endif
	
#ifdef TEST_AC97
	/* 24.576 MHz */
	outpw(REG_APLLCON, 0x6529);
	outpw(REG_CLKDIV0, (inpw(REG_CLKDIV0) & 0xFF0FFFFF) | 0x100000);
#endif	
	
#if defined(TEST_W56964I) || defined(TEST_MA5) || defined(TEST_MA3) || defined(TEST_W56964) || defined(TEST_MA5I) || defined(TEST_MA5SI)
	outpw(REG_LCM_DEV_CTRL, 0);		/* set VPOST/M80 arbitor */
	outpw(REG_LCM_DCCS, 0x8);		/* switch VPOST output enable */
	outpw(REG_LCM_DEV_CTRL, 0xE0);	/* set VPOST control to mcu type */
	outpw(REG_MISCR, 0x0);			/* set bridge mode-0 */
#endif

	/* 
	 * CLK select: SYSTEM_S from UPLL, AUDIO_S from APLL 
	 * SENSOR_S and VIDEO_S from crystal in 
	 */

	//fmiSetFMIReferenceClock(48000);
	//fmiSetFMIReferenceClock(12000);
	
	

#ifdef TEST_ADDA
	audioEnable(AU_DEV_WM8978, AU_DEV_ADC);
#endif	
#ifdef TEST_AC97
	audioEnable(AU_DEV_AC97, AU_DEV_AC97);
#endif	
#ifdef TEST_I2S
	audioEnable(AU_DEV_IIS, AU_DEV_IIS);
	audioSetPureI2SMCLKType(I2S_MCLK_TYPE_NORMAL);
#endif
#ifdef TEST_UDA1345TS
	audioEnable(AU_DEV_UDA1345TS, AU_DEV_UDA1345TS);
#endif

#ifdef TEST_TIAIC31
	audioEnable(AU_DEV_TIAIC31, AU_DEV_TIAIC31);
	//audioEnable(AU_DEV_IIS_TIAIC31, AU_DEV_IIS_TIAIC31);
#endif	

#ifdef TEST_WM8753
	audioEnable(AU_DEV_WM8753, AU_DEV_WM8753);
#endif
#ifdef TEST_WM8751
	audioEnable(AU_DEV_WM8751, AU_DEV_WM8751);
#endif

#ifdef TEST_WM8978
	audioEnable(AU_DEV_WM8978, AU_DEV_WM8978);
	//audioEnable(AU_DEV_WM8978, AU_DEV_ADC);
	//audioEnable(AU_DEV_WM8750, AU_DEV_WM8750);
#endif	

#ifdef TEST_W56964
	audioEnable(AU_DEV_W56964, AU_DEV_W56964);
#endif	
#ifdef TEST_MA3
	audioEnable(AU_DEV_MA3, AU_DEV_MA3);
#endif	
#ifdef TEST_MA5
	audioEnable(AU_DEV_MA5, AU_DEV_MA5);
#endif	
#ifdef TEST_MA5I
	audioEnable(AU_DEV_MA5I, AU_DEV_MA5I);
#endif
#ifdef TEST_W56964I
	audioEnable(AU_DEV_W56964I, AU_DEV_W56964I);
#endif
#ifdef TEST_MA5SI
	audioEnable(AU_DEV_MA5SI, AU_DEV_MA5SI);
#endif	

#if _DEMO_VER >= 0x17
	i2cType.bIsGPIO = TRUE;
	i2cType.uSDIN = 5;
	i2cType.uSCLK = 4;
#else
	i2cType.bIsGPIO = FALSE;
	i2cType.uSDIN = 1;
	i2cType.uSCLK = 0;
#endif

	audioSetI2CType(i2cType);
	
	//audioSetOutputPath(TRUE,FALSE);
	
	//audioSetPlayBuff(0x100000, 8192);
	//audioSetRecBuff(0x110000, 8192);
	audioSetPlayBuff(0x10050000, 8192);
	audioSetRecBuff(0x100c0000, 8192);

	

	sysSetTimerReferenceClock (TIMER1, 12000000);
	//sysSetTimerReferenceClock (TIMER1, 26000000);//for bird
	sysStartTimer(TIMER1, 100, PERIODIC_MODE);


#if 0
    {
    	INT SR,channel,format;
    	INT8 choose;
repeat:    	
    	printf("select data format:\n");
    	printf("1.I2S format\n");
    	printf("2.MSB Justified format\n");
#if USEUART    	
    	choose = sysGetChar();
#else
		scanf("%c",&choose);
#endif
		switch(choose)
		{
			case '1':
				format = IIS_FORMAT;
				break;
			case '2':
				format = MSB_FORMAT;
				break;
			default:
				break;
		}
		
		printf("select num of channel:\n");
    	printf("1.mono\n");
    	printf("2.stereo\n");
#if USEUART    	
    	choose = sysGetChar();
#else
		scanf("%c",&choose);
#endif
		switch(choose)
		{
			case '1':
				channel = 1;
				break;
			case '2':
				channel = 2;
				break;
			default:
				break;
		}
		
		printf("select sampling rate:\n");
    	printf("1.8k\n");
    	printf("2.11.025k\n");
    	printf("3.12k\n");
    	printf("4.16k\n");
    	printf("5.22.05k\n");
    	printf("6.24k\n");
    	printf("7.32k\n");
    	printf("8.44.1k\n");
    	printf("9.48k\n");
#if USEUART    	
    	choose = sysGetChar();
#else
		scanf("%c",&choose);
#endif
		switch(choose)
		{
			case '1':
				SR = AU_SAMPLE_RATE_8000;break;
			case '2':
				SR = AU_SAMPLE_RATE_11025;break;
			case '3':
				SR = AU_SAMPLE_RATE_12000;break;
			case '4':
				SR = AU_SAMPLE_RATE_16000;break;
			case '5':
				SR = AU_SAMPLE_RATE_22050;break;				
			case '6':
				SR = AU_SAMPLE_RATE_24000;break;
			case '7':
				SR = AU_SAMPLE_RATE_32000;break;
			case '8':
				SR = AU_SAMPLE_RATE_44100;break;				
			case '9':
				SR = AU_SAMPLE_RATE_48000;break;
			default:
				break;
		}
		
		//audio_demo(SR,channel,format);//ok
		audio_loopback_demo(SR,channel,format);
		goto repeat;
		
		
		//record_to_file(8000);
    }
#endif	
	//audio_PMP_record_demo();
	
	while(1)
 		audio_demo(AU_SAMPLE_RATE_44100,2,IIS_FORMAT);
	//audio_loopback_demo(8000,1,IIS_FORMAT);
	//audioSetPlayVolume(15,15);
	//WM8978_FMBypass_Setup();
	//while(1);

///	audio_loopback_demo(AU_SAMPLE_RATE_48000,1);
//	audio_loopback_demo(AU_SAMPLE_RATE_44100,1);
//	audio_loopback_demo(AU_SAMPLE_RATE_32000,1);
//	audio_loopback_demo(AU_SAMPLE_RATE_24000,1);
//	audio_loopback_demo(AU_SAMPLE_RATE_22050,1);
//	audio_loopback_demo(AU_SAMPLE_RATE_16000,1);
//	audio_loopback_demo(AU_SAMPLE_RATE_11025,1);
//	audio_loopback_demo(AU_SAMPLE_RATE_8000,1);

//   record_to_file(AU_SAMPLE_RATE_24000);
}
Ejemplo n.º 4
0
void audio_PMP_record_demo()
{
	INT 	nMICLToggle=0;
	INT 	nLINEIN1Toggle=0;
	INT 	nLINEIN2Toggle=0;
	INT 	nSPToggle=0;
	INT 	nHPToggle=0;
	

	while(1)
	{
		INT8 choose;
		
		printf("1.Enable bypass\n");
		printf("2.Disable bypass\n");
		printf("3.Start record 10sec PCM to file\n");
		printf("4.Play from file\n");
		printf("5.En/Disable Path\n");
#if USEUART    	
   		choose = sysGetChar();
#else
		scanf("%c",&choose);
#endif
		switch (choose)
		{
			case '1':audioSetPlayVolume(20,20);
					//WM8978_Bypass_Enable();
					audioBypassEnable();
					break;
			case '2'://WM8978_Bypass_Disable();
					audioBypassDisable();
					break;
			case '3':record_to_file(8000,1);
					break;
			case '4':play_from_file(8000,1);
					break;
			case '5':
					{
						
						
						printf("select output path\n");
						printf("1.Speaker:%d\n",nSPToggle);
						printf("2.Head phone:%d\n",nHPToggle);
#if USEUART 		   	
   						choose = sysGetChar();
#else       		
						scanf("%c",&choose);
#endif      		
						if (choose == '1')
						{
							if (nSPToggle)
								nSPToggle = 0;
							else
								nSPToggle = 1;
							audioSelectOutputPath(OUT_PATH_SP,nSPToggle);
						}
						if (choose == '2')
						{
							if (nHPToggle)
								nHPToggle = 0;
							else
								nHPToggle = 1;
							audioSelectOutputPath(OUT_PATH_HP,nHPToggle);
						}
						
					}
					{
						
						
						printf("select input path\n");
						printf("1.MicL IN:%d\n",nMICLToggle);
						printf("2.FM IN:%d\n",nLINEIN1Toggle);
						printf("3.LINE IN:%d\n",nLINEIN2Toggle);
#if USEUART 		   	
   						choose = sysGetChar();
#else       		
						scanf("%c",&choose);
#endif      		
						if (choose=='1')
						{
							if (nMICLToggle)
								nMICLToggle = 0;
							else
								nMICLToggle = 1;
							audioSelectInputPath(IN_PATH_MICL,nMICLToggle);
						}
						if (choose=='2')
						{
							if (nLINEIN1Toggle)
								nLINEIN1Toggle = 0;
							else
								nLINEIN1Toggle = 1;
							audioSelectInputPath(IN_PATH_LINEIN1,nLINEIN1Toggle);
						}
						if (choose=='3')
						{
							if (nLINEIN2Toggle)
								nLINEIN2Toggle = 0;
							else
								nLINEIN2Toggle = 1;
							audioSelectInputPath(IN_PATH_LINEIN2,nLINEIN2Toggle);
						}
						
						
						
					}
					break;
			default: break;	
						
		}
	}
	
}