SaeLog #9: Outro

Niniejsza notatka jest podsumowującą całą serię edukacyjnych wpisów SaeLog, jakie w tym roku na przestrzeni kilku miesięcy pojawiały się na blogu. Seria dotyczyła hackowania modyfikacji kodu firmware oraz aplikacji analizatora logicznego firmy Saleae, aby ten działa również z nieoficjalnymi wersjami (klonami) urządzenia, gdzie używane są różne typy pamięci EEPROM. Problem ostatecznie został rozwiązany, więc nie będzie kontynuacji tematu.

Poniżej lista wszystkich odcinków jakie ukazały się na blogu w ramach #SaeLog:

Wszystkie powstałe artykuły są bardzo ciekawym zbiorem edukacyjnym, przedstawiające kolejne zmagania i etapy walki z irytującym błędem. Przy okazji sam się nauczyłem czegoś nowego, a także przypomniałem wiele zapomnianych elementów – jak chociażby ’51.

Poruszonych zostało wiele tematów, począwszy od reverse engineeringu, przez zabawy z firmware, zmagania z asemblerem 8051, czy bliższe poznanie niektórych elementów z bebechów chipsetu Cypressa. Jest to ciekawa dawka wiedzy, do której pewnie jeszcze wrócę. A poznane bebechy chipsetu FX2 pozwolą mi w przyszłości lepiej i łatwiej wykorzystać ten układ w różnych innych projektach, a kilka pomysłów od dawana czeka na realizację.

Prezentowany materiał nie wyczerpuje tematu, bo w kodzie programu czy firmware można znaleźć jeszcze wiele ciekawych i interesujących elementów, które aż proszą się o zbadanie.

Może to być np. temat identyfikatora urządzenia – funkcja GetIdFromDevice i SetIdToDevice z LogicAnalyzerDevice. Identyfikator zapisany jest w pamięci EEPROM w postaci 8 bajtów zaraz za identyfikatorami USB (8 bajtów). Interesujące może być skąd się on bierze, do czego służy i jak jest generowany.

Podobnie z konfiguracją, w kodzie natknąłem się na funkcję WriteConfigurationData, ciekawe czy dane te przechowywane są w EEPROM. Podobnie z ustawianiem w urządzeniu różnych istotnych parametrów (np. ActiveInputs, SampleRateHz, …) do których istnieją dedykowane metody w obiekcie LogicAnalyzerDevice.

Ciekawym zagadnieniem mogłoby być stworzenie mapy pamięci EEPROM, przedstawiającej całą jej przestrzeń adresową wraz z zawartością, ale to wykracza szeroko poza ramy głównego tematu jakim było naprawienie obsługi pamięci EEPROM. Po części wprowadzone modyfikacje można nazwać naprawianiem niedoróbek z obsługą różnych pamięci EEPROM. Chociaż ciężko powiedzieć, że jest to celowe działanie producenta, ale niestety tego też nie można jednoznacznie wykluczyć.

Osobiście, chyba już o tym wspominałem, ale na pewno będę chciał wykorzystać płytę deweloperską z CY7C68013A od Lcsoft do budowy prawdziwego analizatora logicznego, w samej aplikacji układu brakuje chociażby zabezpieczenia i buforowania wejść przed niepożądanymi sygnałami o amplitudzie przekraczającej bezpieczne dla układu poziomy. A jak wiadomo analizator czasem podłącza się do nieznanych elementów różnych systemów, więc bardzo łatwo wyrządzenie szkód.

Na razie zadowolę się prowizorką analizatora, ale temat ten prędzej czy później wróci.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *