Początki z embedded

Odpowiedz Nowy wątek
2019-05-11 22:32
0

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

Pozostało 580 znaków

2019-05-11 23:09
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.

edytowany 2x, ostatnio: sugar_hiccup, 2019-05-11 23:20

Pozostało 580 znaków

2019-05-11 23:19
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

No to kup Arduino albo Nucleo. Weź sobie najlepiej jakiś projekt wymyśl. Najczęściej ludzie robią sobie stacje pogodową albo intelignenty dom, ale są też dużo ciekawsze pomysły, mój kolega robi np. inteligentną pasiekę. Kup to, co trzeba do realizacji tego projektu. Ludzie odradzają kupowanie tych zestawów, gdzie masz np. Arduino + masę jakiejś elektroniki, ale ja tam nie wiem, bo miałem to szczęście, że do embedded wpadłem z przypadku i w sumie wszystko, co chcę to mam za friko w pracy. - sugar_hiccup 2019-05-11 23:26
jak samochody to CAN trzeba by poznać - aoeuidhtn 2019-05-11 23:39

Pozostało 580 znaków

2019-05-11 23:36

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.

edytowany 3x, ostatnio: aoeuidhtn, 2019-05-12 00:05
Ale jeśli nie planuje mieszkać w Polsce to embedded pod względem kariery i finansów chyba jest dobrym pomysłem? - leto 2019-05-11 23:42
A gdzie będziesz mieszkać? W Niemczech i USA jest na pewno ok tylko że w Niemczech trzeba niemiecki znać. W UK chyba też nie jest źle. - aoeuidhtn 2019-05-11 23:44
Biorą pod uwagę USA, Kanadę, Australię, UK, Niemcy i ewentualnie Chiny. To gdzie właściwie jest ten C++ używany? - leto 2019-05-11 23:51
Myślę że C++ to jakiś middleware i teraz głównie gamedev. - aoeuidhtn 2019-05-11 23:52

Pozostało 580 znaków

2019-05-12 10:24
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

edytowany 4x, ostatnio: alagner, 2019-05-12 10:29

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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