#elektronika #pracbaza #programowanie
To ja może przeskoczę na razie to jak upchnąłem dość istotny program rozruchowy w 2kB kodu. I przeniosę się miesiąc-dwa dalej. Zostałem wezwany do HQ firmy na coś co na podlaskich wsiach nazywają "tłoką". Czyli ludzie z iluśtam oddziałów zjeżdżają się kończyć projekt pod czujnym okiem Żółtego Pana.
Czyli jednak musiałem coś zjebać, prawda?
Wyglądało na to że tak. Otóż lokalny dział utrzymania jakości stwierdził, że czasem telewizor się nie uruchamia. No bo tym urządzeniem był telewizor.
No jak to czasem? A tak z raz na 50-100 razy.
Chryste, trzymajcie mnie.
Wiedziałem, że nieprędko opuszczę tamten (umiarkowanie) piękny kraj. Kto śledzi moje wpisy zorientuje się jaki.
Dali mi listwę z prztyczkiem i rzeczywiście. Czasem nie startuje. Świeci się diodka, na chipie jest napięcie.
Co pokazuje debuger z jtaga? No coś zadziałało, a potem wyjątek. Najczęściej nielegalna instrukcją. Coś jakby program leciał w krzaki. Mój program. Gdzieś w tych 2kB. Za każdym razem w innym miejscu.
Dotarcie do tego wniosku zajęło pewnie tydzień po 14h dziennie. Głównie dlatego że trudno było to wywołać.
Znalazłem za to płytę, która nie startowała raz na 10 razy. Elegancko.
Po wielokrotnej lekturze instrukcji do flasha i soca coś mi zaświtało. Może Flash nie zdąży załadować mojego programu do "okienka" NAND, a SoC już zaczyna wykonywać kod?
Oczywiście złożyłem wizytę panom od HW, którzy wreszcie poznali swojego nemezis z nic nieznaczącego dalekiego kraju. Nie chcieli mi dać oscyloskopu. W końcu dali mi to - najlepszy oscyloskop na świecie - Yokogawa DL1740. Z drukarką termiczną! Drukującą przebiegi jak jakieś EKG. I całe szczęście, bo rzeczywiście flash startował zaraz po chipie i tylko wewnętrzna inicjalizacja SoCa powodowała wystarczające opóźnienie, żeby w ogóle coś ruszyło. Wszystkie układy na płytce miały tę samą linię resetu, tożsamą z zasilaniem. VCC zwalniało reset wszędzie.
Ale te krótkie siusiaczki nie chciały nawet wyjść do mnie z kanciapy. Tylko w kółko, żebym dodał jakiś sleep czy coś. No dałem, na samym początku. I tak płyta zamiast umierać raz na 10 razy umierała raz na 50. Całe szczęście oscyloskop miał tę drukarkę bo mogłem do nich chodzić i rysować na wykresie napięcia zasilania.
Na szczęście bali się mojego szefa z UK. Nie wiem czy chodziło o szacunek dla stanowiska czy o to że wyglądał jak Shrek, zresztą tak o nim mówili.
Obiecali że poprawią.
Rano moja płyta była jakaś inna. Pobrudzona, ktoś ją ruszał, a ja wychodziłem po 22. Ninja jakiś?
Odwróciłem ją w powietrzu do góry nogami i odpadły 3 kondensatory. Takie SMD, plastikowe, nie przewlekane.
Płyta ponownie wróciła po obiedzie. No, było lepiej, choć dalej losowo zdychała. Wincyj kondensatorów przy linii zasilania, czyli gładsze i wolniejsze narastanie, ale nadal loteria. No to jeszcze raz pokombinują. Tymczasem ja im mówię i objaśniam, że przecież są układy opóźniające reset, można sobie dobrać opóźnienie, wlutować i jazda.
Następny dzień i działa! Wreszcie.
Wyłączyłem TV z pilota, wracam po obiedzie, oglądam czy znowu mi czegoś nie podrzucili, a ten flash jakiś taki ciepły.
Przylutowali zasilanie flasha do zasilania standby. Pstrykając listwą zasilającą a nie pilotem byłem w stanie dokładnie tak samo popsuć jak przedtem.
Ktoś gdzieś się wkurwił, panowie od HW zamułki, gdzieś zniknęli a Shrek wyprawił mnie samolotem do domu.
Ale miałem jeszcze wrócić.
078c9359-6f68-4ec9-98d7-35034afcd3a3
7a4d7ee3-515a-4a47-a5a1-bcf819b90ef0
11

Komentarze (11)

@pierdonauta_kosmolony współczuję ale jednocześnie zazdroszczę przygody 😅


Po swoich przygodach dziwię się że Apple mnie jeszcze nie ściga 😁

@3zet - a czemuż to miałoby ścigać?

@koszotorobur Pewnie jest Meksykaninem i ma bana na USA za przemyt ale zgania na Apple'a

@koszotorobur reverse engineering panie ferdku

@3zet - a jakie sukcesy na tym polu Tomeczku?

@pierdonauta_kosmolony Szczerze, nie sprawiasz wrażenia osoby, z którą chciałbym współpracować na co dzień.

@groman43

Być może.

A jakieś uzasadnienie?

@pierdonauta_kosmolony Mam wrażenie, że uważasz że wszystko wiesz najlepiej. Oraz że jesteś najważniejszy w projekcie. Dodatkowo, określenie "krótkie siusiaczki", którego użyłeś w poprzednim poście jest po prostu skrajnie rasistowskie.

@groman43 mam podobne przygody jako programista z ludźmi od hardware ale sam wywodzę się od hardware i wiem jak to jest. My zrobiliśmy zgodnie z notą katalogową, co ci programiści znów wymyślili, przecież my tak robimy zawsze, przecież przechodzi EMC. Potem programista dostaje do rąk coś co trzeba rzeźbić, wstawiać „badze”, podmieniać wartości rezystorów itp. W normalnych relacjach FW-HW robi się programy testowe, testuję platformę i wprowadza wymagane zmiany. W patologicznych hw twierdzi że zrobił wszystko dobrze a jak nie działa to wina programisty bo leń albo niedouczony. Ponadto he często się boi swojej reputacji i ewentualnych kosztów release nowej płyty. Wyobraź sobie że produkcja już gotowa lub już w produkcji a tu trzeba zmienić kontroler. Mój szef na pytanie „dlaczego to jest tak dziwnie zrobione” odpowiada „lata temu ktoś z góry przekonał mnie że mam wziąć o jeden dolar tańszy kontroler i teraz programista musi pracować o pół roku dłużej”.

@groman43

Wtedy byłem młody i głupi i faktycznie wydawało mi się że wszystko wiem najlepiej. Natomiast to się rozgrywało przez około 3 tygodnie, po średnio 12 godzin dziennie. Przy braku wsparcia że strony localsów i jasno postawionym wymaganiu że "masz naprawić", nie interesuje nas jak, no, to było frustrujące i dałem temu tutaj upust.

A tego brzydkiego określenia nie użyłem w kontekście rasistowskim, akurat ten zespół zajmujący się sprzętem był szczególnie butny jeśli chodzi o współpracę, za każdym razem trzeba było odczuć, jak bardzo są ważni i istotni dla firmy, elitarni.

Kumpel kiedyś embedded programował, to zawsze mówił, że jest to kara boska za grzechy w poprzednim życiu.

Zaloguj się aby komentować