tonal
New member
Прошивка не подключается к WiFi.
Пишет Fatal exception 28(LoadProhibitedCause)
После весит с секунду, и по новой.
Иногда, включение на 10-е, таки подключается, но через небольшое время опять так же отваливается.
Подскажите, куда копать.
Прошивка собирается esp-open-sdk
ОС Kubuntu 14.04
Пишет Fatal exception 28(LoadProhibitedCause)
Код:
WiFi connecting...
Fatal exception 28(LoadProhibitedCause):
epc1=0x40248447, epc2=0x00000000, epc3=0x00000000, excvaddr=0x0000000c, depc=0x00000000
ets Jan 8 2013,rst cause:1, boot mode:(3,6)
load 0x40100000, len 26716, room 16
tail 12
chksum 0x03
ho 0 tail 12 room 4
load 0x3ffe8000, len 884, room 12
tail 8
chksum 0xef
load 0x3ffe8378, len 520, room 0
tail 8
chksum 0x0e
csum 0x0e
{l{l_*Wсinit
mode : sta(5c:cf:7f:01:e8:56)
add if0
f r-1,
Иногда, включение на 10-е, таки подключается, но через небольшое время опять так же отваливается.
Подскажите, куда копать.
Прошивка собирается esp-open-sdk
Код:
extern "C"
static void ICACHE_FLASH_ATTR wifi_check_ip(void *arg) {
os_timer_disarm(&WiFiLinker);
switch(wifi_station_get_connect_status()) {
case STATION_GOT_IP: {
ip_info ipConfig;
wifi_get_ip_info(STATION_IF, &ipConfig);
if(ipConfig.ip.addr != 0) {
connState = WIFI_CONNECTED;
os_printf("WiFi connected\n");
os_printf("Start TCP connecting...\n");
connState = TCP_CONNECTING;
senddata();
return;
}
break;
} case STATION_WRONG_PASSWORD: {
connState = WIFI_CONNECTING_ERROR;
station_config stationConf;
wifi_station_get_config(&stationConf);
os_printf(
"WiFi connecting error, wrong password: |%s=>%s|\n",
stationConf.ssid, stationConf.password);
break;
} case STATION_NO_AP_FOUND:
connState = WIFI_CONNECTING_ERROR;
os_printf("WiFi connecting error, ap not found\n");
break;
case STATION_CONNECT_FAIL:
connState = WIFI_CONNECTING_ERROR;
os_printf("WiFi connecting fail\n");
break;
default:
connState = WIFI_CONNECTING;
os_printf("WiFi connecting...\n");
}
os_timer_setfn(&WiFiLinker, wifi_check_ip, NULL);
os_timer_arm(&WiFiLinker, 1000, 0);
}
void ICACHE_FLASH_ATTR
user_init() {
uart_div_modify(0, UART_CLK_FREQ / BIT_RATE_115200);
uart_div_modify(1, UART_CLK_FREQ / BIT_RATE_115200);
os_printf("Start init\n");
// Проверяем если платы была не в режиме клиента AP, то переводим её в этот режим
// В версии SDK ниже 0.9.2 после wifi_set_opmode нужно было делать system_restart
if(wifi_get_opmode() != STATION_MODE)
wifi_set_opmode(STATION_MODE);
// Плата в режиме STA, устанавливаем конфигурацию, имя AP, пароль, см. user_config.h
if (wifi_get_opmode() == STATION_MODE) {
station_config stationConf; // = {"dlink", "CrjhjGkfythrf!Lf!"};
//wifi_station_get_config(&stationConf);
os_memset(&stationConf, 0, sizeof(stationConf));
os_memcpy(&stationConf.ssid, ssid, os_strlen(ssid) + 1);
os_memcpy(&stationConf.password, password, os_strlen(password) + 1);
wifi_station_set_config(&stationConf);
// wifi_station_connect();
// wifi_station_dhcpc_start();
wifi_station_set_auto_connect(1);
}
btn_init();
//Disarm timer
os_timer_disarm(&WiFiLinker);
os_timer_setfn(&WiFiLinker, wifi_check_ip, NULL);
os_timer_arm(&WiFiLinker, 1000, 0);
}