Co to jest wbudowany program C i jego struktura dla początkujących

Wypróbuj Nasz Instrument Do Eliminowania Problemów





Wcześniej wiele aplikacji wbudowanych zostało opracowanych przy użyciu programowania na poziomie zestawu. Jednak nie zapewniały przenośności. Tę wadę przezwyciężyło pojawienie się różnych języków wysokiego poziomu, takich jak C, Pascal i COBOL. Jednak to język C uzyskał szeroką akceptację dla systemów wbudowanych i nadal to robi. Napisany kod w C jest bardziej niezawodny, skalowalny i przenośny, aw rzeczywistości znacznie łatwiejszy do zrozumienia. Programowanie w języku Embedded C jest duszą procesora działającego w każdym Wbudowany system spotykamy się w naszym codziennym życiu, na przykład telefony komórkowe, pralki i aparaty cyfrowe. Każdy procesor jest powiązany z oprogramowaniem wbudowanym. Pierwszą i najważniejszą rzeczą jest oprogramowanie wbudowane, które decyduje o funkcjonowaniu systemu wbudowanego. Najczęściej używany jest język Embedded C zaprogramować mikrokontroler .

Co to jest język C?

Język C został opracowany przez Dennisa Ritchiego w 1969 roku. Jest to zbiór jednej lub więcej funkcji, a każda funkcja to zbiór instrukcji wykonujących określone zadanie.
Język C jest językiem średniego poziomu, ponieważ obsługuje aplikacje wysokiego poziomu i aplikacje niskiego poziomu. Zanim przejdziemy do szczegółów programowania w języku embedded C, powinniśmy wiedzieć o organizacji pamięci RAM.




Główne cechy języka C obejmują następujące elementy.

  • Język C to oprogramowanie zaprojektowane z różnymi słowami kluczowymi, typami danych, zmiennymi, stałymi itp.
  • Osadzone C to ogólny termin określający język programowania napisany w C, który jest powiązany z określoną architekturą sprzętową.
  • Embedded C jest rozszerzeniem języka C z kilkoma dodatkowymi plikami nagłówkowymi. Te pliki nagłówkowe mogą się zmieniać w zależności od kontrolera.
  • Plik mikrokontroler 8051 #include jest używany.

Co to jest wbudowane programowanie w C.

W każdym projekcie opartym na systemie wbudowanym programowanie w języku Embedded C odgrywa kluczową rolę, aby mikrokontroler działał i wykonywał preferowane czynności. Obecnie zwykle używamy kilku urządzeń elektronicznych, takich jak telefony komórkowe, pralki, systemy bezpieczeństwa, lodówki, aparaty cyfrowe itp. Sterowanie tymi urządzeniami wbudowanymi można wykonać za pomocą wbudowanego programu C. Na przykład w aparacie cyfrowym, jeśli naciśniemy przycisk aparatu, aby zrobić zdjęcie, mikrokontroler wykona wymaganą funkcję, aby kliknąć obraz, a także go zapisać.



Wbudowane programowanie w C.

Wbudowane programowanie w C.

Programowanie w języku Embedded C składa się z zestawu funkcji, w których każda funkcja jest zbiorem instrukcji używanych do wykonywania określonych zadań. Oba osadzone języki C i C są takie same i zaimplementowane za pomocą niektórych podstawowych elementów, takich jak zmienna, zestaw znaków, słowa kluczowe, typy danych, deklaracje zmiennych, wyrażenia, instrukcje. Wszystkie te elementy odgrywają kluczową rolę podczas pisania programu embedded w C.

Projektanci systemów wbudowanych muszą znać architekturę sprzętową, aby pisać programy. Programy te odgrywają ważną rolę w monitorowaniu i sterowaniu urządzeniami zewnętrznymi. Obsługują również bezpośrednio i wykorzystują wewnętrzną architekturę mikrokontrolera, taką jak obsługa przerwań, timery, komunikacja szeregowa i inne dostępne funkcje.


Programowanie systemów wbudowanych

Jak omówiliśmy wcześniej, projektowanie systemu wbudowanego można wykonać przy użyciu sprzętu i oprogramowania. Na przykład w prostym systemie wbudowanym procesor jest głównym modułem, który działa jak serce systemu. Tutaj procesor to nic innego jak mikroprocesor, DSP, mikrokontroler, CPLD i FPGA. Wszystkie te procesory są programowalne, dzięki czemu definiuje pracę urządzenia.

Wbudowany program systemowy umożliwia sprzętowi odpowiednie sprawdzanie wejść i wyjść sterujących. W tej procedurze może być konieczne, że wbudowany program będzie musiał sterować wewnętrzną architekturą procesora bezpośrednio, jak zegary, obsługa przerwań, porty we / wy, interfejs komunikacji szeregowej itp.

Dlatego programowanie systemów wbudowanych jest bardzo ważne dla procesora. Istnieją różne języki programowania, które są dostępne dla systemów wbudowanych, takie jak C, C ++, asembler, JAVA, skrypt JAVA, Visual Basic itd. Tak więc ten język programowania odgrywa kluczową rolę podczas tworzenia systemu wbudowanego, ale wybór języka jest bardzo istotny.

Kroki do zbudowania programu Embedded w C.

Istnieją różne kroki związane z projektowaniem programu osadzonego w języku C, takie jak poniższe.

  • Komentarze
  • Dyrektywy procesora
  • Konfiguracja portu
  • Zmienne globalne
  • Podstawowa funkcja / główna funkcja
  • Deklaracja zmiennej
  • Logika programu

Komentarze

W językach programowania komentarze są bardzo istotne do opisania funkcji programu. Kod komentarzy nie jest wykonywalny, ale służy do dostarczania dokumentacji programu. Aby zrozumieć funkcję programu, będzie to prosta metoda zrozumienia funkcji programu. W osadzonym C komentarze są dostępne w dwóch typach: w jednym wierszu i w głównym wierszu.

W osadzonym języku programowania C możemy umieszczać komentarze w naszym kodzie, co pomaga czytelnikowi w łatwym zrozumieniu kodu.

C = a + b / * dodaj dwie zmienne, których wartość jest przechowywana w innej zmiennej C * /

Komentarz jednowierszowy

Ogólnie rzecz biorąc, w przypadku języków programowania jednowierszowe komentarze są bardzo przydatne do wyjaśnienia części programu. Komentarze zaczynają się od podwójnego ukośnika (//) i mogą znajdować się w dowolnym miejscu w języku programowania. Używając tego, całą linię można zignorować w programie.

Komentarz wielowierszowy

Komentarze wieloliniowe rozpoczynają się od pojedynczego ukośnika (/) i gwiazdki (/ *) w językach programowania, co wyjaśnia blok kodu. Tego typu komentarze mogą być rozmieszczane w dowolnym miejscu w języku programowania i służą głównie do ignorowania całego bloku kodu w programie.

Dyrektywy procesora

Wiersze zawarte w kodzie programu nazywane są dyrektywami preprocesora, po których można umieścić symbol krzyżyka (#). Te wiersze są dyrektywami preprocesora, ale nie są zaprogramowanymi instrukcjami.
Kod można zbadać przez preprocesor przed rozpoczęciem kompilacji kodu rzeczywistego i rozwiązać te dyrektywy przed wygenerowaniem kodu za pomocą zwykłych instrukcji. Dostępnych jest kilka specjalnych dyrektyw preprocesora, chociaż dwie dyrektywy są niezwykle pomocne w języku programowania

jak poniżej.

#zawierać
#zawierać
Sbit LED = P2 ^ 3
Główny()
{
LED = 0x0ff
Opóźnienie()
LED = 0x00
}
#definiować
#zawierać
# zdefiniować diodę LED P0
Główny()
{
LED = 0x0ff
Opóźnienie()
LED = 0x00
}

W powyższym programie dyrektywa #include jest zwykle używana do obejmowania standardowych bibliotek, takich jak study i. h służy do zezwalania na funkcje we / wy przy użyciu biblioteki „C”. Dyrektywa #define zwykle używana do opisu serii zmiennych i przydziela wartości, wykonując proces w ramach określonej instrukcji, takiej jak makra.

Konfiguracja portu

Mikrokontroler zawiera kilka portów, z których każdy ma inne piny. Te styki mogą służyć do sterowania urządzeniami interfejsowymi. Deklarację tych pinów można wykonać w programie za pomocą słów kluczowych. Słowa kluczowe w osadzonym programie c są standardowe, a także predefiniowane, takie jak bit, sbit, SFR, które są używane do określenia bitów i pojedynczego pin w programie.

Istnieją pewne słowa, które są zarezerwowane dla wykonywania określonych zadań. Te słowa są znane jako słowa kluczowe. Są standardowe i predefiniowane w Embedded C. Słowa kluczowe są zawsze pisane małymi literami. Te słowa kluczowe muszą być zdefiniowane przed napisaniem programu głównego. Do głównych funkcji słów kluczowych należą:

#zawierać
Sbit a = P 2 ^ 2
SFR 0x00 = PoRT0
Bit C
Główny()
{
…………… ..
…………… ..
}

sbit

Jest to jeden rodzaj danych, używany do uzyskania dostępu do pojedynczego bitu w rejestrze SFR.

Składnia tego typu danych jest następująca: nazwa zmiennej sbit = bit SFR

Przykład: sbit a = P2 ^ 1

Jeśli przypiszemy p2.1 jako zmienną „a”, wówczas możemy użyć „a” zamiast p2.1 w dowolnym miejscu programu, co zmniejszy złożoność programu.

Kawałek

Ten typ danych jest używany głównie do udostępniania pamięci adresowalnej bitowej pamięci o dostępie swobodnym, takiej jak 20h do 2fh.

Składnia tego typu danych to: nazwa zmiennej bitowej

Przykład: bit c

Jest to ustawienie serii bitów w małym obszarze danych, które jest używane głównie z pomocą programu do zapamiętania czegoś.

SFR

Ten rodzaj danych służy do uzyskiwania portów peryferyjnych rejestru SFR za pomocą dodatkowej nazwy. Tak więc deklaracje wszystkich rejestrów SFR można składać wielkimi literami.

Składnia tego typu danych jest następująca: nazwa zmiennej SFR = adres SFR dla rejestru SFR

Przykład: port SFR0 = 0 × 80

Jeśli przydzielimy 0 × 80 jak „port0”, wówczas możemy użyć 0 × 80 zamiast portu0 w dowolnym miejscu w języku programowania, aby zmniejszyć trudność programu.

Rejestr SFR

SFR to skrót od Special Function Register. W mikrokontrolerze 8051 zawiera pamięć RAM o pojemności 256 bajtów, która jest podzielona na dwa główne elementy: pierwszy element o rozmiarze 128 bajtów służy głównie do przechowywania danych, a drugi element o pojemności 128 bajtów jest wykorzystywany głównie do rejestrów SFR. Wszystkie urządzenia peryferyjne, takie jak zegary, liczniki i porty I / O są przechowywane w rejestrze SFR, a każdy element zawiera jeden adres.

Zmienne globalne

Gdy zmienna jest zadeklarowana przed funkcją klucza, nazywana jest zmienną globalną. Ta zmienna może być dozwolona w dowolnej funkcji w programie. Żywotność zmiennej globalnej zależy głównie od programowania, aż do jej końca.

#zawierać
Unsigned int a, c = 10
Główny()
{
……………
………… ..
}

Podstawowa funkcja / główna funkcja

Funkcja główna jest centralną częścią podczas wykonywania dowolnego programu i zaczyna się od funkcji głównej. Każdy program wykorzystuje po prostu jedną główną funkcję, ponieważ jeśli program zawiera powyżej jedną główną funkcję, następnie kompilator będzie zdezorientowany przy rozpoczęciu wykonywania programu.

#zawierać
Główny()
{
……………
………… ..
}

Deklaracja zmiennej

Nazwa taka jak zmienna jest używana do przechowywania wartości, ale ta zmienna powinna być najpierw zadeklarowana przed użyciem w programie. Deklaracja zmiennej podaje jej nazwę oraz typ danych. Tutaj typ danych to nic innego jak reprezentacja danych przechowywania. W programowaniu wbudowanym w C wykorzystuje cztery podstawowe typy danych, takie jak liczba całkowita, zmiennoprzecinkowa i znak do przechowywania danych w pamięci. Rozmiar typu danych, jak również zakres, można zdefiniować w zależności od kompilatora.

Typ danych odnosi się do rozbudowanego systemu do deklarowania zmiennych różnych typów, takich jak liczby całkowite, znaki, zmiennoprzecinkowe itp. Wbudowane oprogramowanie C wykorzystuje cztery typy danych, które są używane do przechowywania danych w pamięci.

Znak „char” służy do przechowywania dowolnego pojedynczego znaku „int” służy do przechowywania wartości całkowitej, a „float” do przechowywania dowolnej dokładnej wartości zmiennoprzecinkowej. Rozmiary i zakres różnych typów danych na komputerze 32-bitowym podano w poniższej tabeli. Rozmiar i zakres mogą się różnić na maszynach z różnymi rozmiarami słów.

  • Rozmiar typu danych char / signed char wynosi 1 bajt, a jego zakres wynosi od -128 do +128
  • Rozmiar typu danych bez znaku char wynosi 1 bajt, a jego zakres wynosi od 0 do 255
  • Rozmiar typu danych int / signed int to 2 bajty, a jego zakres wynosi od -32768 do 32767
  • Rozmiar typu danych bez znaku int wynosi 2 bajty, a jego zakres wynosi od 0 do 65535

Główny()
{
Unsigned int a, b, c
}

Strukturę wbudowanego programu w języku C przedstawiono poniżej.

  • komentarze
  • Dyrektywy preprocesora
  • zmienne globalne
  • główna funkcja

{

  • zmienne lokalne
  • sprawozdania
  • ………… ..
  • ………… ..

}

  • zabawa (1)

{

  • zmienne lokalne
  • sprawozdania
  • ………… ..
  • ………… ..

}

Logika programu

Logika programu to plan ścieżki, który pojawia się w teorii stojącej za i przewidywalnymi rezultatami działań programu. Wyjaśnia stwierdzenie inaczej teorię dotyczącą tego, dlaczego wbudowany program będzie działał i pokazuje rozpoznane skutki działań w inny sposób zasobów.

Główny
{
LED = 0x0f
opóźnienie (100)
LED = 0x00
opóźnienie (100)
}

Główne czynniki programu Embedded C.

Główne czynniki, które należy wziąć pod uwagę przy wyborze języka programowania do opracowania systemu wbudowanego, obejmują następujące elementy.

Rozmiar programu

Każdy język programowania zajmuje trochę pamięci, w której wbudowany procesor, taki jak mikrokontroler, zawiera znacznie mniejszą ilość pamięci o dostępie swobodnym.

Szybkość programu

Język programowania powinien być bardzo szybki, więc powinien działać jak najszybciej. Nie należy zmniejszać szybkości wbudowanego sprzętu ze względu na wolno działające oprogramowanie.

Ruchliwość

Dla różnych procesorów wbudowanych można wykonać kompilację podobnych programów.

  • Prosta implementacja
  • Prosta konserwacja
  • Czytelność

Różnice między programem w języku C a programem wbudowanym w C.

Różnica między wbudowanym programowaniem w C i C w rzeczywistości niewiele różni się od środowiska operacyjnego i niektórych rozszerzeń. Te języki programowania są standardami ISO i mają również w przybliżeniu podobną składnię, funkcje, typy danych itp. Główne różnice między programowaniem w C a programowaniem w języku embedded obejmują następujące.

Język C

Wbudowany język C.

Ogólnie rzecz biorąc, ten język jest używany do tworzenia aplikacji komputerowych

Wbudowany język C jest używany do tworzenia aplikacji opartych na mikrokontrolerach.
Język C nie jest rozszerzeniem żadnego języka programowania, ale językiem programowania ogólnego przeznaczeniaEmbedded C to rozszerzenie języka programowania C, które obejmuje różne funkcje, takie jak adresowanie wejść / wyjść, arytmetyka stałoprzecinkowa, adresowanie wielu pamięci itp.

Przetwarza natywny rozwój w przyrodziePrzetwarza rozwój krzyżowy w przyrodzie
Jest niezależny od architektury sprzętowejZależy to od architektury sprzętowej mikrokontrolera i innych urządzeń
Kompilatory języka C zależą od systemu operacyjnegoWbudowane kompilatory C są niezależne od systemu operacyjnego
W języku C do wykonania programu używane są standardowe kompilatoryW osadzonym języku C używane są określone kompilatory.
Popularne kompilatory używane w tym języku to GCC, Borland turbo C, Intel C ++ itpPopularne kompilatory używane w tym języku to Keil, BiPOM Electronics i green hill
Format języka C to dowolny formatJego format zależy głównie od rodzaju zastosowanego mikroprocesora.
Optymalizacja tego języka jest normalnaOptymalizacja tego języka to wysoki poziom
Bardzo łatwo jest go modyfikować i czytaćNie jest łatwo modyfikować i czytać
Naprawianie błędów jest łatweNaprawianie błędów w tym języku jest skomplikowane

Przykłady wbudowanych programów C.

Poniżej znajduje się kilka prostych programów Embedded C używanych do projekty oparte na mikrokontrolerach .

Przykład 1

Przykład 1

Przykład-2

Przykład-2

Przykład-3

Przykład-3

Przykład-4

Przykład-4

Zalety

Plik zalety wbudowanego programu cmin g obejmują następujące elementy.

  • Bardzo łatwo to zrozumieć.
  • Wykonuje podobne zadanie w sposób ciągły, więc nie ma potrzeby zmiany sprzętu, takiego jak dodatkowa pamięć, w przeciwnym razie miejsce do przechowywania.
  • Wykonuje po prostu jedno zadanie na raz
  • Koszt sprzętu używanego w wbudowanym c jest zazwyczaj bardzo niski.
  • Aplikacje osadzone są niezwykle przydatne w przemyśle.
  • Tworzenie aplikacji zajmuje mniej czasu.
  • Zmniejsza złożoność programu.
  • Łatwo to zweryfikować i zrozumieć.
  • Można go przenosić z jednego kontrolera na drugi.

Niedogodności

Plik wady wbudowanego programowania w C. obejmują następujące elementy.

  • W danym momencie wykonuje tylko jedno zadanie, ale nie może wykonać wielu zadań
  • Jeśli zmienimy program, konieczna będzie również zmiana sprzętu
  • Obsługuje tylko system sprzętowy.
  • Ma problem ze skalowalnością
  • Ma ograniczenia, takie jak ograniczona pamięć, w przeciwnym razie kompatybilność komputera.

Zastosowania programu Embedded C.

Plik zastosowania programowania wbudowanego w c obejmują następujące elementy.

  • Programowanie w języku Embedded C jest używane w przemyśle do różnych celów
  • Językiem programowania używanym w aplikacjach jest sprawdzanie prędkości na autostradzie, sterowanie sygnalizacją świetlną, sterowanie oświetleniem ulicznym, śledzenie pojazdu, sztuczna inteligencja, automatyka domowa i automatyczna kontrola intensywności.

Mamy nadzieję, że udało nam się zapewnić łatwy i przystępny sposób dla początkujących Programowanie w języku Embedded . Zrozumienie programowania w języku Embedded C jest najważniejszym warunkiem wstępnym do projektowania projektów osadzonych. Ponadto lepsze zrozumienie i właściwa wiedza na temat programowania w języku embedded C pomaga studentom w wyborze satysfakcjonującej kariery.

Zachęcamy i mile widziane pytania, sugestie i komentarze naszych czytelników. Dlatego możesz publikować swoje pytania i opinie na temat tego artykułu w sekcji komentarzy podanej poniżej. Skorzystaj z poniższego łącza dla Projekty bezlutowe