Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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

Podobne prezentacje


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

1 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 Zapis źródłowy programu Tłumaczenie Łączenie i ładowanie Uruchamianie Edytor Asembler Program łącząco-ładujący Program śledzący błąd sieć działań program źródłowy program wynikowy dwójkowy obraz pamięci

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

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 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 : l l a a a a t t [ d d.. d ] c c Plik zawiera rekordy o stałym formacie:

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: DODAJMACRO 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 debuggerMonitor (ROM) UART (RS232C)

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 uP port RAM ROM (monitor) Testowany system Gniazdo mikroprocesora Sonda emulatora RS-232 Emulator Edytor Asembler Kompilator C Linker Programy sterujące Komputer NMI

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 uP RAM Testowany system Gniazdo mikroprocesora Sonda emulatora Dane i adresy Emulator Edytor Asembler Kompilator C Linker Programy sterujące Komputer NMI Analizator stanu szyny Niektóre polecenia

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 "Systemy wbudowane Wykład nr 7 Programowanie mikrokontrolerów Piotr Bilski."

Podobne prezentacje


Reklamy Google