Pytania z 12 z rozwiązaniami 2

  1. Dla mikrokontrolera AVR opisz budowę nagłówka programu. Wymień podstawowe biblioteki i ich.

#include <avr/io.h> / Służy do definiowania stałych specyficznych dla danego mikrokontrolera
#include <stdio.h> / Standardowa biblioteka wejścia/wyjscia
#include <delay.h> / Zawiera proste funkcje wstrzymujące działanie programu na pewien czas.

  1. Podaj w przykładach zastosowanie instrukcji wyboru switch.

int key_code = read_pressed_key_code(); 
switch (key_code){ 
case 0: break; // zareaguj jakos na przycisk 0 
case 1: break; // zareaguj jakos na przycisk 1 
case 2: break; //zareaguj jakos na przycisk 2 
default: // wcisniety inny lub żaden 

  1. Przerwania w AVR

MCUCR |= 1<<ISC01; //konfiguracja przerwania INT0

GICR |= 1<<INT0; //włączenie przerwania INT0

sei(); //globalne włączenie przerwań

while() //pusta pętla

{}

SIGNAL(SIG_INTERRUPT0) //początek funkcji obsługi przerwania

{}

  1. Opisz budowę rejestrowa ARM7.

Procesor ARM posiada łącznie 37 rejestrów (wszystkie są 32 bitowe):
PC (r15) – licznik programu (Program Counter)
CPSR – rejestr statusowy, obecny status (Current Program Status Register)
SPSR – rejestr statusowy, dostępne w różnych trybach uprzywilejowania (Saved Program Status Register)
LR (r14) – rejestr powrotu (Link Register), wykorzystywany podczas wywoływania funkcji (zapamiętuje PC – adres powrotu)
SP (r13) – zwykle używany jako wskaźnik stosu (Stack Pointer)
r0 - r12 – rejestry ogólnego przeznaczenia

Wyjątki obsługiwane przez rdzeń ARM7TDMI
• SWI – napotkanie specjalnej instrukcji SWI,
• Abort – próba wykonania instrukcji, przy pobieraniu której wystąpił błąd w dostępie do pamięci lub próba zapisu/odczytu niewyrównanych danych,
• Undefined – napotkanie instrukcji, której rdzeń nie jest w stanie zdekodować,
• nIRQ – przerwanie – pojawienie się na linii wejściowej nIRQ stanu niskiego,
• nFIQ – przerwanie o wyższym priorytecie od nIRQ – wykorzystywane tam gdzie konieczna jest szybka reakcja,

  1. Czekaj

void waitms(char x) 

unsigned char a, b; // zmnienne licznikowe 
for( ; x > 0; --x) // ta pętla zostanie wykonana x-razy 
for(b = 10; b > 0; --b) // a ta 10 razy 
for(a = 100; a > 0; --a) // natomiast ta 100 razy 
__asm("nop"); // dodatkowa instrukcja opóźniająca o 1 cykl 
}

  1. Rejestr CPSR zawiera znaczniki wyniku wykonanych operacji arytmetycznych i logicznych, flagi pozwalające na kontrolę przyjmowania przerwań, oraz bity ustawień trybu ochrony. Gdy procesor znajduje się w trybie uprzywilejo-

wanym dodatkowo widoczny jest rejestr SPSR (Saved Program Status Register), będący kopią rejestru CPSR, utworzoną tuż przed zmianą trybu ochrony na inny.

  1. AVR Budowa

- architektura RISC z listą rozkazów CISC
- 8 bitowy mikrokontroler z pamięcią flash oraz interfejscem JTAG
- 32 rejestry (wszystkie bezpośrednio połączone z ALU)
- rodzina AVR zawiera układy posiadające od 1K do 256K pamięci programu
- wewnętrzna pamięć SRAM i EEPROM 
- pierwszy na świecie mikrokontroler w pełni programowalny w systemie FLASH i EEPROM
- architektura Harvard (oddzielne szyny dla pamięci danych i pamięci programu)
- wykonywanie rozkazów w jednym takcie zegarowym (na jeden takt przypada jedna instrukcja)
- architektura zaprojektowana dla języków wysokiego poziomu, w szczególności dla języka C
- możliwość zmiany zawartości pamięci Flash "w locie"

12. Rdzeń ARMv4T (ARM7) - MENU

Cechy rdzeni procesorów ARM:
- 32-bitowy procesor zgodny z architekturą RISC
- Ujednolicone instrukcje a stałej długości
- Tylko proste tryby adresowania
- Zoptymalizowany pod względem niskiego poboru mocy
- Architektura LOAD/STORE – specjalne instrukcje do operacji na pamięci, pozostałe działają na rejsetrach
- Różne tryby pracy:
  * 32-bitowe instrukcje ARM
  * 16-bitowe instrukcje Thumb
  * Instrukcje języka Java - Jazelle DBX
- Możliwość przeładowania się pomiędzy trybami – instrukcja BX
- Praca w trybie Big lub Little Endian
- Szybka obsługa przerwań (FIR – Fast Interrupt Response), aplikacje czasu rzeczywistego
- Pamięć wirtualna
- Lista wydajnych instrukcji (zoptymalizowane na podstawie architektury RISC oraz CISC)
- Sprzętowe wsparcie dla języków wyższego poziomu

13. Architektura ARM7TDMI) - MENU

Architektura RISC (Reduced Instruction Set Computers)
• ograniczona lista wykonywanych rozkazów,
• ograniczona ilość trybów adresowania,
• operacje wykonywane na rejestrach (brak rozkazów operujących na pamięci – poza rozkazami LOAD i STORE)
• operacje na danych w pamięci wykonywane są według schematu Read-Modify-Write,
• proste kody rozkazów -> uproszczenie dekoderarozkazów,
• prosta budowa rdzenia -> mniejsza ilość elementów -> zmniejszony pobór prądu.
Rejestry mikrokontrolerów RISC
• zwiększona liczba rejestrów roboczych,
• wszystkie rejestry są 32-bitowe.
Architektura von Neumana
• brak podziału pamięci na pamięć danych i programu,
• możliwość wykonywania kodu programu zarówno z pamięci Flash jak i RAM (możliwość modyfikacji kodu w trakcie wykonywania programu).
• 32-bitowa magistrala danych – możliwość jedno-czesnego odczytu i zapisu danych, jednostkami 8, 16 lub 32-bitowymi (problem wyrównywania danych).

14. Tryby pracy - MENU

Tryby pracy rdzenia
- tryby zależne od rodzaju obsługiwanego wyjątku (np. po wystąpieniu wyjątku Abort rdzeń pracuje w trybie Abort),
- tryby pracy w czasie wykonywania programu głównego: Supervisor, System, User (różnią się poziomem praw dostępu do zasobów oraz obszarów pamięci mikrokontrolera),

Tryb pracy procesora, tryb ochrony - określa jakie zasoby procesora są dostępne, np. dostępne rejestry, obszary pamięci, urządzenia peryferyjne.

Procesory ARM mogą pracować w jednym z siedmiu trybów pracy:
User – tryb użytkownika, dostępne wszystkie rejestry, przeznaczony do wykonywania programów użytkownika, brak dostępu blokowania przerwań 
FIQ – tryb obsługujący przerwania i wyjątki o wysokich priorytetach (szybki) – wykorzystywany do obsługi czasowo krytycznych przerwań (operacje czasu rzeczywistego) 
IRQ – obsługa przerwań z niskim priorytetem (low/normal priority)
Supervisor – tryb pracy superużytkownika, dostęp do wszystkich zasobów procesora (dostępny po resecie lub przerwanie programowe), przerwania programowe (instrukcja SWI)
Abort – obsługa wyjątków związanych z pamięcią
Undef (undifined mode)– obsługa nieznanych/błędnych rozkazów
System – tryb pracy superużytkownika, wykonywany przez system operacyjny

W procesorach ARM zastosowano mechanizm bankowania rejestrów. Zmiana trybu pracy procesora powoduje podmienienie części rejestrów. Pozwala to na implementację oddzielnego stosu dla każdego trybu pracy, co znacząco podnosi stabilność systemu. Zmiana trybu pracy odbywa się automatycznie lub przez modyfikację rejestru CPSR (pole Mode).

Tryby pracy rdzenia (z punktu widzenia instrukcji):
tryb ARM – rozkazy zakodowane na 32 bitach:
  * dostępna pełna lista rozkazów,
  * rozkazy mogą przyjmować większą liczbę parametrów,
  * program złożony z instrukcji ARM działa szybciej,
  * rozmiar programu jest większy
tryb Thumb – rozkazy zakodowane na 16 bitach:
  * program wykonywany jest wolniej ze względu na konieczność konwersji każdej instrukcji do pełnej instrukcji ARM przed jej wykonaniem,
  * rozmiar programu jest mniejszy.

SPI – Serial Peripherial Interface -szeregowy interfejs urządzeń peryferyjnych.
- przesyłanie danych za pomocą oddzielnych linii transmisyjnych dla obu kierunków oraz linii zegarowej,
- urządzenie nadrzędne (Master) zarządza magistralą aktywując jedno z urządzeń podrzędnych (Slave),
- sprzętowa obsługa interfejsu poprzez wewnętrzny blok SPI (łatwość oprogramowania oraz oszczędność czasu procesora).
Komunikacja odbywa się synchronicznie za pomocą 3 linii:
- MOSI - (ang. Master Output Slave Input) - dane dla układu peryferyjnego
- MISO - (ang. Master Input Slave Output) - dane z układu peryferyjnego
- SCK - (ang. Serial ClocK) - sygnał zegarowy (taktujący)

Fazy wykonania rozkazu – praca potokowa
• każdy rozkaz wykonywany jest w trzech cyklach - pobranie, dekodowanie, wykonanie,
• przetwarzanie odbywa się z zastosowaniem potoku trójpoziomowego,
• efektywny czas wykonania rozkazu to jeden cykl.

Bit Znaczenie
N wynik ostatniego rozkazu jest ujemny
Z wynik ostatniego rozkazu jest równy 0
C w wyniku ostatniego rozkazu nastąpiło przeniesienie
na najstarszym bicie (liczby bez znaku)
V w wyniku ostatniego rozkazu nastąpiło przepełnienie 
(liczby ze znakiem)
I blokada przerwania IRQ
F blokada przerwania FIQ
T praca w trybie Thumb
M0...M4 bieżący tryb operacyjny

Wyszukiwarka

Podobne podstrony:
Pytania z 12 z rozwiązaniami
ptaki pytania 12
Pytania 12
pytania 12 2
pytania 12 2013
PKM Egzamin pytania 1 8 12 14 15
zadanie-z-zakresu-prawa-administracyjnego-na-egzamin-radcowski-31.08.2012-r , EGZAMIN RADCOWSKI - py
egzamin-radcowski--z-2011-r.---zadanie---prawo-karne, EGZAMIN RADCOWSKI - pytania, odpowiedzi, rozwi
12 Rozwiązania materiałowo konstrukcyjne i technologiczne budynków mieszkalnych, użyteczności publi
BMZ PYTANIA 12
Nasze koło II 12 rozwiązane (A J M R )
pytania do rozwiązania, OGRODNICTWO SGGW, ogrodnictwo zrównoważone
Pytania 12, 1
wydrukowane, Pytanie 12, CZAS WOLNY
Pytanie 12, Pytanie 14
zadanie-z-zakresu-prawa-gospodarczego-na-egzamin-radcowski-31.08.2012-r , EGZAMIN RADCOWSKI - pytani
Elektro Pytania zamknięte (rozwiązania)
Rozrodczy, krwionośny pytania 12

więcej podobnych podstron