Wątek przeniesiony 2018-11-07 15:06 z C/C++ przez Marooned.

Alternatywa dla C/C++ dla systemów wbudowanych

0

Czy istnieje takowa? Widziałem np. ogłoszenia embedded Java, ale trudno mi to sobie wyobrazić dla czegokolwiek bardziej zaawansowanego i/lub wymagającego wysokiej niezawodności w czasie rzeczywistym.

0

Słowo "embedded" jest z gumy.
Jaki wyobrażasz sobie wspólny mianownik dla architektur od 64 bajtów RAM do gigabjata.
Po drugie nie każde "embedded" to czas rzeczywisty.

0

dwa przykłady, które przychodzą mi do głowy:

  • chipy w kartach płatniczych
  • Android
0

Teoretycznie Python, na raspberry pi. Polecam profil eh_org na instagramie, dużo contentu z tym związanego.

0

Tak jak pisał @AnyKtokolwiek słowo Embedded jest mocno nadużywane. Dla tworzących ogłoszenia działa to tak, że jeśli piszesz cokolwiek mającego w przyszłości działać na systemach wbudowanych, lub jeśli na Twoim biurku leży jakaś płytka, a Ty tworzysz na nią aplikację z jakimś interfejsem graficznym to już jesteś programistą embedded. Dokładnie tak samo było do niedawna z IoT, gdy był on bardzo modny - wystarczyło, by soft wykorzystywał bluetooth i już jest to IoT.
Dziś tak samo jest z AI. Wystarczy, że gdzieś zastosowano jakiś nieco bardziej skomplikowany algorytm lub coś z obliczeń miękkich i już można przeczytać, że "nasze oprogramowanie wykorzystuje sztuczną inteligencję"...

0

Obecnie stosuje się język C w branży embedded. C++ i python też jest użwany ale w mniej krytycznych urządzeniach. Java i C# też mogą być stosowane ale to już do tworzenia gui.

0
lxs napisał(a):

Obecnie stosuje się język C w branży embedded. C++ i python też jest użwany ale w mniej krytycznych urządzeniach. Java i C# też mogą być stosowane ale to już do tworzenia gui.

Potrafisz to bardziej uzasadnić niż wiarą?

0
lxs napisał(a):

Obecnie stosuje się język C w branży embedded. C++ i python też jest użwany ale w mniej krytycznych urządzeniach. Java i C# też mogą być stosowane ale to już do tworzenia gui.

tu już widziałem prędzej projekty GUI oparte o java script niż o C#. Masz też tam naklepane gui w C/C++ tyle co to zależy od urządzeni, raz może być qt drugi raz coś typu touchGFX dla cortex m-x.

0
revcorey napisał(a):

tu już widziałem prędzej projekty GUI oparte o java script niż o C#. Masz też tam naklepane gui w C/C++ tyle co to zależy od urządzeni, raz może być qt drugi raz coś typu touchGFX dla cortex m-x.

Ja widziałem trochę projektów gdzie GUI było napisane w C#, warstwa niższa w C. System operacyjny to Windows Embedded,

0

Sporo tego jest. Tutaj masz np. Betamax (vs C VHS) tamtych czasów -> https://en.m.wikipedia.org/wiki/Ada_(programming_language)

0

W przyszłości prawdopodobnie Rust ma szansę być taką alternatywą. Inna sprawa, że programiści C/C++ chyba dość niechętnie podchodzą do zmiany języka.

0

Java - dekodery, tunery etc. (Są chipy co implementują jvm)
C# - soft na hand heldy i wszystko z Windows embeded
Bascom - mikrokloce
VHDL/verilog - dla fpga/cpld

0

Trudno odnieść pożytek w tym wątku, bez FUNDAMENTALNEGO rozróżnienia: bare-metal / komputery z systemem operacyjnym (a potem pytanie o czas rzeczywisty czy inne uwarunkowania). Rozmiar RAM (wystarczy wykładnik z rzędu wielkości: 100 1k, 10k, 100k ... 3GB), posiadania zalążka koncepji pliku, w ogóle posiadanie UI ...

BTW straciłem z oczu dostępne detalicznie uP z JVM, rzeczywiście takie były, teraz to tylko na rynku hurtowym?

0

Dlatego koło każdej technologii zakreśliłem obszar bo nie wyobrażam sobie klienta VOD w VHDL ;) Co do bare metal JVM - nie śledzę obecnie tego sektora. Nawet jak Oracle namodzilo z licencjami to i tak w wielu tunerach etc. Siedzi Linux i jvm jakiś.

0

Node.js

Niestety nie żartuję.

0

Jeżeli kodzisz na platformę, która potrafi odpalić jakiś rozbudowany system jak Linuks albo Windows, to możesz kodować w większości cywilizowanych języków i nie ma w tym nic złego, jeżeli działa to poprawnie i z akceptowalną szybkością. Wiem o działających w świecie kombinacjach C# (Mono) + Linux, jak też o wymysłach na bazie Node.js. Moja teoria spiskowa o popularyzacji takich rozwiązań, to wypadkowa wzrostu mocy obliczeniowej w szeroko pojętych embedach oraz zbyt mała ilość programistów C/C++. Wszyscy ruszyli na Jave, Pythona i inne tego typu wygodniejsze języki, a embedy gdzieś tam zostały w swojej niszy. Tak więc teraz wystarczy posadzić przed komputerem z Linuksem tego przysłowiowego studenta, który jako tako potrafi kodzić w C#, kazać mu na Mono napisać aplikację, która realizuje dane zadanie, a potem gotową aplikację dać jedynie na chwilę bardziej ogarniętej osobie, która włączy gotową aplikację w obraz systemu dla urządzenia.

Podczas tej prezentacji autor wspomina, iż właściwa aplikacja w DVR, na którym wykonywał reverse engineering jest właśnie napisana w C#

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