TM 2008 termin I
Zad 1:
Arm znalazl zastosowanie w routzerze Linksy, którego oprogramowanie po odebraniu
pakietu interfejsu Ethernet wywołuje funkcje wrt54_eth0_packet_recv(), a po przetworzeniu
pakietu wrt54_eth0_packet_disp(),. Zakładając, że rejestr CPSR jest typu unsigned int
zaproponuj modyfikacje funkcji w języku C, tak aby:
nastąpiło zamaskowanie przerwania procesora, gdy liczba pakietów
oczekujących na przetworzenie jest większa niż 16
jeśli przerwania nie są zamaskowane a pakiet jest nieparzystym ustawić flagę
zera w CPSR
31 30 29 28 27 26 25 24 23 ,,, 8 7 6 5 4 3 2 1 0
N Z C V " " " " " " I F T M4 M3 M2 M1 M0
Flagi Reserved control mode
N negative or less than
Z zero flag
C carry or borrow extended
V overflow
I IRQ disable
F FIQ disable
T state bit
Mi mode
wrt54_eth0_packet_disp() wrt54_eth0_packet_recv()
{ {
} }
Zad 2:
Program w assemblerze: mul cx oznacza mnożenie rejestru ax i cx, wynik zapisywany w
dx : ax. Push ax oznacza przerzucenie wartości z ax na stos, pop ax pobranie wartości ax ze
stosu. Jako komentarz wypisać wartość rejestrów ax, bx, cx w każdej operacji
Jaki jest stan stosu po 8 operacjach; czy sposób pobrania wartości ze stosu jest prawidłowy?
Dlaczego?
Mov ax, 0x1AF5 ax= & bx= & cx= &
Stos
Mov bx, 8 ax= & bx= & cx= &
Xor cx, cx ax= & bx= & cx= &
Push bx ax= & bx= & cx= &
Push ax ax= & bx= & cx= &
Push cx ax= & bx= & cx= &
Add ax, 0xff ax= & bx= & cx= &
Or cx, 0x10 ax= & bx= & cx= &
Mul cx ax= & bx= & cx= &
Add cx, bx ax= & bx= & cx= &
Pop bx ax= & bx= & cx= &
Pop ax ax= & bx= & cx= &
Pop cx ax= & bx= & cx= &
And ax, 0 ax= & bx= & cx= &
Zad3:
Ramka dla rs232: baudrate 19200, data=8, parity= odd, 2 bity stopu. Ile bajtów można
przesłac w 1 sekunde? Narysuj ramkę dla data: 085H.
Wiadomo, że najbardziej znaczący bit rejestru statusu kontrolera interfejsu szeregowego
H8tiny określa gotowość do wysłania nowych danych oraz ze rejestr ten dostępny jest w
języku C jako zmienna unsigned char SSR, a rejestr danych nadajnika jako zmienna
unsigned char TDR.
Napisz program, który wyśle 8bajtów z tablicy unsigned char buf[] do PLC z dodatkowym
bajtem kontroli parzystości.. Zaproponuj własny i zapisz pseudokod wyznaczający sumę
kontrolną pozwalający na wykrywanie błędów podczas transmisji.
Zad 4:
AVR zawiera 2 liczniki 16bitowe pracujące w trybie capture (zliczanie impulsów). Zaproponuj
sposób podłączenia do liczników sygnału zegarowego o częstotliwości 5,242880 MHz, tak by
jeden z liczników generował przerwanie z częstotliwością 8Hz. Napisz kod procedury
przerwania:
ze sprawdzeniem klawiszy (wywołanie funkcji KeyCheck(void)) co125ms
odświeżającą wyświetlacz (wywołanie funkcji LCDupdate(void)) co 500ms
void timer1_ocr1a_irq(void)
T1 T1 clk
{
OC1A(output)
}
T3 T3 clk
void timer3_ocr3a_irq(void)
OC3A(output)
{
}
Podaj wartości rejestrów OCR (output compare register): ocr1a, ocr3a
Wyszukiwarka
Podobne podstrony:
termin 3 08terminpodstawowy2007 08termin 1 08termin 2 08TM termin 3tm termin 1 wersja by stru?6terminarz roku 07 08TI 99 08 19 B M pl(1)terminarz Importy rzymskie w Barbaricum 2015ei 05 08 s029Wyklad 2 PNOP 08 9 zaoczneEgzamin 08 zbior zadan i pytanpytania byrdy I terminwięcej podobnych podstron