background image

II.

Zagadnienia obowiązujące do części „Mikrokontrolery”:

1.

Definicja mikrokontrolera (w skrócie: mk), dwie najważniejsze cechy techniczne jego 
jednostki centralnej.

Mikrokontroler definicja:

układ cyfrowy z wyspecjalizowanym mikroprocesorem i niezbędnymi do jego samodzielnej pracy 
urządzeniami zawartymi w jednym układzie scalonym

zdolny do autonomicznej pracy (nie wymaga układów pomocniczych)

zaprojektowany do pracy w systemach kontrolno-pomiarowych i komunikacyjnych, stąd posiada 
rozbudowany system komunikacji z otoczeniem

pracuje w czasie rzeczywistym

Cechy jednostki centralnej:

szerokość szyny danych (8, 16, 32 bity)

częstotliwość sygnału taktującego. Jej wartość powinna być jak najmniejsza, ponieważ pobór mocy 
jest proporcjonalny do częstotliwości sygnału taktującego, ale jednocześnie na tyle duża, aby 
zapewnić minimalną wymaganą prędkość przetwarzania danych

2.

·  

Uszczegółowiona budowa mk oraz funkcje realizowane przez jego bloki.

j.c. realizuje program zawarty w 
pamięci programu (ROM, FLASH)

zmienne programu przechowywane są 
w pamięci danych RAM

j.c. jest taktowana zegarem, którego 
częstotliwość jest stabilizowana 
oscylatorem kwarcowym

mk jest wprowadzany w stan 
początkowy sygnałem RESET

układy peryferyjne umożliwiają oczyt 
sygnałów wejściowych cyfrowym i 
analogowych oraz generację sygnałów 
wyjściowych stosowanych do 
sterowania układami mse 

 

3.

·  

Cechy mk wyróżniające go spośród innych układów cyfrowych z wbudowanym 

mikroprocesorem.

zamknięcie magistrali danych i adresowej wewnątrz układu scalonego

stała struktura pamięci RAM/ROM

stałość programu sterującego

dostęp do rejestrów procesora i układów we/wy poprzez mechanizm adresowania pamięci RAM

rejestrowa struktura j.c.

Procesory boolowskie wykonujące operacje na pojedynczych bitach w pamięci, rejestrach i układach 
we/wy

bogaty zestaw urządzeń we/wy

rozbudowane i szybkie układy przerwań we/wy

różnorodne tryby i środki redukcji mocy pobieranej

rozbudowane mechanizmy kontroli i detekcji nieprawidłowych stanów mk

zawarcie w jednej strukturze układów cyfrowych i analogowych

background image

4.

·  

Pełnione funkcje i typy pamięci zaimplementowanych w mk.

Podział ze względu na pełnione funkcje:

pamięć programu, zawierająca kod programu, tablice stałych, wektor resetu i przerwań

pamięć danych, przechowująca zmienne

stos sprzętowy (obsługa przerwań i wywołań funkcji – przechowuje bieżącą wartość licznika)

pamięć EEPROM – przechowuje zmienne i tablice stałych, które nie mogą ulec skasowaniu

Podział pamięci programu:

ROM – pamięć stała umożliwiająca tylko odczytywanie swojej zawartości, nieprogramowalna

EPROM – pamięć z możliwością kasowania dotychczasowej zawartości i wprowadzenia nowej 
zawartości

OTP – pamięci typu EPROM, możliwe jest tylko jednokrotne zaprogramowanie bez możliwości 
skasowania zawartości

FLASH – pamięć z mozliwością kasowania zawartości i programowania bezpośrednio w systemie 
mikroprocesorowym

5.

·  

Struktury mk ze względu na sposób korzystania z zewnętrznych pamięci.

1) mk udostępniające szyny systemowe poprzez wyprowadzenia portów:

- szyny systemowe są dostępne dla użytkownika jako alternatywne funkcje wyprowadzeń portów
Daje to możliwość podłączenia układów pamięci zewnetrznej, którą podłącza się do odpowiednich 
portów mk
- wadą jest rezygnacja z części portów

2) mk udostępniające bezpośrednio szyny systemowe

- szyny systemowe mk są dostępne dla użytkownika bezpośrednio jako wyprowadzenia układu 
scalonego
 bez funkcji alternatywnych przypisanych tym wyprowadzeniom
- możliwość przyłączenia pamięci zewnętrznych bez rezygnacji z niektórych portów
- takie mk nie posiadają wewnętrznych pamięci programu i danych
- możliwe jest korzystanie ze znacznie większych pamięci

3) mk zamknięte 

- szyny systemowe nie są dostępne dla użytkownika
- mk korzysta wyłącznie z pamięci wewnętrznej
- można podłączać do niego urządzenia peryferyjne przez porty
- stosowane w przypadku prostych mk 8-bitowych

6.

·  

Zalety zamknięcia magistrali wewnątrz mk.

zwiększenie niezawodności mikrosterownika

zmniejszenie poboru mocy

zwiększenie szybkości pracy

zmniejszenie ilości zacisków zewnętrznych i zwiększenie ich elastyczności

background image

7.

·  

Warstwowy model mk zamkniętego.

8.

·  

Sposoby generacji sygnału zegarowego w mk.

background image

9.

·  

Techniki redukcji pobieranej mocy w mk i tryby specjalne pracy mk.

Techniki redukcji:

Elastyczne sterowanie szybkością pracy w zależności od aktualnych potrzeb, gdyż zależność poboru 
mocy układów CMOS zależy od częstotliwości pracy. Służy do tego sieć dystrybucji sygnałów 
zegarowych w mk

Zastosowanie 2 oscylatorów. Jeden pracuje z maksymalną częstotliwością, drugi z niską. Przejście z 
wysokiej do niskiej częstotliwości powoduje spadek pobieranej mocy o 3 rzędy

Specjalne tryby pracy mk:

tryb pełnej aktywności (RUN)

tryb uśpienia (pracują wszystkie urządzenia peryferyjne, procesor nie) (WAIT lub SLEEP)

tryb, w którym nie pracuje procesor, a pracują niektóre urządzenia peryferyjne

tryb pełnego wstrzymania pracy mk (zamrożenia) (STOP lub HALT)

 

10.

·  

Sposoby wejścia i wyjścia z poszczególnych trybów specjalnych pracy mk.

Sposoby wejścia:

wykonując odpowiednią instrukcję

ustawiając odpowiednie bity

Sposoby wyjścia:

pojawienie się przerwania zewnętrznego lub przerwania od urządzeń peryferyjnych

reset zewnętrzny mk

reset wywołany przez niezablokowany, aktualnie pracujący układ watchdog

11.

·  

Przeznaczenia sygnału RESET z źródła sygnału RESET w mk.

Sygnał RESET służy do:

inicjalizacji pracy mk (wprowadzenie w stan początkowy). Inicjalizacja polega na ustawieniu 
licznika rozkazów na początek kodu programu.

Urządzenia we/wy i rejestry sterujące ustawiane są w tryb standardowy (spoczynku)

uniwersalne końcówki we/wy są ustawione jako wejścia o wysokiej impedancji, aby minimalnie 
wpływać na otoczenie mk

służy do wprowadzania mk w tryb programowania lub testowania

Źródła RESETU:

po włączeniu zasilania

wywołany zewnętrznym sygnałem RESET

reset programowy (wykonanie instrukcji RESET lub ustawienie odpowiedniego bita)

reset wywołany przez układ watchdog

reset wywołany przez układy nadzorujące poprawność pracy mk

12.

·  

Przeznaczenie i zasada pracy licznika watchdog w mk.

Przeznaczenie:

autonomiczne liczniki watchdog

monitory sygnału zegarowego

układy detekcji zaniku i powrotu napięć zasilających

układy detekcji przyczyn awarii systemowych

background image

13.

·  

Cechy systemu przerwań z programowym przeglądaniem urządzeń w mk.

jc nie zna źródła przerwania. Musi programowo przejrzeć flagi przerwań wszystkich urządzeń

flagi poszczególnych przerwań nie są kasowane sprzętowo przy wejściu w obsługę przerwania. 
Trzeba je kasować programowo w trakcie obsługi

najczęściej obsługa wszystkich przerwań jest pod jednym wspólnym adresem, zwanym wektorem 
przerwań

kolejność priorytetu przerwań zależy od przyjętej kolejności odpytywania flag przerwań 
poszczególnych urządzeń

zaleta: prostota struktury sprżetowej potrzebnej do realizacji systemu przerwań z programowym 
przeglądaniem urządzeń

wada: długi czas potrzebny na identyfikację źródła przerwania

 

14.

·  

Cechy systemu przerwań wektoryzowanych w mk.

na sygnał potwierdzenia przyjęcia przerwania przez jc urządzenie, które zgłosiło przerwanie, podaje 
na szynę danych kod identyfikacyjny, który jest traktowany jak numer elementu w wektorze 
przerwań. Wektor przerwań reprezentuje listę adresów obsługi przerwań

każde źródło przerwania ma przypisany adres obsługi przerwania w pamięci programu, zwany 
wektorem przerwania

każdemu przerwaniu przypisany jest priorytet (najpierw obsługiwany jest wyższy priorytet, 
przerwanie o wyższym priorytecie może przerwać obsługę przerwania o niższym, istnieje możliwość 
zmiany kolejności priorytetów)

wejście w obsługę danego przerwania zeruje sprzetowo jego flagę przerwania

15.

·  

Budowa i zasada działania linii portów równoległych.

czytanie danych (pobieranie) podawanych z zewnątrz na wyprowadzenia 
portu przez port polega na doprowadzeniu chwilowych stanów napięć na 
tych wyprowadzeniach do wewnętrznej szyny danych układu. Jest to 
realizowane przez uaktywnienie trójstanowego bufora sygnałem „czytanie”
wpisywanie (wprowadzanie) danej do portu powoduje, że chwilowy stan 
wewnętrznej szyny danych zostaje zapamiętany w elementach 
zapamietujących poszczególnych linii i wystawiany na wyprowadzenia 
portu. Stan wyprowadzeń portu pozostaje niezmienny, dopóki nie nastąpi 
kolejna operacja wpisania do portu.

background image

16.

·  

Właściwości układów peryferyjnych mk.

są programowalne – zadania przekazywane są im do wykonania odpowiednimi rozkazami, przez 
ustawienie odpowiednich bitów w rejestrach sterujących, przez wpisanie danych do rejestrów 
danych

duży stopień autonomii w stosunku do procesora rdzeniowego. Zadania wykonywane są 
samodzielnie, bez zaangażowania czasu procesora

układy we/wy programowane są za pośrednictwem magistrali wewnętrznej. Układom tym 
przypisane są rejestry robocze, sterujące i statusu

o zakończeniu wykonywania zadań procesor informowany jest ustawieniem odpowiedniego bitu w 
rejestrze stanu urządzenia lub wysłaniem sygnału żądania przerwania o ile jest ono odblokowane

 

17.

·  

Schematyczna budowa układu czasowego w mk oraz jego zasada pracy w dwóch 

podstawowych konfiguracjach.

jako właściwe układy czasowe – taktowane 
wewnętrznym sygnałem zegarowym 
przeznaczonym do taktowania jc. Timery 
wykorzystywane są w programie 
użytkownika jako wzorce czasu.

Jako liczniki –  taktowane zewnętrznymi 
sygnałami doprowadzającymi poprzez linie 
wejściowe portów i wykorzystywane w 
programie użytkownika np. jako liczniki 
zmian poziomów sygnałów zewnętrznych

18.

·  

Schemat blokowy i zasada działania licznika w mk w konfiguracji rejestratora zdarzeń.

Przed uruchomieniem zliczania program zeruje 
licznik i określa zbocze sygnału zewnętrznego, 
które ma spowodować rejestrację zdarzenia. Po 
wystąpieniu tego zbocza zawartość licznika 
jest przepisywana do rejestru zatrzaskowego 
rejestratora zdarzeń. Układ może równocześnie 
wygenerować przerwanie informujące jc o 
zarejestrowaniu zdarzenia, jeśli wcześniej 
ustawiono zezwolenie przerwania. W tym 

układzie odczyt rejestru zatrzaskowego musi nastąpić przed wystąpieniem kolejnego zdarzenia, ponieważ 
pracujący przez cały czas licznik przy następnym sygnale zewnętrznym zmieni zawartość rejestru 
zatrzaskowego. 

19.

·  

Schemat blokowy i zasada działania licznika w mk w konfiguracji programowalnego 

generatora impulsów.

Jc wpisuje do rejestru komparatora liczbę określającą 
chwilę wygenerowania impulsu, po czym uruchamia 
licznik. Po upływie zaprogramowanej liczby cykli 
zegara, komparator wykrywa zrównanie ię zawartości 
licznika i rejestru. Gdy to wykryje generuje sygnał 
wyjściowy o zaprogramowanej wartości. Jednocześnie 
licznik może wysyłać do jc przerwanie, o ile zostało 
odblokowane.

background image

20.

·  

Schemat blokowy i zasada działania licznika w mk w konfiguracji generatora PWM.

Program zeruje licznik, po czym go uruchamia. Jeśli 
zawartość licznika osiągnie zaprogramowaną liczbę 
NT określającą okres impulsów, komparator ustawia 
przerzutnik wyjściowy. Sygnał przepełnienia licznika 
określa zatem początek okresu generowanego 
przebiegu. W czasie zliczania kolejnych impulsów 
zegara zawartość licznika jest porównywana z 
zawartością rejestru szerokości impulsów, a po 
zrównaniu się z nią generowany jest sygnał „=”, 
który zeruje przerzutnik wyjściowy. Tym samym 
impuls wytwarzany przez PWM kończy się.

21.

·  

Budowa, zasada działania i typowe parametry wewnętrznego przetwornika A/C w 

mk.

Typowe parametry:

długość słowa (najczęściej 10 bitów)

czas konwersji (od kilku do 
kilkunastu us)

rozdzielczość (zwykle 1LSB ~5mV 
przy zakresie 5V dla długości słowa 
10 bitów)

błąd całkowity (około 2LSB)

22.

·  

Schemat blokowy, parametry i zasada działania komparatora analogowego w mk.

Zasada działania: 
W przypadku idealnym wyjście komparatora przyjmuje tylko dwie wartości napięcia: wysoką dla u(t)<U i 
niską dla u(t)>U. Przejście od jednego stanu do drugiego zachodzi dla u(t)=U, to jest dla punktu, w którym 
charakterystyka wyjściowa wykazuje nieciągłość.

Parametry:

próg komparacji – zewnętrzne napięcie podawane na jedno z wejść komparatora traktowane jako 
napięcie odniesienia

warunek komparacji – co się stanie, gdy napięcie wejściowe wzrośnie powyżej progu komparacji lub 
zmaleje poniżej jego. Spełnienie warunku komparacji powoduje ustawienie odpowiedniej flagi i 
generację przerwania, o ile nie zostało zablokowane

background image

23.

·  

Sterowanie oraz sposób odczytu i zapisu danych do wewnętrznej pamięci EEPROM.

24.

·  

Schematyczna budowa sterownika komunikacji szeregowej w mk oraz realizowane 

przez niego funkcje.

Funkcje:
- Funkcja nadajnika - wysyłanie zawartości określonego 
rejestru, tzw. bufora nadajnika, w postaci szeregowej 
poprzez określone wyprowadzenia portu. Oznacza to, że na 
wyjściu linii portu pojawia się ciąg binarny odpowiadający 
zawartości wysyłanego rejestru 
- W funkcji odbiornika sterownik komunikacji szeregowej 
potrafi przetworzyć ciąg binarny doprowadzony do wejścia 
określonej linii portu na zawartość rejestru, zwanego 
buforem odbiornika. Bufory nadajnika i odbiornika są 
dostępne z poziomu programu użytkownika.

25.

·  

Format danych dla standardu UART, budowa kontrolera interfejsu UART oraz 

ogólna jego obsługa.

- Należy najpierw ustalić prędkość transmisji wpisując 
odpowiednia wartość do rej. Generatora prędkości transmisji.
- Wybrać 8 lub 9 bitowy format danych w rej. 
konfiguracyjnym.
- Odblokować przerwania od nadajnika i od odbiornika.
- Włączyć nadajnik i odbiornik.
- Jeśli chcemy wysłać daną, to w celu uruchomienia transmisji 
wprowadzamy ją do rejestru danych interfejsu UART. Gdy 
dana ma być 9 bitowa, to przed tą operacją należy ustawić 9 
bit danej znajdujący się w rej. Konfiguracyjnym. Przed 
wysłaniem należy sprawdzić, czy poprzednia operacja 
wysyłania danej przez UART została zakończona.
 - Gdy interfejs odebrał daną, ustawiona jest flaga zakończony 
odbior danej i generowane jest przerwanie. Odebrana dana 
znajduje się w rejestrze danych.

background image

26.

·  

Sposób łączenia za pomocą interfejsu SPI układów typu master i slave.

27.

·  

Procedury wymiany danych za pomocą interfejsu SPI dla trybu master i trybu slave.

Tryb master:

najpierw należy odpowiednio skonfigurować interfejs SPI mk: tryb master, poprawnie 
skonfigurowane piny interfejsu (pin SCK ma być wyjściem), ustawić częstotliwość sygnału 
zegarowego

urządzenie peryferyjne musi być uaktywnione – najczęściej sluży do tego dodatkowa linia mk 
podłączona do wejścia CS urządzenia peryferyjnego

aby rozpocząć transmisję wpisuje się daną do rejestru przesuwnego

po czym czeka się na zakończenie transmisji, testując flagę informującą o zakończeniu transmisji lub 
czeka się na przerwanie od układu SPI, o ile jest odblokowane

na zakończenie z rejestru przesuwnego można odczytać daną odebraną

Tryb slave:

najpierw należy odpowiednio skonfigurować interfejs SPI mk: tryb slave poprawnie skonfigurowane 
piny interfejsu (pin SCK ma być wejściem)

następnie wpisuje się daną, którą chcemy wysłać do rejestru przesuwnego

jeśli jest to wymagane, ustawia się odpowiedni bit w rejestrze sterującym SPI włączający interfejs

urządzenie peryferyjne musi być aktywne i pracować w trybie master

po czym czeka się na zakończenie transmisji, tktóre wywołuje przerwanie, o ile jest odblokowane

na zakończenie z rejestru przesuwnego można odczytać daną odebraną

28.

·  

Przebiegi czasowe interfejsu SPI.

background image

29.

·  

Budowa kontrolera interfejsu SPI w mk i znaczenie linii interfejsu SPI w mk.

30.

·  

Schemat ogólny, zasada działania (funkcje poszczególnych bloków) układu 

peryferyjnego z interfejsem SPI.

Blok interfejsu SPI – służy do 
komunikacji z układem (wysyłanie i odbiór 
danych, wysyłanie rozkazów i odbiór 
danych statusowych).
Blok warstwy aplikacji – realizuje zadania 
zgodne z przeznaczeniem układu.

Blok interfejsu SPI składa się z:
- rejestru szeregowego – w takt sygnału 
zegarowego wprowadzane są do niego 
szeregowo dane na linii wejścia danych 
SDI. Dane z układu szeregowo są 
wystawiane na linii wyjście danych SDO
- układ kontrolny – steruje interfejsem SPI 
za pośrednictwem linii CS oraz 
podłączonych do niego cyfrowych 

sygnałów sterujących, których występowanie zależy od zastosowania układu. Zarządza również 
komunikacją między rejestrem szeregowym a blokiem aplikacji.

31.

·  

Przebiegi czasowe sekwencji inicjalizacji, wysyłania i odbierania bitów dla standardu 

interfejsu 1- Wire.

background image

32.

·  

Zasada pracy interfejsu I

2

C i jego pełna sekwencja protokołu transmisji szeregowej.

background image

Standard I2C jest stosowany w urządzeniach powszechnego użytku, zwłaszcza audio-video, telekomunikacji 
i systemach elektroniki przemyslowej. Transmisja danych odbywa się:
- szeregowo w dwóch kierunkach;
- przy użyciu dwóch linii: SCL – impulsy zegarowe synchronizujące transmisję, SDA – dwukierunkowa linia 
danych
Układy współpracujące z magistralą I2C muszą być wyposażone w wyjścia z otwartym drenem dla linii SCL 
i SDA. Do jednego układu master można przyłączyć dowolną liczbę układów slave, jednak pod warunkiem, 
że pojemność połączeń nie przekroczy maksymalnej wartości równej 400pF. W transmisji interfejsem I2C 
uczestniczy układ nadrzędny (master) oraz jeden lub więcej układów podrzędnych (slave).

33.

·  

Właściwości interfejsu CAN oraz grupy układów obsługujących interfejs CAN.

Właściwości:

interfejs asynchroniczny, half-duplex

struktura otwarta, tzn. może być rozszerzany o nowe węzły. Minimalna konfiguracja składa się z 
dwóch węzłów. Liczba węzłów w trakcie pracy szyny może się zmieniać bez wpływu na działanie 
szyny.

Składa się z jednej linii transmisyjnej

konfiguracja liniowa, czyli nie zawiera pętli

przy braku sterowania szyna znajduje się w stanie recesywnym R, któremu odpowiada stan „1”. Jeśli 
choć jeden węzeł wymusi stan dominujący D, stan może być zmieniony na „0”

dane transmitowane są metodą NRZ (non return to zero). Ponieważ interfejs składa się z jednej linii 
konieczny jest arbitraż szyny. Wykonuje się go metodą CSMA/CD z opcją NDA

adresy odbiorników (identyfikatory) są przesyłane jako integralna część przekazu.Standard CAN 
przewiduje 11 bitowe identyfikatory, czyli umożliwia współpracę 2048 węzłów.

Układy obsługujące CAN:

układy nadawczo-odbiorcze

kontrolery współpracujące z mikroprocesorami, mikrokontrolerami, procesorami DSP

mk z zaimplementowanym kontrolerem CAN

34.

·  

Połączenie między urządzeniami z interfejsem USB, znaczenie linii interfejsu USB i 

sposoby zasilania urządzeń z interfejsem USB.

Znaczenie linii:

Vbus – przewód zasilania +5V

D+ - przewód symetrycznej skrętki sygnałowej

D- - przewód symetrycznej skrętki sygnałowej

GND – przewód masy zasilania

Sposoby zasilania:

zasilanie pobierane wyłącznie z interfejsu USB (rys a)

urządzenia z własnym zasilaniem (rys b)

urządzenia z podwójnym zasilaniem (rys c)

background image

35.

·  

Pojęcie rodziny mk. Modyfikacje członków rodziny mk.

Rodzina mk – zbiór mk oparty na tym samym procesorze rdzeniowym, czyli układów o różnych 
parametrach, ale zachowujących między sobą kompatybilność programową, tzn. posiadają tą samą jc, czyli 
tą samą liste instrukcji

Modyfikacje członków danej rodziny mk:

na poziomie jc dotyczy ona zmian: rozmiaru pamięci programu, rozmiaru pamięci danych RAM, 
maksymalnej szybkosci pracy

na poziomie urządzeń peryferyjnych. Modyfikacje w tej warstwie stanowią podstawowy wyróżnik 
danego typu mk. Użytkownik otrzymuje do dyspozycji całą, niekiedy dość liczną rodzinę mk 
różniących się kombinacjami wbudowanych w układ scalony układami we/wy

na poziomie warstwy zacisków zewnętrznych i typów obudowy. Dotyczy głównie parametrów 
elektrycznych zacisków mk oraz stosowanego typu obudowy mk.

36.

·  

Definicja programowania zagnieżdżonego i cechy programów zagnieżdżonych.

Programowanie zagnieżdżone - tworzenie oprogramowania dla mse opartych na mk (i nie tylko) i 
ukierunkowanych na zadania pomiarowo-sterujące oraz komunikacyjne.

Cechy programów zagnieżdżonych:

program jednoznacznie ustala funkcję mse, tzn. użytkownik ma możliwość zmiany funkcji systemu 
zazwyczaj tylko w niewielkim zakresie przewidzianym przez program użytkowy, Ta cecha określana 
jest jako „zagnieżdżenie” programu.

Działanie programu musi spełniać określone wymagania czasowe dotyczące 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 działające na specyficznych  zasobach sprzętowych warunkowanych 
ukierunkowaniem budowy sprzętowej mse na konkretne zadanie

37.

·  

Struktura programu użytkownika na mk.

Po włączeniu zasilania w programie użytkownika musi się 
odbyć jednorazowa inicjalizacja, np. ustalenie trybu pracy 
urządzeń peryferyjnych.
Właściwy program użytkownika jest realizowany:

częściowo w niekonczącej się pętli głównej

a częściowo w obsługach przerwań

background image

38.

·  

Zalety programowania w języku asemblera dla elektronicznych systemów wbudowanych.

Możliwość pełnego panowania nad zasobami systemu. Programista ma nieograniczony dostęp do 
wszystkich bloków na poziomie rejestrów i pojedynczych bitow

żadna z funkcji systemu nie jest ukryta, w szczególności możliwe jest dowolne, nawet nietypowe 
oddzialywanie na obszar stosu i mechanizm przerwań

swobodne dysponowanie obszarem pamięci

efektywny  program wynikowy, szybszy i zajmujący na ogół mniej pamięci niż równoważny 
program zapisany w języku wysokiego poziomu

możliwość swobodnego wyboru formatu danych i precyzji obliczeń. Programista może samodzielnie 
definiować wielobajtowe struktury danych do obliczeń o praktycznie dowolnej dokładności

mozliwość dopasowania algorytmu do indywidualnych cech architektury mk oraz optymalizacji 
programu wynikowego.

39.

·  

Cykl projektowania i uruchamiania programu napisanego na mk.

napisanie kodu źródłowego

przetłumaczenie kodu źródłowego na kod maszynowy danego mk

uruchomienie programu w systemie docelowym (mse)

Faza pierwsza i druga wykonywana jest najczęściej przy zastosowaniu standardowego komputera 
osobistego, który określany jest mianem systemu rozwojowego.
Faza trzecia realizowana jest na rzeczywistym mse zawierającym mk. System ten jest określany mianem 
systemu docelowego.

40.

·  

Rozszerzenia języka C oraz zalecenia dotyczące pisania programów w języku C na mk.

Rozszerzenia:

wprowadzone są nowe typy zmiennych, np. zmienne bitowe

przy deklaracji zmiennych wprowadzane są mechanizmy umożliwiające alokację (umiejscowienie) 
zmiennej w określonym miejscu przestrzeni adresowej

wprowadzane są nowe słowa kluczowe języka C

Zalecenia:

fragmenty kodu źródłowego związane z obsługą specyficznych ukladów peryferyjnych umieszczać 
w wydzielonych modułach

typy zmiennych deklarować nie bezpośrednio przy deklaracji zmiennych, ale poprzez slowo 
kluczowe typdef

alokacji zmiennych nie dokonuje się bezpośrednio przy deklaracji zmiennych, lecz za pomocą 
dyrektyw preprocesora, głównie przez użycie tzw. modelu pamięci

alokacja funkcji służących do obsługi przerwań odbywa się w wydzielonym zbiorze, często 
napisanym w języku asemblera

41.

·  

Metody uruchamiania programów napisanych na mk.

metoda prób i błędów – polega na wielokrotnym programowaniu mk i za każdym razem obserwacji 
działania programu w mse i jego korekcji na podstawie tych obserwacji, aż do uzyskania 
prawidłowego działania mk

zastosowanie monitorów programowych i programów śledzących. Monitory są instalowane w 
pamięci programu mk i kontrolują wykonywanie właściwego programu użytkowego oraz 
komunikują się z systemem rozwojowym przez złącze szeregowe. Natomiast debuggery pracują w 
przyłączonych do systemu komputerach PC

zastosowanie emulatora sprzętowego mk – polega to na umieszczeniu, na czas uruchamiania 
programu, w podstawce na mk sondy połączonej ze specjalnym układem sprzętowym, który emuluje 

background image

działanie mk. Emulator  wiernie odtwarza wszystkie właściwości mk łącznie z jego wszystkimi 
układami peryferyjnymi oraz pamięcią

wykorzystanie specjalnych zasobów wewnętrznych mk– niektóre mk zwłaszcza 32 bitowe posiadają 
specjalne zasoby sprzętowe przeznaczone do wspierania procesu uruchamiania programu. Zasoby te 
oferują w przybliżeniu wszystkie te możliwości co emulator sprzętowy, między innymi ustawienie 
pułapek oraz pracę krokową. Zasoby te komunikują się przez dedykowane wyprowadzenia mk. Są 
one dostępne wyłącznie na etapie uruchamiania programu, zatem nie są wykorzystywane przez 
normalnmy program użytkowy.

42.

·  

Procedura szeregowego programowania pamięci programu mk w systemie docelowym.

wprowadzenie mk w tryb programowania. Odbywa się to poprzez podanie na odpowiednie 
koncówki określonej sekwencji sygnałów lub odpowiednich poziomów napięć

następnie przez dedykowany do programu interfejs szeregowy wprowadza się szeregowo 
odpowiednie rozkzy sterujące procesem programowania  pamięci. Część rozkazów dotyczy zapisu i 
odczytu danych do/ze specjalnych rejestrów konfiguracyjnych zawartych w pamięci FLASH 
odpowiedzialnych za konfigurację mk. Rejestry te są dostępne wyłącznie w trybie programowania 
mk. Pozostałe rozkazy są związane z zapisem i odczytem danych z pamięci FLASH oraz z jej 
kasowaniem.

Na zakończenie programowania następuje odpowiednia sekwencja sygnałów lub zdjęcie 
odpowiednich napięć powodujące wyjście z trybu programowania

43.

·  

Sposoby programowania szeregowego pamięci programu mk w systemie docelowym ze 

względu na używany interfejs szeregowy.

z wykorzystaniem interfejsu SPI

oparte na interfejsie JTAG

bazując na dedykowanym interfejsie szeregowym

opierając się na interfejsie UART i wbudowanym programie ładującym zawartym w dedykowanej 
pamięci ROM mk

bazując na interfejsie USB i wbudowanym w programie ladującym zawartym w pamięci mk