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.