2016-09-12 5 views
0

현재 내 http 서버에 esp8266 연결을 시도 중입니다. 내 로컬 와이파이 네트워크 작동에 연결하지만 난 내 서버에 연결하려고하면 내가 터미널 창에서이 오류를 얻을 :ESP8266 - TCP 서버에 연결 (C에서)

치명적인 예외 9 (LoadStoreAlignmentCause를) EPC1 = 0x4026027b, EPC2 = 0x00000000의, epc3 = 0x00000000의 , excvaddr = 0x00000011, DEPC = TCP 연결을 처리하고 다음과 같습니다 내가 check_ip()를 호출 user_init 기능에

이 0x00000000의 :

LOCAL void ICACHE_FLASH_ATTR check_ip(void){ 
    struct espconn conn; 
    struct ip_info ipconf; 
    esp_tcp tcp; 
    uint8 ipAddr[4] = {1,2,3,4}; 
    uint32 localPort = espconn_port(); 
    bool res = wifi_get_ip_info(STATION_IF, &ipconf); 
    if(!res) 
     os_printf("No Success."); 
    else{ 
     os_memcpy(tcp.local_ip,&ipconf.ip,4); 
     if(wifi_station_get_connect_status() == STATION_GOT_IP && ipconf.ip.addr != 0){ 
      os_printf("Got IP Address.\n"); 

      tcp.remote_port = 80; 
      tcp.local_port = espconn_port(); 
      os_memcpy(tcp.remote_ip,ipAddr,4); 

      conn.type = ESPCONN_TCP; 
      conn.state = ESPCONN_NONE; 
      conn.proto.tcp = &tcp; 

      espconn_regist_connectcb(&conn,tcp_connect_cb); 
      espconn_regist_reconcb(&conn,tcp_recon_cb); 

      espconn_connect(&conn); 
      os_timer_disarm(&timer); 
     } else { 
      os_timer_setfn(&timer,(os_timer_func_t*)check_ip,NULL); 
      os_timer_arm(&timer,100,0); //recall function after 100ms, don't repeat 
     } 
    } 
} 

어떤 도움 V는 ery 많이 감사합니다.

+0

정답이 아니더라도 답을 솔루션에 추가하십시오. – mpromonet

답변

0

올바르게 기억하면 스택 변수를 사용하는 대신 esp_conn을 동적으로 할당해야합니다. 이 espconn_list_creat(&plink_active, pclient); pclient->pespconn = espconn; <---- it stores your pointer

예 : https://myesp8266.blogspot.com.cy/2015/03/publish-data-from-your-esp8266-to.html가 (단지 첫번째 구글에 있지만, 확인 같다)

가 PS : IMO esp_conn_xxxx 기능이 약간입니다 깊은 내부

(espconn_tcp_client (구조체 espconn *는 espconn) 기능이 수행 신뢰할 수 없다 ... LWIP을 사용하는 것이 좋습니다.

+0

정답이 아니더라도 도움을 주셔서 감사합니다. 여기에서 코드 : http://41j.com/blog/2015/01/esp8266-c lient-mode-connect-remote-host-simple-example/ 나는 나의 초기 게시물을 편집했다. – binaryBigInt

+0

당신의 예제는 실제로 스택 변수를 사용하지 않습니다 : 'static struct espconn conn; ' 이 문맥에서는 malloc과 같습니다 –