-
1. Data: 2017-08-15 18:11:31
Temat: ESP8266 + SDK - zapis struktury do pamięci flash
Od: Atlantis <m...@w...pl>
Może ktoś się orientuje jak to można zrobić, bo nigdzie nie mogę znaleźć
dokładnej instrukcji. Wiem, że korzystając z Arduino można skorzystać z
biblioteki wzorowanej na AVR-owym EEPROM.h. Ja jednak preferuję natywne
SDK z uwagi na wykorzystanie callbacków oraz fakt, że używam już
opartych na nim bibliotek.
Wiem, że istnieją funkcje do zapisu danych do pamieci flash:
spi_flash_erase_sector()
spi_flash_write()
spi_flash_read()
Jednak jak ustalić obszar pamięci, do którego mogę bezpiecznie zapisywać
swoje dane? Czy przez zapisaniem/po odczytaniu struktury będę musiał
wykonać jeszcze jakieś dodatkowe operacje, związane np. z wyrównywaniem
bajtów?
-
2. Data: 2017-08-16 20:51:00
Temat: Re: ESP8266 + SDK - zapis struktury do pamięci flash
Od: "pawel" <p...@p...onet.pl>
Może wykorzystać jakiś gotowiec emulujący eeprom. Nie używałem.
https://github.com/azim0ff/eeprom
Niestety ostrzeżenie przed nadpisaniem danych jest więc sprawdzić będzie
trudno.
Pozdrawiam
Użytkownik "Atlantis" napisał w wiadomości grup
dyskusyjnych:59931d3a$0$15208$6...@n...neostrad
a.pl...
Może ktoś się orientuje jak to można zrobić, bo nigdzie nie mogę znaleźć
dokładnej instrukcji. Wiem, że korzystając z Arduino można skorzystać z
biblioteki wzorowanej na AVR-owym EEPROM.h. Ja jednak preferuję natywne
SDK z uwagi na wykorzystanie callbacków oraz fakt, że używam już
opartych na nim bibliotek.
Wiem, że istnieją funkcje do zapisu danych do pamieci flash:
spi_flash_erase_sector()
spi_flash_write()
spi_flash_read()
Jednak jak ustalić obszar pamięci, do którego mogę bezpiecznie zapisywać
swoje dane? Czy przez zapisaniem/po odczytaniu struktury będę musiał
wykonać jeszcze jakieś dodatkowe operacje, związane np. z wyrównywaniem
bajtów?
-
3. Data: 2017-08-16 20:52:39
Temat: Re: ESP8266 + SDK - zapis struktury do pamięci flash
Od: "pawel" <p...@p...onet.pl>
Ups. Nie doczytałem że chodzi o struktury danych.
-
4. Data: 2017-08-16 21:28:42
Temat: Re: ESP8266 + SDK - zapis struktury do pamięci flash
Od: Zbych <a...@o...pl>
W dniu 15.08.2017 o 18:11, Atlantis pisze:
> Jednak jak ustalić obszar pamięci, do którego mogę bezpiecznie zapisywać
> swoje dane? Czy przez zapisaniem/po odczytaniu struktury będę musiał
> wykonać jeszcze jakieś dodatkowe operacje, związane np. z wyrównywaniem
> bajtów?
Zacznij od sprawdzenia czy da się jednocześnie kasować jeden sektor w
pamięci flash a drugi w tym samym czasie czytać - z tego co widzę w
datasheetach flashy SPI, to nie bardzo. Oznacza to, że w czasie
kasowania sektora/zapisu, twój program będzie musiał się zatrzymać, bo
tylko 32kB programu jest cache'owane a reszta jest w miarę potrzeby
wczytywana z zewnętrznego flasha.
Tu masz mapę pamięci flash
https://github.com/esp8266/esp8266-wiki/wiki/Memory-
Map
więc możesz się zorientować gdzie jest trochę miejsca.
-
5. Data: 2017-08-17 00:49:06
Temat: Re: ESP8266 + SDK - zapis struktury do pamięci flash
Od: Marek <f...@f...com>
On Tue, 15 Aug 2017 18:11:31 +0200, Atlantis <m...@w...pl>
wrote:
> Jednak jak ustalić obszar pamięci, do którego mogę bezpiecznie
> zapisywać
> swoje dane? Czy przez zapisaniem/po odczytaniu struktury będę musiał
> wykonać jeszcze jakieś dodatkowe operacje, związane np. z
> wyrównywaniem
> bajtów?
To ma być jakiś config w strukturze zapisywany w flash?
Ja robię tak, umieszczam klasycznie strukturę w ram,. Kompilator sam
zadba o odpowiednie wyrownanie. Później kompiuje zawartość struktiry
bajt po bajcie do dowolnego adresu flash. A gdy chcę ją załadować
ładuję z flash do &struktura w ram. Można też strukturę czytać przez
wskaźnik od razu z adresu flash jeśli wcześniej zadba się by adres
był /4
--
Marek