• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Embedded systems? C++? Tutoriale? Jak zacząć?

Object Storage Arubacloud
0 głosów
6,097 wizyt
pytanie zadane 19 kwietnia 2018 w C i C++ przez Artur Koniec Gaduła (3,670 p.)
Witam! Mam pytanie, jak zacząć przygodę z programowaniem embedded systems w języku C++? Czy jest do nich jakiś dobry tutorial? Pisze się je w jakimś IDE, czy jest z nimi inaczej niż z normalnym C++?
1
komentarz 19 kwietnia 2018 przez Pac Plus Mądrala (5,560 p.)

Embedded systems to na polski - systemy osadzone. Co oznacza najczęściej osadzenie języka skryptowego w swojej applikacji lub maszynie. Takie języki są małe i dostarczają sprawny intefejs do manipulacji wewnętrznych funkcji/bibliotek platformy do kotórej zostały podpięte. Polecam ci zapoznać się z dialektami lisp'a które są w tym genialne (e.g. Gambit-C lub ECL) lub językiem LUA.

Nie do końca rozumiem twoje pytanie... "jak zacząć przygodę z programowaniem embedded systems w języku C++". Chcesz zacząć programować, taki system? Czy chesz nauczyć się go zaimplementować? Miej na uwadze, że takie rozwiązanie przydaje się tylko przy większych systemach, typu, silniki do gier, robotyka etc. Muszą też być dobrze dobrane w zależności od technologi i celu.

3
komentarz 19 kwietnia 2018 przez mokrowski Mędrzec (155,460 p.)
edycja 19 kwietnia 2018 przez mokrowski

@Pac Plus, litości ... google nie boli... https://pl.wikipedia.org/wiki/System_wbudowany

Mijasz się z prawdą.

2 odpowiedzi

+1 głos
odpowiedź 19 kwietnia 2018 przez GoRo3 Obywatel (1,640 p.)
wybrane 25 kwietnia 2018 przez Artur Koniec
 
Najlepsza

Cześć 

Ja uczę się na podyplomówce w Szczecinie (ZUT) właśnie C/C++ na Embedded systems. Pytanie co dokładnie przez to rozumiesz bo embedded masz już od prostego mikroprocesora AVR gdzie piszesz program działający głównie na przerwaniach (bez konkretnego OS), poprzez mikrokontrolery na których możesz zainstalować już np. Free RTOS, aż po płytki takie jak np Raspberry PI czy intel Edison gdzie masz pełnoprawnego Linux'a. Każde podejście ma swoją charakterystykę i trzeba sobie dobrać do potrzeb. 

Przede wszystkim radzę zacząć od C, bo ten język króluje na niskim poziomie gdzie ilość zasobów to np. 4KB. C++ też się przydaje ale nie przy AVR.   

Co do najmniejszych AVR to masz blog Mirka (link) oraz jego książki - od tego radzę zacząć z mikrokontrolerami bo wszystko jest jasno wyjaśnione. Możesz też zacząć od Arduino (bo to też w znakomitej większości AVR) i możesz programować w wysokopoziomowych bibliotekach Arduino lub po prostu w niskopoziomowym C działając na rejestrach. 

Też fajne możliwości daje kontroler ESP8266 lub ESP32 - możesz je programować zarówno a Arduino, własnym SDK producenta czyli C, oraz w takich wynalazkach jak Lua czy MicroPython. Znacznie mocniejsze od  AVR. 

Jeśli chodzi o Raspberry to tutaj kłania się jeszcze znajomość Linux'a, Basha, i C. 

Bardzo dobra strona do Embedded to: Link

Generalnie ja pisze w VS Code i kompiluje oraz wgrywam na sprzęt przez terminal. Gdybyś pisał na AVR to masz Eclipsa z dodatkami pod AVR. Tak jak wspomniałem. Napisz konkretniej co Ciebie interesuje bo musiałbym kilka stron napisać aby dokładnie opisać co i jak z każdym systemem. 

Pozdrawiam

Grzegotrz

0 głosów
odpowiedź 19 kwietnia 2018 przez mokrowski Mędrzec (155,460 p.)
Zastosowanie języka C++ na poważnie do małych (z modelem bare-metal programming https://www.techopedia.com/definition/3745/bare-metal-programming), oraz nieco większych systemów wbudowanych, zaczęło się w zasadzie od standardu C++11. Dodał semantykę przenoszenia co powoduje że można wykonać operację bezpieczniej i z mniejszym kosztem związanym z kopiowaniem. Stąd z miejsca stawiane jest wymaganie posługiwania się tym standardem lub nowszym (jeśli to ma być język C++ w projekcie a nie C). Oczywiście nie tylko to... ale to nie miejsce na elaborat... Możesz zerknąć tu.. https://www.youtube.com/watch?v=wLq-5lBc7x4 Jedno z wielu..

Z jakimi mitami ma się teraz do czynienia, możesz posłuchać tu: https://www.youtube.com/watch?v=D7Sd8A6_fYU&t=311s

Wracając do sedna.

Dzisiaj systemem wbudowanym jest smartfon. Ale... w zasadzie programując go masz te same zasady które obowiązują dla dużych systemów :) 8 rdzeni, 4GB ramu i przykryty GUI GNU/Linux (dla Androida). Tam biblioteka standardowa (bionic) jest zgodna z C++14.

Nieco więcej egzotyki jest w małych mikrokontrolerach. 32-bitowych Coretex i innych, 16-bitowych (stosunkowo mały udział w rynku nowych systemów dziś) no i jeszcze 8-bitowych (z dziadkiem 8051, PIC'ami i AVR'kami). Tu mała platforma narzuca intensywne wykorzystanie technik szablonowych, metaprogramowania i w zasadzie new/delete nie ma sensu lub ... jest zabronione. Tu masz przykład takiej biblioteki dla STM32 https://github.com/andysworkshop/stm32plus

Dużo lektury jest do C a specjaliści po prostu ... piszą oprogramowanie. Coś kiedyś popełniłem sam. Mam nadzieję że będzie mi wybaczona reklama https://microgeek.eu/viewforum.php?f=70 Specjalnie wyżywałem się na AVR bo wiem że na początku drogi to najtańsza platforma (także łatwa jeśli chodzi o naukę).

https://arobenko.gitbooks.io/bare_metal_cpp/content/

https://www.embedded.com/design/programming-languages-and-tools/4438660/Modern-C--in-embedded-systems---Part-1--Myth-and-Reality

https://www.amazon.com/Real-Time-Efficient-Object-Oriented-Microcontroller-Programming/dp/3662478099/ref=sr_1_1?s=books&ie=UTF8&qid=1524138600&sr=1-1&keywords=C%2B%2B+embedded

https://www.amazon.com/Practical-UML-Statecharts-Event-Driven-Programming/dp/0750687061/ref=sr_1_6?s=books&ie=UTF8&qid=1524138600&sr=1-6&keywords=C%2B%2B+embedded

Podobne pytania

0 głosów
0 odpowiedzi 591 wizyt
0 głosów
1 odpowiedź 277 wizyt
pytanie zadane 16 października 2016 w C i C++ przez Bachus Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 847 wizyt

92,547 zapytań

141,390 odpowiedzi

319,509 komentarzy

61,931 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...