Robię oba, więc oto mój pogląd.
Myślę, że najważniejszą umiejętnością w osadzaniu jest umiejętność debugowania. Wymagany sposób myślenia różni się znacznie, ponieważ o wiele więcej może pójść nie tak i musisz być bardzo otwarty na rozważenie wszystkich różnych sposobów, w jakie to, co próbujesz zrobić, może się nie udać.
Jest to największy problem dla nowych programistów wbudowanych. Ludzie na PC mają gorzej, ponieważ są przyzwyczajeni do pracy dla nich. Zamiast tego będą marnować dużo czasu na szukanie narzędzi do robienia dla nich rzeczy (wskazówka: nie ma ich wiele). Wciąż wiele razy walić głowami w ściany, nie wiedząc, co jeszcze zrobić. Jeśli czujesz, że utkniesz, cofnij się i dowiedz się, czy potrafisz ustalić, co może być nie tak. Systematycznie przechodź przez zawężanie listy potencjalnych problemów, dopóki jej nie znajdziesz. Bezpośrednio z tego procesu wynika, że należy ograniczyć zakres problemów, nie zmieniając zbyt wiele na raz.
Doświadczeni osadzeni ludzie biorą debugowanie za pewnik ... większość ludzi, którzy nie potrafią tego dobrze zrobić, nie trwa długo (lub pracuje w dużych firmach, które akceptują „oprogramowanie układowe jest trudne” jako odpowiedź na pytanie, dlaczego określona funkcja spóźnia się lat)
Pracujesz nad kodem, który działa w systemie zewnętrznym na twoim systemie programistycznym, z różnym stopniem widoczności twojego celu pomiędzy platformami. Jeśli masz kontrolę, poproś o pomoc rozwojową, aby zwiększyć widoczność swojego systemu docelowego. Używaj debugowanych portów szeregowych, wyjściowego debugowania bitów, słynnego migającego światła itp. Z pewnością przynajmniej naucz się obsługi oscyloskopu i używaj pinowego wejścia / wyjścia z „zakresem”, aby zobaczyć, kiedy niektóre funkcje wchodzą / wychodzą, uruchamiają się ISR itp. Widziałem ludzi walczących przez dosłownie lata dłużej niż to konieczne po prostu dlatego, że nigdy nie zadali sobie trudu, aby skonfigurować / nauczyć się, jak korzystać z odpowiedniego łącza debugującego JTAG.
O wiele ważniejsze jest, aby dokładnie wiedzieć, jakie zasoby masz w stosunku do komputera. Przeczytaj uważnie karty danych. Weź pod uwagę „koszt” zasobów wszystkiego, co próbujesz zrobić. Poznaj zorientowane na zasoby sztuczki debugowania, takie jak wypełnianie miejsca stosu magiczną wartością, aby śledzić użycie stosu.
Chociaż zarówno komputer, jak i oprogramowanie wbudowane wymagają pewnych umiejętności debugowania, jest o wiele ważniejsze w przypadku oprogramowania wbudowanego.