-
Data: 2021-11-15 20:22:11
Temat: Re: AVR po latach
Od: heby <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 15/11/2021 19:57, Grzegorz Niemirowski wrote:
>> Jest śladowo prawdopodobne, abyś dał radę znaleźć nowy bug w AVR.
>> Miliony programistów Arduino raczej by go znalazły.
> Oczywiście nie mówię o bugach w AVR. Chodzi o to, że urządzenie nie
> składa się z samego MCU. Masz też różne inne układy, które mogą się
> zachowywać inaczej niż myślałeś lub mieć błędy. Przykładowo UART w
> Raspberry Pi wysyłał na początku transmisji dodatkową szpilkę, która
> mogła być traktowana jako bit startu. Nie było to nigdzie opisane.
> Pracując w embedded takie i inne kwiatki spotyka się cały czas.
Zgadza się. Dlatego psu na budę debugger softwareowy w roli debuger
hardwareowego. To najzwyczajneij zupełnie inne zagadnienie.
>> Debuggery hardwareowe to ostatecznośc. Jesli podczas pisania kodu
>> musisz ich używać, to masz kiepsko napisany kod.
> To jest akademicka teoria. Powiedz twórcom GDB, że zmarnowali swój czas
Obserwacja z pola bitwy: prawidłowe pisanie kodu minimalizuje potrzebę
używania debuggera. Do zera? Nie. Blisko zera? Tak. Mówiąc "pisanie
kodu" mam na myśli testowanie go a dopiero potem pisanie. Zwyczajowo
waga unit testów znaczaco przekracza wagę kodu produkcyjnego.
Obserwacja z innego pola: debuggery softwareowe nie nadają się do
*rzeczywistych* systemów hardwareowych gdzie istnieją zalezności
czasowe. Do tego bezpieczniej jest stosować symulatory logiczne z
emulacją cpu i peryferiów. Tylko wtedy nie wiadomo czy bug jest u mnie
czy w emulacji. I takie symulatory za darmo się nie rozdają.
Ja ten problem rozwiązywałem kiedyś kradnąć rdzeń AVR z projektu MAME i
dorabiając ręcznie napisany emulator pewnego peryferium, dzięki czemu
udało się namierzyć buga, ale to jednorazowy wyskok, raczej desperacja.
> :) Debuger jest normalnym narzędziem i sięganie po niego nie musi wcale
> źle świadczyć o programiście. Jego brak jest ograniczeniem środowiska.
Nie o tym mowa.
W środowisku softwareowym, debugger to normalne narzędzie z łatwo
(zazwyczaj) powtarzalnymi przypadkami.
W środowisku hardwareowym jest to narzędzie skrajnie trudne do użycia.
Wyobraź sobie debugowanie przez JTAG procesora, który ma wysyłać co
milisekundę heartbeat do watchdoga zewnątrznego. Zatrzymujesz go na
breakpoincie i jesteś umarty.
Albo symulujesz całość *systemu* hardwareowego i tam debugujesz w
komfortowych warunkach, albo masz na głowie niezliczone ilosci problemów
z faktem że czas mimo zatrzymania programu pędzi dalej, przerwania się
nie obsługują, bufory się przepełniają, ciekłe kryształy się elektrolizują.
gdb to nie jest narzędzie do debugowania w hardware, poza śmiesznie
prostymi przypadkami debugowania kodu wysokopoziomowego. Co akurat robi
się prawie zawsze na maszynei dev, a nie w hardware.
>> Nie bez powodu. Dzięki temu, że ma gotowe bibliteki, taki debug jest
>> mało potrzebny.
> Piszesz o nich jak o bibliotekach libc. Tymczasem mają one nieraz błędy
> i słabą dokumentację.
Zupełnie jak wiele kawałków hardware, używanych codziennie. Ogólnie
świat hardware to nic specjalnie pewnego. Więc niejako karę za hobby
embedded niech będzie czujnośc, że wszędzie czają się bugi, a te
hardwareowe są najweselsze.
>> Ale nie jestem przekonany, czy środowiska do embedded są znakomite.
>> Jak na razie po kontakcie z kilkoma na przestrzeni 20 lat, uciekam na
>> same słowa "embedded IDE".
> No właśnie :) Tym bardziej Arduino IDE :)
Od Arduino jak najdalej. Nie miej wrażenia, że jesli zapytałem o
religijnośc poglądów na Arduion, to jestem fanem. To Qpa. Ale pozwole
sobie na jeden komplement: mimo wymachiwania pięściami przez 60latków z
embedded, wprowadził tylnymi drzwiami C++ do świata uC. Podziękowania
się należą, nowe pokolenie programistów embedded będzie dzieki temu
bardziej ateistyczne.
Następne wpisy z tego wątku
- 16.11.21 09:03 Atlantis
- 16.11.21 11:26 Grzegorz Niemirowski
- 16.11.21 11:51 Grzegorz Niemirowski
- 16.11.21 18:18 heby
- 16.11.21 18:22 Pcimol
- 16.11.21 18:30 Pcimol
- 16.11.21 19:30 Atlantis
- 17.11.21 10:53 Grzegorz Niemirowski
- 17.11.21 11:45 Marek
- 17.11.21 12:05 Marek
- 17.11.21 12:58 Marek
- 17.11.21 14:51 Grzegorz Niemirowski
- 17.11.21 16:17 Marek
- 17.11.21 18:18 heby
- 17.11.21 18:22 heby
Najnowsze wątki z tej grupy
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
- Dziwny schemat wzmacniacza m.cz.
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- CGNAT i ewentualne problemy
- wzmacniacz mocy
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- Propagation velocity v/c dla kabli RF
- Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- Czujnik nacisku
- Protoków komunikacyjny do urządzenia pomiarowego
- Hiszpania bez pradu
- amperomierz w plusie
Najnowsze wątki
- 2025-06-07 Mouser - koszt wysyłki
- 2025-06-07 Co robić, jak robić, aby dużo zarobić, a się nie narobić ?
- 2025-06-07 Co robić, jak robić, aby dużo zarobić, a się nie narobić ?
- 2025-06-07 Co robić, jak robić, aby dużo zarobić, a się nie narobić ?
- 2025-06-07 Warszawa => Software .Net Developer <=
- 2025-06-07 Warszawa => Junior SQL / FrontEnd developer <=
- 2025-06-07 Warszawa => Team Lead Data Engineer (Snowflake) <=
- 2025-06-07 Kraków => Kotlin Developer <=
- 2025-06-07 Warszawa => Senior Key Account Manager IT <=
- 2025-06-07 Gdańsk => PHP Developer <=
- 2025-06-07 Warszawa => Specjalista ds. Sprzedaży <=
- 2025-06-07 Łódź => Mainframe (z/OS, Assembler) Developer <=
- 2025-06-07 Warszawa => Sales Assistant and Customer Development Specialist <=
- 2025-06-07 Warszawa => Programista Full Stack .Net <=
- 2025-06-07 Lublin => Delphi Programmer <=