Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wykład nr 7 Programowanie mikrokontrolerów Piotr Bilski

Podobne prezentacje


Prezentacja na temat: "Wykład nr 7 Programowanie mikrokontrolerów Piotr Bilski"— Zapis prezentacji:

1 Wykład nr 7 Programowanie mikrokontrolerów Piotr Bilski
Systemy wbudowane Wykład nr 7 Programowanie mikrokontrolerów Piotr Bilski

2 Cechy charakterystyczne programowania mikrokontrolerów
Ściśle związane z architekturą sprzętu Wykorzystanie głównie asemblera, ostatnio również C, C++, Java itp.. Praca w czasie rzeczywistym (Real-Time) wymusza wysoką efektywność programów Często stosowane są techniki mieszane – asembler + język wysokiego poziomu

3 Programowanie w asemblerze
Asembler jest preferowany, gdy: Program jest prosty Brak kompilatora języka wyższego poziomu Są duże wymagania wobec szybkości i zajętości pamięci programu Zalety asemblera: Pełna kontrola nad sprzętem (rejestry, stos, mechanizm przerwań) Swobodne dysponowanie obszarem pamięci Program jest szybszy i mniejszy Dopasowanie programu do wymagań sprzętu

4 Cykl projektowanie w asemblerze
Projekt algorytmu sieć działań Edytor Zapis źródłowy programu program źródłowy błąd Asembler Tłumaczenie program wynikowy błąd Program łącząco-ładujący Łączenie i ładowanie dwójkowy obraz pamięci Program śledzący Uruchamianie błąd

5 Schemat projektowania programu
mikrokontroler Komputer PC Uruchomiony program Edytor, asembler, linker (IDE)

6 Tworzenie programu a pliki
asm – plik źródłowy (tworzony w dowolnym edytorze) obj – plik z programem wynikowym lst – plik z raportem z wynikami kompilacji i wydrukiem (listingiem) programu hex – nieprzemieszczalny program dwójkowy utworzony w wyniku konsolidacji (łączenia plików obj i modułów bibliotecznych), twórca - Intel

7 Format pliku hex Plik zawiera rekordy o stałym formacie:
: l l a a a a t t [ d d .. d ] c c gdzie: : - idetyfikator początku nowego rekordu l l – długość pola danych (d) w bajtach a a a a – adres w pamięci, gdzie należy umieścić dane (d) t t – typ rekordu (00 – dane, 01 – koniec pliku) d d – bajty danych c c – suma kontrolna

8 Asemblery i makroasemblery
Oba rodzaje programów mają identyczne przeznaczenie, ale makroasemblery są bardziej rozbudowane Rozbudowane operacje: asemblacja warunkowa i makrodefinicje Istotna jest podstawa zapisu danych: Motorola preferuje zapis szesnastkowy Intel preferuje zapis dziesiętny

9 Kompilacja warunkowa Dotyczy fragmentów kodu, które mają być tłumaczone warunkowo oraz postaci raportu kompilacji Przykład: $ IF (warunek) (tekst kodu tłumczonego warunkowo) $ ELSEIF (inny warunek) (tekst kodu tłumaczonego, gdy warunek nie jest spełniony, a inny warunek - tak) $ ENDIF

10 Makrodefinicje Jest to zestaw instrukcji wywoływanych poprzez nazwę etykiety: DODAJ MACRO ARG1, ARG2 MOV A,#ARG1 ADD A,#ARG2 ENDM Makrodefinicje powodują skopiowanie kodu, który zastępują w każde miejsce w kodzie

11 Wady i zalety makrodefinicji
Makrodefinicje działają szybciej, niż procedury Zajmują więcej miejsca, niż procedury Poprawiają czytelność programu Mogą występować w postaci zagnieżdżonej Przykłady: CASM (Motorola), A51 (Intel)

12 Wykorzystanie programów asemblerowych
Testowanie układów elektronicznych Komunikacja z układami wykonawczymi przez port szeregowy UART Sterowanie układami cyfrowymi (wyświetlacze) i analogowymi Generacja sygnałów o zadanych parametrach

13 Programowanie w języku C
Kompilatory języka C dla mikrokontrolerów są produkowane przez wiele firm (Archimedes, Tasking, Franklin, itp.) Problemy ze kompatybilnością – częściowa zgodność z ANSI C Kompilatory są skrośne (cross-compilers), działają na komputerze PC, a produkują kod wynikowy dla mikrokontrolera

14 Cechy kompilatorów C dla mikrokontrolerów
Obecność typów danych zgodnych z ANSI C, w tym związanych z mikrokontrolerami (bit, sbit, sfr) Implementacja różnych modeli pamięci (tiny, small, compact, medium, large) Dostęp do rejestrów SFR i GPR Obecność wskaźników o długości zależnej od typu pamięci Optymalizacja kodu wynikowego

15 Cechy programowania w C mikrokontrolerów
Konieczna znajomość niskopoziomowych szczegółów budowy mikrokontrolera Program w C zawiera wiele instrukcji przypisania (pojedyncze bity i rejestry), niewiele w nich złożonych struktur danych Program w C może mieć podobną liczbę linii kodu, co program w asemblerze Większe programy w C są dużo tańsze od asemblerowych odpowiedników

16 Uruchamianie programów
Modułowa budowa mikrokontrolerów wymusza stosowanie specjalizowanych narzędzi do śledzenia stanu systemu (rejestry SFR) Praca w czasie rzeczywistym wymaga użycie narzędzi monitorujących nie naruszających ograniczeń czasowych Pozostałe wymagania analogiczne, jak w przypadku tradycyjnych systemów

17 Narzędzia wspomagające uruchamianie programów
Monitory programowe Programy śledzące (debuggers) Symulatory Analizatory stanów logicznych Emulatory sprzętowe (In-Circuit Emulators) Zintegrowane systemy projektowo-diagnostyczne (IDE) Analizatory efektywności pracy systemu Programatory wbudowanych i zewnętrznych pamięci typu PROM Asemblery, kompilatory, linkery

18 Monitory i programy śledzące
Najprostsze i najtańsze Monitory pracują w pamięci mikrokontrolera, debuggery w pamięci komputera Możliwe rozwiązanie hybrydowe (części programu są ulokowane w obu urządzeniach)

19 Hybrydowa organizacja systemu uruchomieniowego
UART (RS232C) debugger Monitor (ROM)

20 Symulatory Służy do śledzenia programu mikrokontrolera na komputerze ogólnego przeznaczenia Naśladuje zachowanie systemu z uwzględnieniem zawartości pamięci, rejestrów, przerwań itp. Brak możliwości testowania współpracy systemu i modułów zewnętrznych

21 Przykład symulatora – ChipView-X51
Platforma: Windows Zgodny z Turbo Debuggerem Borlanda Symulacja RTOS Zawiera High Performance Simulation Engine

22 Emulatory sprzętowe Najbardziej zaawansowane i najdroższe
Zawierają sondę o wyprowadzeniach identycznych z podstawką mikrokontrolera Umożliwiają pełne testowanie systemu Sterowanie z komputera PC

23 Schemat emulatora Edytor Asembler Kompilator C Linker
Programy sterujące Gniazdo mikroprocesora ROM (monitor) uP port RS-232 Sonda emulatora RAM NMI Testowany system Emulator Komputer

24 Cechy emulatorów Możliwość zamiany zasobów testowanego systemu z odpowiadającymi im zasobami emulatora (mapping) Możliwość testowania systemu w czasie rzeczywistym Praca w trybie ciągłym lub krokowym Podgląd mapy pamięci i rejestrów Wbudowane analizatory stanów logicznych

25 Zaawansowane emulatory
Obecność tylko pamięci RAM Dwie niezależne szyny adresowe Możliwość jednoczesnej pracy emulatora i komputera PC Ograniczona rola przerwań

26 Schemat emulatora zaawansowanego
Analizator stanu szyny Gniazdo mikroprocesora Edytor Asembler Kompilator C Linker Programy sterujące uP RAM Dane i adresy Sonda emulatora Niektóre polecenia NMI Testowany system Emulator Komputer

27 Problemy emulacji sprzętowej
Konieczność rejestracji stanu mikrokontrolera (ułatwienie – układy bond-out) Mapowanie zasobów (zadanie dla specjalizowanego kontrolera) Mapowanie pamięci ROM (układy wyposażone w pamięć RAM) Śledzenie pracy w czasie rzeczywistym (układy Background Mode Debugging)

28 Zintegrowane programy wspomagające uruchamianie
Pakiety programowe z kompletem modułów do projektowania i testowania: Asembler Debugger Kompilator C Linker Moduł zarządzania plikami projektów Symulator Monitor wydajności systemu Przykład: PathFinder


Pobierz ppt "Wykład nr 7 Programowanie mikrokontrolerów Piotr Bilski"

Podobne prezentacje


Reklamy Google