Wykład 11

Transkrypt

Wykład 11
Technika mikroprocesorowa
Struktura programu użytkownika w systemie mikroprocesorowym
start
inicjalizacja
niekończaca się
pętla
przerwania
zadania
krytyczne
czasowo
zadania niekrytyczne
czasowo
W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08
1
Technika mikroprocesorowa
Znaczenie problematyki programowania mikrokontrolerów
•
W ostatnich latach punkt ciężkości w zakresie techniki mikrokontrolerów przesunął się z zagadnień
sprzętowych na sprawy programowania.
•
Wprowadzenie mikrokontrolerów 32-bitowych i związany z tym skokowy wzrost oferowanej mocy
obliczeniowej oraz dostępnej wielkości pamięci otworzył nowe możliwości w zakresie tworzenia
oprogramowania.
•
Tworzenie złożonych programów dla mikrokontrolerów 32-bitowych poprzez zastosowanie stylu i
narzędzi programowania używanych dla mikrokontrolerów 8-bitowych, tj. pisanie całego programu
przez pojedynczego lub niewielu programistów oraz stosowanie języka asemblera okazało się
niemożliwe do zastosowania.
•
Naturalną możliwością było zatem sięgnięcie do metod i narzędzi programowania opracowanych już
wcześniej dla systemów obliczeniowych bazujących na mikroprocesorach 32-bitowych, głownie dla
komputerów osobistych. Takimi metodami i narzędziami programowymi były systemy operacyjne
umożliwiające jednoczesną pracę wielu programistów oraz stosowanie języków programowania
wyższego poziomu (głównie języka C).
•
Bezpośrednie zastosowanie tych narzędzi programowych dla programowania mikrokontrolerów nie jest
jednak możliwe. Systemy operacyjne stosowane w systemach obliczeniowych nie gwarantują
rozpoczęcia wykonywania określonego zadania programowego w narzuconym, nieprzekraczalnym
czasie. Stosowanie niektórych języków programowania wyższego poziomu np. języka C++ z punku
widzenia programisty jest wprawdzie bardzo wygodne, ale generowany w taki sposób kod programu
jest bardzo duży.
W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08
2
Technika mikroprocesorowa
Cechy programowania mikrokontrolerów
Tworzenie oprogramowania dla systemów mikroprocesorowych bazujących na mikrokontrolerach i
ukierunkowanych na zadania pomiarowo-sterujące oraz komunikacyjne różni się znacznie od tworzenia
oprogramowania dla systemów obliczeniowych. Ten typ tworzenia oprogramowania określa się w
literaturze mianem programowania zagnieżdżonego (embedded programming). Główne cechy
programów zagnieżdżonych to:
•
program jednoznacznie ustala funkcję systemu mikroprocesorowego, tzn. użytkownik ma możliwość
zmiany funkcji systemu zazwyczaj tylko w niewielkim zakresie przewidzianym przez program użytkowy.
Ta właśnie cecha określana jest jako „zagnieżdżenie” programu.
•
działanie programu musi spełniać określone wymagania czasowe dotyczące nie przekraczania
maksymalnego czasu reakcji na określone zdarzenia zewnętrzne oraz realizacji określonych zadań
programowych w nieprzekraczalnym czasie. Ta cecha określana jest jako praca programu „w czasie
rzeczywistym”.
•
są to programy operujące na specyficznych zasobach sprzętowych wynikających z ukierunkowania jego
budowy sprzętowej systemu mikroprocesorowego na konkretne zadanie
W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08
3
Technika mikroprocesorowa
Cykl tworzenia oprogramowania dla mikrokontrolerów
Cykl tworzenia oprogramowania dla mikrokontrolerów jest zbliżony do cyklu tworzenia oprogramowania
dla komputerów osobistych. Cykl ten obejmuje trzy fazy:
•
•
•
napisanie kodu źródłowego programu
przetłumaczenie kodu źródłowego na kod maszynowy
uruchomienie programu w systemie docelowym
Cykl tworzenia oprogramowania dla mikrokontrolerów różni się jednak od cyklu programowania
komputerów osobistych w następującym punkcie:
•
w komputerach osobistych wszystkie fazy cyklu rozwoju oprogramowania wykonywane są w
jednym systemie. Komputer osobistym jest jednocześnie narzędziem, przy pomocy którego
następuje stworzenie oprogramowania jak i systemem, który wykonuje ten program
•
w przypadku mikrokontrolerów faza pierwsza i druga wykonywana jest najczęściej przy
zastosowaniu standardowego komputera osobistego. Komputer osobisty w tej funkcji określany
jest jako system rozwojowy (development system). Faza trzecia realizowana jest na rzeczywistym
systemie mikroprocesorowym zawierającym mikrokontroler. System ten określany jest jako system
docelowy (target system)
W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08
4
Technika mikroprocesorowa
Programy narzędziowe dla mikrokontrolerów
Tworzenie oprogramowania mikrokontrolerów wymaga od programisty dysponowania odpowiednimi programami.
Są to tzw. programy narzędziowe (software tools). Dla podkreślenia rozdzielenia systemów na których następuje
rozwój oprogramowania z systemami na których następuje wykonanie programu do nazw programów
narzędziowych dodaje się często przedrostek „skrośny” (np. cross compiler). Tabela pokazuje cykl tworzenia
oprogramowania dla mikrokontrolerów oraz wskazuje, jakie programy narzędziowe potrzebne są na
poszczególnych etapach.
Etap
Czynności wykonywane w ramach
etapu
Stosowane programy
narzędziowe
Format kodu
wyjściowego etapu
Napisanie kodu
źródłowego programu
Podział programu na poszczególne
modułu i napisanie kodu źródłowego
poszczególnych modułów w języku
asemblera lub wyższego poziomu
Edytor tekstowy
Kod ASCII
Przetłumaczenie kodu
źródłowego na kod
maszynowy
Przetłumaczenie kodów źródłowych
poszczególnych modułów
Asembler i kompilator
skrośny
Kod wynikowy
relokowalny
Łączenie kodów poszczególnych
modułów w kod programu
Linker
Kod wynikowy
absolutny
Uruchomienie
programu w systemie
docelowym
Przeniesienie kodu programu do pamięci
systemu docelowego
Programator pamięci
Kod maszynowy
Kontrola poprawności działania programu
i korekcja ewentualnych błędów
Specjalistyczny sprzęt i
oprogramowanie
--------------------
W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08
5
Technika mikroprocesorowa
Środowiska programowych dla mikrokontrolerów
•
Programy narzędziowe służące do tworzenia oprogramowania mikrokontrolerów łączone są w jeden
pakiet programów. Takie rozwiązanie było stosowane już wcześniej dla programowania komputerów
osobistych.
•
Idea takiego pakietu polega na umożliwieniu realizacji wszystkich etapów cyklu rozwoju
oprogramowania dla mikrokontrolerów w ramach jednego programu. Podobnie jak dla komputerów
osobistych środowisko takie określane jest skrótem IDE (Integrated Development Enviroment).
•
Dla podkreślenia ukierunkowania takiego środowiska na programowanie mikrokontrolerów czasami
określane jest ona także jako EDE (Embedded Development Enviroment). Różnice pomiędzy IDE dla
komputerów osobistych a dla mikrokontrolerów nie są duże. Sprowadzają się one do integracji w IDE
dla mikrokontrolerów specyficznych narzędzi do uruchamiania programów, np. symulatorów
programowych mikrokontrolerów.
Nazwa środowiska
System operacyjny środowiska
Programowane
mikrokontrolery
Producent
uVision
Windows XP
8051
Keil Software
EDE
Windows XP
80C166
Tasking
Tornado
Windows XP, Unix
MPC860
Wind River Systems
W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08
6