Wykład nr 7 Programowanie mikrokontrolerów Piotr Bilski

Slides:



Advertisements
Podobne prezentacje
Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
Advertisements

Architektura jednostki centralnej RD MBR MAR IRPC +1 WR jednostka sterująca ALU A F Adres Dane Rejestry: MAR – (Memory Address Register) rejestr adresowy.
JĘZYK VHDL Geneza: komputerowa symulacja układu cyfrowego, Departament Obrony USA opis skomplikowanego systemu w postaci schematu jest nieczytelny, szybkie.
PROGRAMOWANIE STRUKTURALNE
Informatyka Stosowana
Lista rozkazów Działanie mikroprocesora jest kontrolowane poprzez rozkazy (instrukcje). Dla każdego typu mikroprocesora istnieje specyficzny zbiór rozkazów,
Architektura szynowa systemu mikroprocesorowego szyna danych szyna sterująca szyna adresowa µP szyna danych szyna adresowa D7,..., D1, D0 A15,..., A1,
Wykład 9 Dedykowane procesory DSP oraz mikrokontrolery z jednostką DSP
Podstawowe składniki funkcjonalne procesora i ich rola.
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Systemy operacyjne.
Magistrala & mostki PN/PD
Schemat blokowy komputera
Systemy operacyjne Bibliografia:
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
Wstęp do interpretacji algorytmów
Wprowadzenie do programowania w języku Turbo Pascal
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Mikroprocesory i mikrokontrolery
Wykład 2 Cykl życia systemu informacyjnego
Procesory jednoukładowe
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Dekodery adresów.
MCS51 - wykład 6.
Instytut Tele- i Radiotechniczny WARSZAWA
Podstawy programowania. Język C i C++– podstawy Temat: 1
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Część 2.
Wykonał Piotr Jakubowski 1ET
Kompilator SDCC i Pakiet STRC52 Mgr inż. Aleksander Pruszkowski
WinPakSE/PE Zintegrowany System Ochrony Obiektów
Opracował : Przemysław Drzymała
Zasada działania komputera
Budowa systemu komputerowego
Autor: Justyna Radomska
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Topologie sieci lokalnych.
Etapy pracy biosu.
Mikroprocesory mgr inż. Sylwia Glińska.
InTouch.
Programowanie obiektowe – zastosowanie języka Java SE
Przerwanie ang. interrupt.
Maszyna wirtualna ang. virtual machine, VM.
Buforowanie D e f i n i c j a.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Architektura PC.
Elementy zestawu komputerowego
Etapy uruchamiania systemu Pliki konfiguracyjne
Systemy wbudowane Wykład nr 3: Komputerowe systemy pomiarowo-sterujące
Podstawy programowania
Asembler MCS51. Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie.
C++.
System plików.
Modelowanie współpracy farm wiatrowych z siecią elektroenergetyczną
Struktura wewnętrzna mikrokontrolera zamkniętego
Architektury procesorów rdzeniowych mikrokontrolerów.
Wprowadzenie do programowania w Pascalu mgr inż. Agata Pacek.
Podstawy programowania
Struktura systemu operacyjnego
Wstęp do interpretacji algorytmów
Dokumentacja programu komputerowego i etapy tworzenia programów.
PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania.
POLITECHNIKA POZNAŃSKA
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C
Schemat blokowy komputera
Mikrokontrolery System przerwań
Zapis prezentacji:

Wykład nr 7 Programowanie mikrokontrolerów Piotr Bilski 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.. Praca w czasie rzeczywistym (Real-Time) wymusza wysoką efektywność programów Często stosowane są techniki mieszane – asembler + język wysokiego poziomu

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

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

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)

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