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?