Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałFryderyk Popowski Został zmieniony 10 lat temu
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.