Systemy wbudowane - narzędzia i urządzenia peryferyjne

Kompilatory i asemblery

Kompilator

Kompilator to program komputerowy (lub zestaw programów), który przekształca kod źródłowy napisany w języku programowania (języku źródłowym) na inny język komputerowy (zwykle format binarny). Najczęstszym powodem konwersji jest utworzenie programu wykonywalnego. Nazwa „kompilator” jest używana głównie w przypadku programów, które tłumaczą kod źródłowy z języka programowania wysokiego poziomu na język niskiego poziomu (np. Język asemblera lub kod maszynowy).

Kompilator krzyżowy

Jeśli skompilowany program może działać na komputerze z innym procesorem lub systemem operacyjnym niż komputer, na którym kompilator skompilował program, wówczas ten kompilator jest znany jako kompilator krzyżowy.

Dekompilator

Program, który może przetłumaczyć program z języka niskiego poziomu na język wysokiego poziomu, nazywany jest dekompilatorem.

Konwerter języka

Program, który tłumaczy programy napisane w różnych językach wysokiego poziomu, jest zwykle nazywany tłumaczem języka, tłumaczem źródła na źródło lub konwerterem języka.

Kompilator prawdopodobnie wykona następujące operacje -

  • Preprocessing
  • Parsing
  • Analiza semantyczna (tłumaczenie sterowane składnią)
  • Generowanie kodu
  • Optymalizacja kodu

Monterzy

Asembler to program, który pobiera podstawowe instrukcje komputerowe (zwane językiem asemblera) i konwertuje je na wzór bitów, których procesor komputera może używać do wykonywania podstawowych operacji. Asembler tworzy kod obiektowy, tłumacząc mnemoniki instrukcji asemblera na kody operacyjne, tłumacząc nazwy symboliczne na lokalizacje w pamięci. Język asemblera używa mnemonika do reprezentowania każdej operacji maszyny niskiego poziomu (kodu operacji).

Narzędzia do debugowania w systemie wbudowanym

Debugowanie to metodyczny proces mający na celu znalezienie i zmniejszenie liczby błędów w programie komputerowym lub elemencie sprzętu elektronicznego, tak aby działał zgodnie z oczekiwaniami. Debugowanie jest trudne, gdy podsystemy są ściśle powiązane, ponieważ niewielka zmiana w jednym podsystemie może powodować błędy w innym. Narzędzia do debugowania używane w systemach wbudowanych różnią się znacznie pod względem czasu opracowywania i funkcji debugowania. Omówimy tutaj następujące narzędzia do debugowania -

  • Simulators
  • Zestawy startowe mikrokontrolerów
  • Emulator

Symulatory

Kod jest testowany pod kątem MCU / systemu, symulując go na komputerze głównym używanym do tworzenia kodu. Symulatory próbują modelować zachowanie całego mikrokontrolera w oprogramowaniu.

Funkcje symulatorów

Symulator spełnia następujące funkcje -

  • Definiuje rodzinę procesorów lub urządzeń przetwarzających oraz ich różne wersje dla systemu docelowego.

  • Monitoruje szczegółowe informacje o części kodu źródłowego z etykietami i symbolicznymi argumentami w miarę wykonywania każdego kroku.

  • Zapewnia stan pamięci RAM i symulowanych portów systemu docelowego dla każdego pojedynczego kroku wykonania.

  • Monitoruje odpowiedź systemu i określa przepustowość.

  • Zapewnia śledzenie wyjścia zawartości licznika programu w porównaniu z rejestrami procesora.

  • Zawiera szczegółowe znaczenie bieżącego polecenia.

  • Monitoruje szczegółowe informacje o poleceniach symulatora wprowadzanych z klawiatury lub wybieranych z menu.

  • Obsługuje warunki (do 8 lub 16 lub 32 warunków) i bezwarunkowe punkty przerwania.

  • Zapewnia punkty przerwania i ślad, które razem stanowią ważne narzędzie do testowania i debugowania.

  • Ułatwia synchronizację wewnętrznych urządzeń peryferyjnych i opóźnień.

Zestaw startowy mikrokontrolera

Zestaw startowy mikrokontrolera składa się z -

  • Płyta sprzętowa (płyta ewaluacyjna)
  • Programator w systemie
  • Niektóre narzędzia programowe, takie jak kompilator, asembler, konsolidator itp.
  • Czasami wersja ewaluacyjna kompilatora o ograniczonym rozmiarze IDE i kodu.

Dużą zaletą tych zestawów w stosunku do symulatorów jest to, że działają w czasie rzeczywistym, a tym samym umożliwiają łatwą weryfikację funkcjonalności wejścia / wyjścia. Zestawy startowe są jednak w zupełności wystarczające i najtańszą opcją do tworzenia prostych projektów mikrokontrolerów.

Emulatory

Emulator to zestaw sprzętowy lub program lub może to być oba, które emulują funkcje jednego systemu komputerowego (gościa) w innym systemie komputerowym (host), innym niż pierwszy, tak że emulowane zachowanie jest bardzo podobne do zachowania rzeczywistego systemu (gościa).

Emulacja odnosi się do zdolności programu komputerowego w urządzeniu elektronicznym do emulacji (imitowania) innego programu lub urządzenia. Emulacja skupia się na odtworzeniu oryginalnego środowiska komputerowego. Emulatory mają możliwość zachowania bliższego związku z autentycznością obiektu cyfrowego. Emulator pomaga użytkownikowi pracować na dowolnej aplikacji lub systemie operacyjnym na platformie w podobny sposób, jak oprogramowanie działa jak w oryginalnym środowisku.

Urządzenia peryferyjne w systemach wbudowanych

Systemy wbudowane komunikują się ze światem zewnętrznym za pośrednictwem swoich urządzeń peryferyjnych, takich jak śledzenie & min;

  • Szeregowe interfejsy komunikacyjne (SCI), takie jak RS-232, RS-422, RS-485 itp.
  • Synchroniczny interfejs komunikacji szeregowej, taki jak I2C, SPI, SSC i ESSI
  • Uniwersalna magistrala szeregowa (USB)
  • Karty multimedialne (karty SD, Compact Flash itp.)
  • Sieci takie jak Ethernet, LonWorks itp.
  • Magistrale polowe, takie jak CAN-Bus, LIN-Bus, PROFIBUS itp.
  • imers, takie jak PLL (s), Capture / Compare i Time Processing Units.
  • Dyskretne wejścia / wyjścia, czyli wejścia / wyjścia ogólnego przeznaczenia (GPIO)
  • Analogowo-cyfrowo / Cyfrowo-analogowo (ADC / DAC)
  • Debugowanie, takie jak porty JTAG, ISP, ICSP, BDM, BITP i DP9

Kryteria wyboru mikrokontrolera

Wybierając mikrokontroler, upewnij się, że spełnia on postawione zadanie i jest opłacalny. Musimy sprawdzić, czy mikrokontroler 8-bitowy, 16-bitowy lub 32-bitowy najlepiej poradzi sobie z obliczeniowymi potrzebami zadania. Dodatkowo przy wyborze mikrokontrolera należy mieć na uwadze następujące punkty -

  • Speed - Jaka jest najwyższa prędkość obsługiwana przez mikrokontroler?

  • Packaging- Czy jest to 40-pinowy DIP (pakiet podwójny w linii) czy QFP (pakiet poczwórny)? Jest to ważne z punktu widzenia przestrzeni, montażu i prototypowania produktu końcowego.

  • Power Consumption - To ważne kryterium dla produktów zasilanych bateryjnie.

  • Amount of RAM and ROM na chipie.

  • Count of I/O pins and Timers na chipie.

  • Cost per Unit - Ma to znaczenie ze względu na ostateczny koszt produktu, w którym ma być zastosowany mikrokontroler.

Ponadto upewnij się, że masz narzędzia, takie jak kompilatory, debugery i asemblery, dostępne z mikrokontrolerem. Przede wszystkim należy zakupić mikrokontroler z pewnego źródła.