extern "C" void ICACHE_FLASH_ATTR user_init(void) { do_global_ctors(); // Configure the UART uart_init(UART_BITRATE, UART_BITRATE); DPRINT("ESP8266 platform starting..."); // Config::instance().zero(); Config::I().errno(ERRNO_OK); if(!Config::I().wifi_configured()) reset_wifi_configs(); // startudp(); os_timer_disarm(&WiFiCheck); Config::I().errno(ERRNO_UNDEFINED); os_timer_setfn(&WiFiCheck, (os_timer_func_t *)wifi_check_ip, NULL); os_timer_arm(&WiFiCheck, 1000, 0); RGBLED::I(); test_flash(); PM; // HTTPD::instance(); }
void configure_main(void) { uint8_t buffer[10]; config_idx = -1; cph_config = cph_config_init(); while (1) { TRACE("\r\n\r\nMain Menu\r\n"); TRACE("==============\r\n"); for (int i=0;i<G_CONFIG_COUNT - 1;i++) { TRACE("%d) ", i); configure_print_dwt_config(&g_dwt_configs[i]); TRACE("\r\n"); } TRACE("U) User defined\r\n"); TRACE("P) Set parameters\r\n"); TRACE("A) Exit and run as ANCHOR\r\n"); TRACE("C) Exit and run as COORDINATOR\r\n"); TRACE("T) Exit and run as TAG\r\n"); TRACE("L) Exit and run as LISTENER\r\n"); TRACE("S) Exit and run as SENDER\r\n"); TRACE("D) Exit and run with compiled DEFAULTS\r\n"); TRACE("F) Test flash\r\n"); TRACE("\r\nCurrent Config : "); configure_print_dwt_config(&cph_config->dwt_config); TRACE("\r\nNew Config : "); if (config_idx == -1) { TRACE("none selected"); } else { configure_print_dwt_config(&g_dwt_configs[config_idx]); } TRACE("\r\n"); TRACE("\r\n> "); choice = getchar() & 0xFF; TRACE("%c - ", choice); if (choice >= '0' && choice <= ('0' + G_CONFIG_COUNT - 1 - 1)) { TRACE("VALID\r\n"); config_idx = choice - '0'; } else if (choice == 'u' || choice == 'U') { configure_user_defined(); } else if (choice == 'p' || choice == 'P') { configure_parameters(); } else if (choice == 'a' || choice == 'A') { cph_config->mode = CPH_MODE_ANCHOR; TRACE("Exiting as CPH_MODE_ANCHOR\r\n"); break; } else if (choice == 'c' || choice == 'C') { cph_config->mode = CPH_MODE_COORD; TRACE("Exiting as CPH_MODE_COORD\r\n"); break; } else if (choice == 't' || choice == 'T') { cph_config->mode = CPH_MODE_TAG; TRACE("Exiting as CPH_MODE_TAG\r\n"); break; } else if (choice == 'l' || choice == 'L') { cph_config->mode = CPH_MODE_LISTENER; TRACE("Exiting as CPH_MODE_LISTENER\r\n"); break; } else if (choice == 's' || choice == 'S') { cph_config->mode = CPH_MODE_SENDER; TRACE("Exiting as CPH_MODE_SENDER\r\n"); break; } else if (choice == 'd' || choice == 'D') { memset(cph_config, 0, sizeof(cph_config_t)); cph_config_write(); TRACE("Exiting as compiled DEFAULT\r\n"); break; } else if (choice == 'f' || choice == 'F') { test_flash(); } else { TRACE("NOT VALID\r\n"); } }; TRACE("\r\n"); TRACE("Writing config..."); if (config_idx >= 0) { memcpy(&cph_config->dwt_config, &g_dwt_configs[config_idx], sizeof(dwt_config_t)); } cph_config_write(); TRACE("done.\r\n"); TRACE("Starting in "); for (int i=3;i>0;i--) { TRACE("%d ", i); cph_millis_delay(1000); } TRACE("\r\n"); }
static void * case_thread(DirectThread *thread, void *arg) { int ret; case_t *caseP = arg; bool passflg = false; FILE *fp = NULL; char command[100]; struct stat st; bool iio_enable; iio_enable = is_iio_enable(); printf("iio_enable = %d\n", iio_enable); if(caseP->type == 0) { switch(caseP->index) { //mem case mem: sprintf(command, "memtester %s 1 2 > /memerr.log 1> /dev/null", caseP->nod_path); // printf("command = %s\n", command); ret = system(command); // printf("mem ret = %d\n", ret); if(!ret && stat("/memerr.log", &st) >= 0) //获取文件信息 { if(st.st_size == 0) { passflg = true; } } break; case ddrsize: passflg = test_ddrsize(caseP); break; //flash case flash:; passflg = test_flash(caseP); break; //wifi case wifi: passflg = test_wifi(caseP); break; case bt: passflg = test_bt(caseP); break; //gsensor case gsensor: if(!iio_enable) passflg = test_gsensor(caseP); else passflg = test_iio(caseP, info); break; case gyro: if(!iio_enable) passflg = false; else passflg = test_iio(caseP, info + 1); break; case comp: if(!iio_enable) passflg = false; else passflg = test_iio(caseP, info + 2); break; case lightsensor: passflg = test_lightsensor(caseP); break; //camera // case camera: // passflg = wait_dev_plugin(caseP->nod_path); // break; //rtc case rtc: passflg = test_rtc(caseP); break; case gps: passflg = test_gps(caseP); break; case uart: passflg = test_uart(caseP); break; case ethernet: passflg = test_ethernet(caseP); break; } } else if(caseP->type == 1) { switch(caseP->index) { //sdcard case 0: passflg = test_mmc(caseP); break; //usb case 1: passflg = test_usb(caseP); break; case 2: passflg = test_pc(caseP); break; //hdmi case 3: wait_nod_state(caseP, &hdmi_flg); //test_hdmi(caseP, &hdmi_flg); break; //headphone case 4: wait_nod_state(caseP, &headphone_flg); break; //key case 5: passflg = test_key(caseP); break; //onoff case 6: passflg = test_key_onff(caseP); break; //charege case 7: passflg = test_charge(caseP); break; //mtv case 8: passflg = test_mtv(caseP); break; } } draw_result(caseP, passflg); }