2.10 Wymień tryby adresacji stosowane w rodzinie procesorów TMS320C55xx i podaj przykłady rozkazów stosujących je.
Adresacja |
Przykład |
Natychmiastowa (Immediate) |
MOV #10,AC1 |
Absolutna (Absolute) |
MOV AC1,*(y) |
Pośrednia (Indirect) |
MOV *AR1,AC1 |
Bezpośrednia (Direct) |
MOV @x, AC1 |
Kołowa (Circular) |
ADD AR0+,AC1 |
2.12 Wymień podstawowe sposoby modyfikacji zawartości rejestrów adresowych procesorów C55xx i podaj ich przykładowe przeznaczenie.
Opcja |
Składnia |
||
Bez modyfikacji |
*ARn |
||
Post-Inkrement / Post-Dekrement |
*ARn+ *ARn- |
||
Post-Indeksowana |
*(ARn+AR0) *(ARn-AR0) |
||
Post-Mod-Kołowa (circular) |
*(ARn+AR0%) *(ARn-AR0%) |
||
Post-z odwr. Bitów (Bit-Reversed or Reverse Carry Propagation) |
*(ARn+AR0B) *(ARn-AR0B) |
||
Pre-modyfikacja |
*ARn(AR0) |
||
Podobnie z CDP |
Ale nie względem AR0 a stałych (#K16) |
Przykładowe zastosowania:
inkrement/dekrement - dostęp do tablic, wektorów, sygnałów
kołowe - dostęp do tablic i wektorów ale ze sprzętową kontrolą przemieszczania się w buforze obsługa buforów współczynników i próbek dla filtrów, transformat i transferu danych
z odwróceniem bitów - dla szybkiej transformaty Fouriera (FFT) i innych transformat wykorzystujących własności symetrii funkcji sin/cos
2.39 Co to jest Overflow Mode Saturation Mode in D Unit i co zmienia w pracy procesora jego włączenie?
Overflow Mode jest trybem nadzoru przepełnienia zakresu. Włącza się go / wyłącza poprzez modyfikację bitu sterującego nasycaniem. W procesorach rodziny C55xx za uruchomienie takiego sposobu pracy odpowiada co do pozycji w rejestrach statusowych bit ST1_55.9 tym razem opatrzony oznaczeniem SATD.
2.40 Jak włącza się w procesorach rodziny C55xx DSP tryb ograniczenia wartości (Overflow Mode)?
Włączenie to można wykonać kilkoma sposobami.
Albo poprzez ustawienie indywidualnego bitu SATD (OVM w C54xx) posługując się rozkazem „ustaw pojedynczy bit nazwa_bitu”
Albo poprzez ustawianie całej zawartości rejestru statusowego przy użyciu rozkazów operacji logicznych z odpowiednio przygotowanymi maskami (z zerem lub jedynką na pozycji naszego kasowanego / ustawianego bitu
2.22 Dla procesora `C5515 podaj, co to jest, co może zawierać, gdzie znajduje się i do czego służy tablica wektorów przerwań?
Tablica wektorów przerwań jest to obszar w pamięci programu procesora, gdzie umieszczone są ośmiobajtowe wektory przerwań, będące początkami procedur obsługi przerwań odpowiadających danym lokacjom w tablicy. Domyślnie rozpoczyna się ona pod adresem 0xFFFF00 ale programista może wskazać procesorowi inne jej położenie w pamięci programu, odpowiednio przygotowując wcześniej tam jej zawartość i modyfikując zawartość rejestrów IVPD i IVPH przed programowym RESET. Rejestry te zawierają 16 najstarszych bitów adresu położenia początku tablicy wektorów przerwań (8 młodszych bitów musi być zerami). W ten sposób adresy tych możliwych tablic wyrażają się (pma)=IVPD*256d (dla adresacji bajtowej!)
Tablica ta służy wiązaniu odpowiednich przerwań procesora z obsługującymi je procedurami obsługi - czyli procedurami reakcji na fakt wystąpienia danego przerwania albo rozkazu INTR/TRAP.
2.58 Co to są sekcje programu w C'5515, jakie są ich ro-dzaje i do czego służą?
Sekcje to fragmenty programu, z których każda zawiera jednorodne obiekty; kod, stałe, zmienne lub układy we/wy. Wyznaczane są w programie za pośrednictwem dyrektyw oznaczających początek nowej sekcji. Sekcje wprowadzane są dla ułatwienia rozmieszczania segmentów programu w pamięciach procesora.
Sekcja inicjalizowana -(kod programu, predefiniowane stałe), czyli fragmenty programu, tablice o znanej na etapie programowania zawartości.
Sekcja nieinicjalizowana -(rezerwacja obszarów pamięci na zmienne lub stałe wprowadzane w trakcie działania programu), czyli obszary, dla których na etapie pisania programu nie znamy zawartości a jedynie ich typ i zamieszczamy dane tylko o potrzebnej na nie objętości
Sekcje mogą być opatrywane nazwami lub nie -mówimy wtedy o sekcja nazwanych lub nienazwanych