Początki z embedded

0

Swoją przyszłość chciałbym związać ze systemami wbudowanymi.
Znam C++, czy to wystarczy ?
Od czego powinienem zacząć, co kupić?

1

Zakładam, że mówiąc embedded chodzi ci o mikrokontrolery, a nie np. bankomat z wbudowanym Windowsem. Nie wiem, na ile znasz C++. Ogólnie można pchać na MCU C++, choć często ograniczenia mikroklocków zmuszają do użycia C (co samo w sobie nie jest złe, bo C jest w mojej opinii dużo prostsze i przyjemniejsze). Z assemblerem też wypada się oswoić, bo czemu nie. Zależy też, jak obyty jesteś z elektroniką. Jak nie miałeś większej styczności z mikrokontrolerami to standardowo kup chińskie Arduino i parę czujniczków, jakieś wyświetlacze. Prędzej czy później przy większym zainteresowaniu tematem i tak kupisz STM32, które chyba jest obecnie najpowszechniejsze w tej branży.

Jak już coś tam wiesz, to od razu kupuj jakieś Nucleo w sumie, bo po co bawić się w półśrodki. Chociaż wiadomo, że lepiej spalić płytkę za 15 zł niż za 60 xD

A no i bardzo fajnie jak masz dostęp do oscyloskopu, bo czasami bez niego to 8==D nie robota.

0

W sumie sam jeszcze nie wiem czym chce się zajmować, ale myśląc o embedded miałem przed oczami lodówki, telewizory i samochody xd

3

W takim embedded jak TV to i Cortex-A jest używany więc zainteresuje się też Linuksem. Ja teraz pracuję w embedded, głównie Linux a teraz projekt na STM32, ma być coś z MSP432. W jednym projekcie widziałem że używali jakiegoś Atmega. Bardzo dobrze trzeba znać protokoły komunikacyjne takie jak I2C, SPI, Ethernet etc. Ogólnie embedded to dziadostwo zwłaszcza w PL, z programowaniem ma to często niewiele wspólnego za to więcej z elektroniką, bariera wejścia duża, mało jest miejsc pracy i mało płacą. Na linkedinie jest więcej ofert pracy embedded w Monachium niż w całej PL. Myślę na poważnie żeby iść w coś bardziej dochodowego i ciekawszego, np. mobile albo web, już zaczyna mi to być wszystko jedno bo tam się przynajmniej coś dzieje.

EDIT:
C++ to niekoniecznie się przydaje, na pewno bardzo dobrze musisz znać C, zapoznaj się z oficjalnym standardem www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf. Ciekawe jest https://micropython.org/. Poza tym w embedded przydają się struktury danych takie jak queue, cyclic buffer etc. no a ze względu na to że miejsca na flashu jest mało a C standard library też nie oferuje gotowych implementacji to trzeba je pisać ręcznie i nie zawsze da się użyć gotowych rozwiązań które działają na desktopowych systemach.

1

Dan Saks ostatnio (no dobra dwa lata temu chyba na CodeDive) pokazywał wykresy, jakoby była tendencja spadkowa w używaniu C++ w embedded na rzecz C właśnie. Nie dziwi mnie to, biorąc pod uwagę
a. standardy pisane pod C (MISRA) i ilość softu, który trzeba utrzymywać/rozwijać
b. sporo mitów nt. C++
Nie znaczy to, że w C++ się w embedded nie pisze, ale jest tego zdecydowanie mniej.

Pytanie - jakie embedded? Małe, bare-metalowe? A może embedded Linux? W pierwszym przypadku C/C++ z okrojoną biblioteką standardową, w drugim... to co na normalnym Linuxie (+-) i do tego jakiś buildroot czy inne Yocto. Brak strachu przed oscyloskopem też się przyda. ;) No i musisz umieć czytać dokumentację techniczną.

Arduino nie polecam. Tzn. jak chcesz być hobbystą klecącym coś na szybko na kolanie - to będzie ono ok. Ale jakość bibliotek jest często na poziomie nie do określenia w sposób kulturalny, dokumentacja też, a jakości samych modułów (dobieranie np. napięć zasilania na podst. "absolute maximum ratings" bo jakoś to będzie) też mam sporo do zarzucenia.

Ale ogólnie jest to branża w PL (zwłaszcza bare-metal) dość mało płatna i niewdzięczna. Nie, że nieciekawa. Ale sam poszedłem w duże maszyny za pieniędzmi i spokojem zamiast zajeżdżać się rypaniem nadgodzin w patofirmach z polskim kapitałem. Nie, że tak jest wszędzie; da się trafić dobrze, ale jednak spora ilość rozmów o pracę - jak już dochodzi do pieniędzy - zawiera ten fajny element "podstawa może nie jest cudowna ale można się odkuć na nadgodzinach".

EDIT: a samochodówka/kolejnictwo to akurat bardzo specyficzna działka tego embedded, bywa np. (vide jeden mój kolega), że konfigurujesz tylko generatory kodu i przez cały rok napiszesz dwie linijki. No ale doświadczenie leci :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1