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

Systemy wbudowane

  • Upload
    alaina

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

Systemy wbudowane. Wykład nr 7 Programowanie mikrokontrolerów Piotr Bilski. Cechy charakterystyczne programowania mikrokontrolerów. Ściśle związane z architekturą sprzętu Wykorzystanie głównie asemblera, ostatnio również C, C++, Java itp. - PowerPoint PPT Presentation

Citation preview

Page 1: Systemy wbudowane

Systemy wbudowane

Wykład nr 7

Programowanie mikrokontrolerów

Piotr Bilski

Page 2: Systemy wbudowane

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

Page 3: Systemy wbudowane

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

Page 4: Systemy wbudowane

Cykl projektowanie w asemblerzeProjekt

algorytmu

Zapis źródłowy programu

Tłumaczenie

Łączenie i ładowanie

Uruchamianie

Edytor

Asembler

Program łącząco-ładujący

Program śledzący błąd

błąd

błąd

sieć działań

program źródłowy

program wynikowy

dwójkowy obraz pamięci

Page 5: Systemy wbudowane

Schemat projektowania programu

Edytor, asembler, linker (IDE)

mikrokontrolerKomputer PC

Uruchomiony program

Page 6: Systemy wbudowane

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

Page 7: Systemy wbudowane

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:

Page 8: Systemy wbudowane

Asemblery i makroasemblery

• Oba rodzaje programów mają identyczne przeznaczenie, ale makroasemblery są bardziej rozbudowane

• Zaawansowane operacje: asemblacja warunkowa i makrodefinicje

• Istotna jest podstawa zapisu danych:– Motorola preferuje zapis szesnastkowy– Intel preferuje zapis dziesiętny

Page 9: Systemy wbudowane

Kompilacja warunkowa

• Dotyczy fragmentów kodu, które mają być tłumaczone warunkowo oraz postaci raportu kompilacji

• Przykład:

$ IF (warunek)

(tekst kodu tłumaczonego warunkowo)

$ ELSEIF (inny warunek)

(tekst kodu tłumaczonego, gdy warunek nie jest spełniony, a inny warunek - tak)

$ ENDIF

Page 10: Systemy wbudowane

Makrodefinicje

• Jest to zestaw instrukcji wywoływanych poprzez nazwę etykiety:

DODAJ MACRO ARG1, ARG2MOV A,#ARG1ADD A,#ARG2ENDM

• Makrodefinicje powodują skopiowanie kodu, który zastępują w każde miejsce w kodzie

Page 11: Systemy wbudowane

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)

Page 12: Systemy wbudowane

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

Page 13: Systemy wbudowane

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

Page 14: Systemy wbudowane

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

Page 15: Systemy wbudowane

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

Page 16: Systemy wbudowane

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życia narzędzi monitorujących nie naruszających ograniczeń czasowych

• Pozostałe wymagania analogiczne, jak w przypadku tradycyjnych systemów

Page 17: Systemy wbudowane

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

Page 18: Systemy wbudowane

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)

Page 19: Systemy wbudowane

Hybrydowa organizacja systemu uruchomieniowego

debugger Monitor (ROM)

UART (RS232C)

Page 20: Systemy wbudowane

Symulatory

• Służą do śledzenia programu mikrokontrolera na komputerze ogólnego przeznaczenia

• Naśladują 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

Page 21: Systemy wbudowane

Przykład symulatora – ChipView-X51

• Platforma: Windows

• Zgodny z Turbo Debuggerem Borlanda

• Symulacja RTOS

• Zawiera High Performance Simulation Engine

Page 22: Systemy wbudowane

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

Page 23: Systemy wbudowane

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

Page 24: Systemy wbudowane

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

Page 25: Systemy wbudowane

Zaawansowane emulatory

• Obecność tylko pamięci RAM

• Dwie niezależne szyny adresowe

• Możliwość jednoczesnej pracy emulatora i komputera PC

• Ograniczona rola przerwań

Page 26: Systemy wbudowane

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

Page 27: Systemy wbudowane

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)

Page 28: Systemy wbudowane

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