ESP8266 hängt, ich denke es liegt an meinem Code

Gast #4738532
Lesenswert?

Hallo Leute,

ich möchte was aus dem flash Speicher lesen, dazu hatte ich früher eine 
Funktion direkt in main.c Datei gehabt, jetzt habe ich die Sachen für 
flash Speicher (lesen/schreiben/löschen) in eine flashop.c Datei 
geschrieben, nun bleibt aber der ESP8266 nach dem Lesen stehen und 
startet sich neu kurz danach.
Ich vermute, dass ich etwas in meinem Code falsch habe, bin in C noch 
nicht richtig fit

Ein Ausschnitt aus main.c
1
...
2
...
3
int ICACHE_FLASH_ATTR isClient(){
4
  //Read config from flash
5
  struct wCLIENTCFG wConfAct; //wifi Konfiguration
6
  struct co2sen co2Conf; //CO2 Interval
7

8
  os_printf("IsCLient func check\n"); //test 1
9

10
  readWifiSetting(wConfAct); //Wifi Konfiguration lesen
11

12
  os_printf("isClient func2 \n"); //test 2
13
...
14
...

Die Funktion "readWifiSetting" aus flashop.c
1
void ICACHE_FLASH_ATTR readWifiSetting(struct wCLIENTCFG *wConf){
2

3
  int readwifi = spi_flash_read((wConfAddr*SPI_FLASH_SEC_SIZE), (uint32*)&wConf, sizeof(struct wCLIENTCFG));
4
  #ifdef DEBUG
5
    if(readwifi == SPI_FLASH_RESULT_ERR){
6
      os_printf("\nRead wifi setting failed...\n");
7
    } else {
8
      os_printf("(12) - read wifi Config from flash: %d\n", readwifi);
9
    }
10
  #endif
11
}

Hier noch die Ausgabe von ESP:
1
Start:
2
RGB: 65536,65536,65536
3
Start Mode Check 
4
IsCLient func check
5
(12) - read wifi Config from flash: 0

Also gelesen wurde es ohne Fehler, aber weiter läuft es nicht.

Kann mir jemand sagen, ob die Funktion, die ich erstellt habe korrekt 
ist bzw. vielleicht macht man das so nicht?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren