wtorek, 14 sierpnia 2018

Bibiloteka EEPROM_WL


Pamięć w EEPROMie mikrokontrolerów ma ograniczoną ilość cykli zapisu w komórce typowo przyjmuje się, że jest to 100k - niby dużo, niby nie. Zależy od urządzenia, od tego, czy jest to nasze hobbystyczny projekcik, czy komercyjne urządzenie, które chcemy, żeby u klienta działało bezawaryjnie bardzo długo.


Po przekroczeniu ilości cykli zapisu możemy odczytywać z pamięci błędne dane co nie będzie raczej przyjazne dla naszego programu. Jedną z technik na lepsze wykorzystanie pamięci EEPROM jest "wear leveling" - czyli zapisywanie zmiennej nie w tej samej komórce, ale rozkładanie jej w pamięci po różnych obszarach. Algorytmów jak to zrobić jest dużo.

Ja przygotowałem bibliotekę do czegoś takiego - można ją znaleźć tutaj: https://github.com/dambo1993/EEPROM_WL
ale, żeby być szczerym - nie uruchomiłem jej na sprzęcie, ale mam pewność, że jest ok i działa poprawnie :)
Skąd? Otóż bawię się ostatnio różnymi frameworkami do testów jednostkowych w embedded i tym razem padło na "doctest" https://github.com/onqtam/doctest prosty, łatwy i przyjemny framework. Zrobiłem więc testy dla różnych kombinacji obiektów itp i biblioteka wszystkie je przechodzi.
Dodatkowo wygenerowałem raport z pokrycia kodu testami i tylko 2 linijki nie sa obecnie wykonywane podczas testów - dopisze dla nich odpowiednie testy w wolnej chwili, więc możliwe, że gdy to czytasz to pokrycie wynosi już 100%.
Wynik testów:

0 komentarze:

Prześlij komentarz