Pytanie:
Jakiego języka używają mikrokontrolery oprócz C?
user2635745
2013-09-08 01:25:29 UTC
view on stackexchange narkive permalink

Chcę zacząć tworzyć urządzenia i czytam o mikrokontrolerach i innych rzeczach w Internecie. Zastanawiam się, czy są inne języki do programowania mikrokontrolerów oprócz C.

Ogólnie rzecz biorąc, będziesz używać C lub Assembly do programowania MCU. Jednak mogą istnieć kompilatory dla innych języków, które mogą tworzyć pliki wykonywalne dla wybranego MCU. Na przykład niektóre narzędzia edukacyjne udostępniają kompilatory języka BASIC.
Jeśli dopiero zaczynasz, spójrz na Arduino, które jest bardzo prostą platformą do uruchamiania urządzeń ATMega. Bardzo przyjazny dla użytkownika.
Możesz spróbować PICAXE (używa niektórych urządzeń Microchip PIC). Programujesz go w języku BASIC - co jest łatwiejsze do zrozumienia niż C, kiedy dopiero zaczynasz.
Gustavo Litovsky, wiem, myślę, że zacznę od arduino, dzięki.
Jaka deska arduino jest najlepsza dla początkujących?
@user2635745 Każda tablica się nada, ale początkującym polecam coś takiego jak zestaw startowy: http://arduino.cc/en/Main/ArduinoStarterKit. Zawiera łatwe samouczki i wszystkie dodatkowe części (przyciski, diody LED, ...) potrzebne do zbudowania fajnych projektów.
Pięć odpowiedzi:
us2012
2013-09-08 01:33:50 UTC
view on stackexchange narkive permalink

Żetony w ogóle nie używają bezpośrednio C. Mają zestawy instrukcji, które różnią się znacznie w zależności od różnych architektur.

Jako bardzo niski poziom abstrakcji tych zestawów instrukcji, większość producentów dostarcza assembler, za pomocą którego można tłumaczyć programy napisane w odpowiednim języku asemblerowym (który jest z grubsza bardziej czytelną formą instrukcji maszynowych ) do postaci binarnej, którą możesz przesłać na swój chip.

Na następnym wyższym poziomie są języki takie jak C. C jest zdecydowanie najbardziej dominującym językiem programowania mikrokontrolerów na tym poziomie. W przypadku niektórych architektur znajdziesz również dziwny kompilator Pascal, BASIC lub może Fortran.

Teoretycznie jedyną rzeczą, której potrzebujesz, aby użyć danego języka na danej architekturze, jest odpowiedni kompilator (chociaż niektóre , podobnie jak Java, C # itp., zwykle zależą od środowisk wykonawczych, a te są zbyt wymagające zasobów dla większości uC). W praktyce nie ma zbyt wielu dostępnych kompilatorów.

Powiedziałbym, że podstawowy jest bardziej powszechny niż fortran, ale nie mam żadnych konkretnych dowodów na to przekonanie.
Pewnie masz rację. Wygląda na to, że istnieją odmiany BASICa dla większości architektur, odpowiednio zmodyfikuję moją odpowiedź.
Czy otrzymam instrukcje dotyczące mikrokontrolera?
Wszystkie mikrokontrolery są dostarczane z arkuszami danych i pewną formą łańcucha narzędzi, które są dostępne na stronie producenta. Jeśli jednak jesteś początkującym, ten materiał może być dla Ciebie przytłaczający. Poszukaj zestawu, który jest wyraźnie przeznaczony dla początkujących. Arduino to rozsądny wybór, istnieje wiele samouczków dla początkujących i forów społecznościowych.
tcrosley
2013-09-08 04:15:17 UTC
view on stackexchange narkive permalink

Jak powiedzieliśmy w us2012, µc w ogóle nie obsługuje języka C. Zamiast tego uruchamia język maszynowy, który jest binarną reprezentacją zestawu instrukcji µc, z polami na kod operacji (co robić) i albo specyfikatorami rejestru i / lub adresami (skąd dane są pobierane i / lub przechowywane). Asembler jest symboliczną reprezentacją tego binarnego języka maszynowego.

W przypadku języka C te instrukcje maszynowe są generowane przez kompilator C, który prawie zawsze działa na komputerze innym niż µc (wyjątkiem jest wbudowany Linux, który zawiera kompilator gcc, działający na µc z zasobami wystarczającymi do uruchomienia kompilatora).

Gdy kompilator jest uruchamiany na komputerze PC, nazywa się to kompilacją krzyżową. Każdy oddzielny plik źródłowy zawierający instrukcje języka C jest kompilowany osobno, a wynik każdego z nich jest łączony w jeden plik do pobrania przez program konsolidujący. Ten plik do pobrania zawiera instrukcje języka maszynowego wspomniane powyżej i można go uruchomić bezpośrednio na µc.

Jeśli chcesz uruchomić inny język na µc, potrzebujesz innego kompilatora dla tego języka. Jednak istnieje wiele języków, które nie są kompilowane do kodu maszynowego, ale zamiast tego są kompilowane do kodów bajtowych; nie mogą one być wykonywane bezpośrednio przez µc, ale zamiast tego muszą być wykonywane przez interpreter działający na µc (odmiana polega na kompilacji kodów bajtowych do języka maszynowego przy ich pierwszym wykonaniu przez interpreter).

Brian Drummond
2013-09-08 15:09:38 UTC
view on stackexchange narkive permalink

Innym językiem kandydującym do programowania mikrokontrolerów jest Ada. Oferuje bardzo dobre udogodnienia do programowania niskopoziomowego, a także lepsze wykrywanie pewnych typów błędów przed przejściem do etapu uruchamiania programu, co pomaga mi rozwijać się znacznie szybciej niż w C. Wynikowy plik wykonywalny może być tak samo mały jak C, nie jest tak zaskakujący, gdy zdasz sobie sprawę, że większość kompilatora Gnat Ada jest tym samym optymalizatorem i generatorem kodu, co najpopularniejszy kompilator C (gcc).

Kolejną korzyścią jest to, że kod może być znacznie więcej czytelne niż C; inny sposób na ułatwienie eliminowania problemów.

Poza najmniejszymi mikrokontrolerami oferuje również dobre możliwości obiektowe i wielozadaniowe; odpowiednik RTOS jest wbudowany w język.

Dwie wady:

Ada ma niezasłużenie kiepską reputację odziedziczoną po 30-letniej wersji, z którą obecnie raczej się nie spotkasz - ty może usłyszeć przeciwko temu dość emocjonalne reakcje. Ada-2005 to zupełnie inny język ...

I nie każdy mikrokontroler ma kompilator i łańcuch narzędzi Ada. Dwa popularne, które to robią, to Atmel AVR (dzięki czemu można programować swoje płyty Arduino w Adzie) i seria Texas Instruments MSP430. Dostępne są również wersje Gnat dla wielu odmian procesorów ARM, w tym dla dystrybucji Debian Raspberry Pi.

Każdy inny cel GCC może potencjalnie wspierać Adę, chociaż tworzenie GCC zwykle nie jest trywialnym projektem ...

http://playground.arduino.cc/Code/AVR-Ada - Nowy projekt na mojej liście rzeczy do zrobienia: Zaprogramuj przykład migania na ATtiny z Adą.
Zasadniczo, jeśli możesz zainstalować i uruchomić narzędzia, rzeczywisty projekt jest łatwy! Jeśli budujesz od zera, upewnij się, że masz AVR-Ada 1.2.x oparty na gcc4.7 lub nowszym. gcc4.5 miał błąd, który uniemożliwiał działanie najbardziej eleganckiego podejścia ...
@BrianDrummond, Rozglądałem się za konfiguracją z łańcuchem narzędzi Ada dla AVR, ale wszystkie te, które mogę znaleźć, są albo nieistniejącymi repozytoriami github, albo nie są już obsługiwane lub dostępne od dostawców.Czy znasz jakieś aktualne zestawy narzędzi kompilatora Ada dla mikrokontrolerów AVR?(najlepiej darmowe lub open-source)?
Macke
2013-09-08 11:08:44 UTC
view on stackexchange narkive permalink

Jak mówią inne odpowiedzi, większość uC ma łańcuchy narzędzi, które obsługują C i kilka innych podobnych języków, ponieważ większe języki, szczególnie te z funkcją czyszczenia pamięci, są bardzo wymagające zasobów.

Ale w duchu Prawo Atwooda: „Wszystko ostatecznie zostanie przeniesione do Javascript”, daję Ci Espruino, „Pierwszy na świecie mikrokontroler JavaScript dla początkujących lub ekspertów”.:

enter image description here

Zabawna uwaga: ten uC nie wykonuje natywnie języka Java. Jest to standardowy uC, który po prostu ma wstępnie załadowany interpreter języka Java do Flasha. UC wykonuje „kod maszynowy”, tak jak każdy inny uC.
To nie mniej odpowiedź niż te, które wspominają o tłumaczach języka Basic. Jeśli chodzi o samo urządzenie, jest to rodzaj projektu, który przetrwa lub zginie dzięki możliwościom stosu oprogramowania i wydaje się, że istnieje nieobsługiwana wersja, którą można spróbować uruchomić na płytach odkrywczych, które są już dostępne i tańsze niż propozycja na Kickstarterze.
@ChrisStratton Nie powiedziałem, że to „mniej odpowiedzi”, nie zagłosowałem. Nazwałem to „zabawną notatką”. Nie kłóć się. Ponadto, jeśli podczas odpowiadania podasz nazwę At-Username, osoba, której odpowiadasz, otrzyma powiadomienie. W przeciwnym razie Twoje komentarze mogą zostać łatwo przeoczone.
@David Kessner: Chodzi o „JavaScript”, a nie o „Javę”. Oba są całkiem różnymi językami.
ridecontrol53
2013-09-08 19:32:46 UTC
view on stackexchange narkive permalink

Jak jeden z innych użytkowników skomentował poniżej Twoje pytanie, Arduino jest bardzo popularne i wszechstronne pod względem projektów i zastosowań. Ma swój własny język, który jest bardzo podobny do C ... na przykład deklarowanie bibliotek, zmiennych i wykonywanie wywołań funkcji. Ma jednak swoje własne nieodłączne funkcje, dla których będziesz musiał nauczyć się składni.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...