/*-----------------------------------------------------------------------------*/ 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(); } }
/** * @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; }
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); }
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; } } }