1
1
K
2
1
Procesory DSP – 2012
Materiały ilustracyjne do wykładu
cz – V-1
Przerwania i ich rola
(uzupełnienia dla c55xx)
Przygotowane z wykorzystaniem materiałów
udostępnionych przez firmę Texas Instruments
Dr inż. Krzysztof Kardach
(ver. 8.3 listopad 2012)
2
K
2
2
Wykaz wykorzystanych materiałów
Li Tan „Digital Signal Processing
„Digital Signal Processing
„Digital Signal Processing
„Digital Signal Processing – Fundamentals and Applications” ;
” ;
” ;
” ;
DeVry University Decatur, Georgia, Elsevier 2008
S.M Kuo, B.H.Lee „Real
„Real
„Real
„Real----Time Digital Signal Processing”
Time Digital Signal Processing”
Time Digital Signal Processing”
Time Digital Signal Processing” ––––
implementations, applications, and experiments with the TMS320C55x”;
John Wiley & Sons, 2006
CCS v5 WIKI -
http://processors.wiki.ti.com/index.php/Category:Code_Composer_Studio_
v5
Bruno Pillard „An Introduction To Digital Signal Processors”;
„An Introduction To Digital Signal Processors”;
„An Introduction To Digital Signal Processors”;
„An Introduction To Digital Signal Processors”; Uniwersytet
Sherbrooke
TMS320C
TMS320C
TMS320C
TMS320C5515
5515
5515
5515 DSP
DSP
DSP
DSP System Users Guide
System Users Guide
System Users Guide
System Users Guide [sprufx5d.pdf ]
TMS320C5
TMS320C5
TMS320C5
TMS320C55x Technical Overview
5x Technical Overview
5x Technical Overview
5x Technical Overview [spru393g.pdf]
TMS320C5
TMS320C5
TMS320C5
TMS320C55x CPU Reference Guide
5x CPU Reference Guide
5x CPU Reference Guide
5x CPU Reference Guide [spru371f.pdf]
TMS320C55x
TMS320C55x
TMS320C55x
TMS320C55x DSP v3.x CPU Reference Guide [swpu073e.pdf]
TMS320C5515 Fixed-Point Digital Signal Processor
[sprs645e.pdf]
TMS320C5
TMS320C5
TMS320C5
TMS320C55555x
x
x
x CPU
CPU
CPU
CPU Mnemonic Instruction Set
Mnemonic Instruction Set
Mnemonic Instruction Set
Mnemonic Instruction Set RG
RG
RG
RG [swpu067e.pdf]
TMS320C5
TMS320C5
TMS320C5
TMS320C55555x
x
x
x Assemby Language UG
Assemby Language UG
Assemby Language UG
Assemby Language UG [spru280i.pdf]
19 November 2012
Procesory sygnałowe 1 / V-1
2
3
K
2
3
Co chcemy rozpoznać *
Przerwania skąd i po co?
Podstawowe pojęcia
Sekwencja czynności
Angażowane zasoby
19 November 2012
Procesory sygnałowe 1 / V-1
Źródła i ich obsługa
Ważność przerwań - priorytety
Przygotowanie przerwania
Obsługa – kto za co odpowiada?
Utrudnienia w działaniu przerwań
Możliwości
4
K
2
4
Co to jest przerwanie?
Sygnał sterowany sprzętowo lub programowo, wzywający procesor
do zawieszenia aktualnie wykonywanego programu i wykonania
innego zadania, zwanego procedurą obsługi przerwania - Interrupt
Service Routine (ISR).
Mechanizm przerwań to sposób synchronizacji z programem
asynchronicznych względem programu zdarzeń
Sposoby zgłoszenia przerwania
Sprzętowe
Zewnętrznym sygnałem elektrycznym
Stanem/zdarzeniem wewnątrz procesora
Programowe
Ustawieniem bitu-flagi przerwania
Wykonaniem rozkazu przerwania programowego
19 November 2012
Procesory sygnałowe 1 / V-1
3
5
K
2
5
4 główne fazy obsługi przerwania
(cd)
1.
Otrzymanie zgłoszenia - sprzętowe lub programowe włączenie
sygnału potrzeby zawieszenia wykonywanego aktualnej sekwencji
rozkazów
2.
Potwierdzenie otrzymania zgłoszenia – Procesor musi
potwierdzić otrzymanie sygnału po sprawdzeniu warunków (np.
masek). Dla przerwań nie maskowalnych potwierdzenie jest
natychmiastowe.
3.
Przygotowanie uruchomienia procedury ISR. W ramach tego
przygotowania procesor
i.
Kończy aktualny rozkaz,
ii.
Usuwa z kolejki rozkazy, które nie zostały zdekodowane
iii.
Automatycznie zachowuje na stosie wybrane rejestry (PC,
CFCT – control-flow-context, itd. zależnie od konfiguracji)
iv.
Pobiera wektor z tabeli
v.
Pobrany wektor wskazuje adres procedury ISR
4.
Wykonanie procedury ISR – Procesor wykonuje przygotowaną
procedurę ISR (może zawierać uzupełniające elementy Contex-
Save/-Restore. ISR kończy się instrukcją „return-from-interrupt” z
odtworzeniem zawartości automatycznie zachowanych rejestrów
19 November 2012
Procesory sygnałowe 1 / V-1
6
K
2
6
19 November 2012
Procesory sygnałowe 1 / V-1
. . .
W tabeli;
Rejestry rejestrujące wystąpienie zdarzenia/sygnału – Flag Reg.
Rejestry zezwalające na obsługę zdarzenia / sygnału – Enable Reg.
Rejestry zgody na debugowanie – Debug Interrupt Enable
Rejestry wskaźników tablic z wektorami przerwań, stosu (niewidoczny tutaj)
Rejestry MMR w obsłudze przerwań
(cd)
4
7
K
2
7
Co chcemy rozpoznać *
Przerwania skąd i po co?
Źródła i ich obsługa
Zewnętrzne
Wewnętrzne
19 November 2012
Procesory sygnałowe 1 / V-1
Ważność przerwań - priorytety
Przygotowanie przerwania
Obsługa – kto za co odpowiada?
Utrudnienia w działaniu przerwań
Możliwości
8
K
2
8
Zewnętrzne źródła przerwań w ‘C5515
2 maskowalne przerwania
zewnętrzne (INT0-1)
2 niemaskowalne przerwania
zewnętrzne (NMI, RESET)
NMI wstrzymywane przez
repetycje rozkazu i HOLD
Sygnał potwierdzenia podjęcia
obsługi przerwania (IACK)
'C5515
RESET
INT0-1
NMI
IACK
Zalecenia
Uwaga na użycie NMI jako przerwania wysokiego priorytetu, bo stan INTM nie
jest zachowywany!!!. Zatem wracając z NMI do przerwanego wątku głównego
programu możemy zastać inne warunki wykonywania przerwań!
Używaj NMI tylko wtedy, gdy nie zamierzasz powrócić do przerwanego kodu
19 November 2012
Procesory sygnałowe 1 / V-1
5
9
K
2
9
RESET programowy
(nie zmienia wielu rejestrów)
Dedykowane zabezpiecz.
Czasowe RTC/Timer (wspólne)
Przetwornika DMA (wspólne)
I2S1-2 T/R/ MMC/SD1-2
Interfejsy (EMIF, I2C, I2S,
MMC/SD, USB, UART)
LCD
Przerwania programowe
'C5515
SW Reset
RTOS
DLOG
BERR
DMA
TINT
RTC SPI
SAR
USB
EMIF
I2C
I2Sn
LCD
MMC/SD
UART
Wewnętrzne źródła przerwań w ‘C5515
19 November 2012
Procesory sygnałowe 1 / V-1
10
K
2
10
Na drodze do obsługi przerwania *
Źródła przerwań w procesorze
Rejestracja wystąpienia
Dostrzeżenie przerwania - warunki
Rozpoznanie tylko między cyklami procesora (Między rozkazami )
Wymagana aktywność systemu przerwań
Konieczny brak blokady indywidualnej / przyzwolenia indywidualne
Ocena ważności przerwania – priorytety
Powiązanie zdarzenia z programem obsługi (ISR) wymaga
Stosu / stosów
Adresu wektora przerwania
Tablica wektorów przerwań
Warunki dobrego działania przerwania wymagają
Zachowanie stanu / dorobku przerwanego programu
Przygotowanej procedury obsługi zdarzenia - ISR
Odtworzenie stanu / dorobku przerwanego programu
19 November 2012
Procesory sygnałowe 1 / V-1
6
11
K
2
11
Co chcemy rozpoznać *
Przerwania skąd i po co?
Źródła i ich obsługa
Ważność procedur przerwań - priorytety
Potrzeba priorytetów
Organizacja ważności procedur
19 November 2012
Procesory sygnałowe 1 / V-1
Przygotowanie przerwania
Obsługa – kto za co odpowiada?
Utrudnienia w działaniu przerwań
Możliwości
12
K
2
12
19 November 2012
Procesory sygnałowe 1 / V-1
Przerwania w C5515 wg. zadań
(1)
7
13
K
2
13
19 November 2012
Procesory sygnałowe 1 / V-1
Dla danych w tabeli przerwań;
Adresy wektorów tworzy się zgodnie z danymi slajdu 8.
Możliwość wykorzystania zależy od konfiguracji pracy
M
Przerwania w C5515 wg zadań
(2)
14
K
2
14
19 November 2012
Procesory sygnałowe 1 / V-1
Przerwania w C55xx wg priorytetów
(cd)
8
15
K
2
15
19 November 2012
Procesory sygnałowe 1 / V-1
Przerwania w C5515 w rejestrach IFR0 i IER0
16
K
2
16
19 November 2012
Procesory sygnałowe 1 / V-1
Przerwania w C5515 w rejestrach IFR1 i IER1
Dla danych w tabelach przerwań na slajdach 17-18 ;
Część flag/masek jest wspólna dla kilku kanałów (np. DMA, Timety, itd.)
To wymaga programowych testów źródła przerwania
Utrudnia reagowanie na pojedyncze przerwaniaM
9
17
K
2
17
19 November 2012
Procesory sygnałowe 1 / V-1
Zgłoszenia indywidualne w rejestrach IFR0 i IFR1
Programowy wpis “0” do dowolnej flagi IFR
bit
jest bezskuteczny
zatem nie da się programowo „wycofać” zgłoszenia przerwania.
IFR jest zerowany w trakcie RESET
;Przerwanie zgłaszane: “1” np.
set_INT0: OR
#4,*(IFR0)
IFR0
IFR1
18
K
2
18
19 November 2012
Procesory sygnałowe 1 / V-1
Zezwolenia indywidualne w rejestrach IER0 i IER1
IER0
IER1
;zablok. (disable): 0
INT zablokowane
;odblok. (enable): 1
INT odblokowane
set:
MOV
#4,*(IER0)
;odblok. INT1
modify:
OR
#40h,*(IER1)
;odblok. EMIF
AND
#0FFBFh,*(IER0)
;zablok. UART
10
19
K
2
19
Co chcemy rozpoznać *
Przerwania skąd i po co?
Źródła i ich obsługa
Ważność procedur przerwań – priorytety
Przygotowanie przerwania - koncepcja
Przygotowanie procedury ISR
Powiązanie ISR z wektorem w tablicy / tablicach
Konfiguracja rejestrów procesora
19 November 2012
Procesory sygnałowe 1 / V-1
Obsługa – kto za co odpowiada?
Utrudnienia w działaniu przerwań
Możliwości
20
K
2
20
Na drodze do obsługi przerwania *
Źródła przerwań w procesorze
Rejestracja wystąpienia
Dostrzeżenie przerwania - warunki
Rozpoznanie tylko między cyklami procesora (Między rozkazami )
Wymagana aktywność systemu przerwań
Konieczny brak blokady indywidualnej / przyzwolenia indywidualne
Ocena ważności przerwania – priorytety
Powiązanie zdarzenia z programem obsługi (ISR) wymaga
Stosu / stosów
Adresu wektora przerwania
Tablica wektorów przerwań
Warunki dobrego działania przerwania wymagają
Zachowanie stanu / dorobku przerwanego programu
Przygotowanej procedury obsługi zdarzenia - ISR
Odtworzenie stanu / dorobku przerwanego programu
19 November 2012
Procesory sygnałowe 1 / V-1
11
21
K
2
21
19 November 2012
Procesory sygnałowe 1 / V-1
T
a
b
e
la
o
b
ja
śn
ia
sp
o
só
b
tw
o
rz
e
n
ia
a
d
re
su
w
e
kt
o
ra
p
rz
e
rw
a
n
ia
w
ska
z
u
ją
ce
g
o
n
a
lo
ka
c
ję
w
t
a
b
licy
w
e
kt
o
ró
w
p
rz
e
rw
a
ń
Adresy
wektorów
przerwań
22
K
2
22
19 November 2012
Procesory sygnałowe 1 / V-1
Blokada systemu przerwań w ST1_55
Nie wpływa na bity indywidualne bity indywidualne ENABLE w IERn
po RESET INTM=1 (INT disabled - zablokowane)
Uwaga! INTM to MASKA – blokuje przerwania gdy =1
IERn to bity ZEZWOLENIA – Enable, blokują gdy = 0
ST1_55
enable
: BCLR INTM
;INTM = 0, maska skas. - INT odblokowane
disable
: BSET INTM
;INTM = 1, maska ustaw. - INT zablokowane
12
23
K
2
23
Rozpoznawanie przerwań
Zewnętrzne sygnały muszą spełnić warunki czasowe
IFR
bit
musi zostać ustawiony na: “1” by zgłosić
IERn
bit
musi być ustawiony na: “1” (odblokowany)
INTM musi być ustawiony na: “0” (odblokowany)
Zdarzenia/warunki niezbędne do rozpoznania przerwania?
INTx
INTy
0
1
0
(IFRn)
„latch"
(IERn)
„klucz"
(INTM)
„DUŻY klucz"
’54xx
rdzeń
2
2
0
1
0
1
0
1
1
0
Procesor
19 November 2012
Procesory sygnałowe 1 / V-1
24
K
2
24
Co chcemy rozpoznać *
Przerwania skąd i po co?
Źródła i ich obsługa
Ważność procedur przerwań – priorytety
Przygotowanie przerwania - koncepcja
Przygotowanie procedury ISR
Powiązanie ISR z wektorem w tablicy / tablicach
Konfiguracja rejestrów procesora
19 November 2012
Procesory sygnałowe 1 / V-1
Obsługa – kto za co odpowiada?
Utrudnienia w działaniu przerwań
Możliwości
13
25
K
2
25
Główne problemy
(cd)
Przygotowanie do przerwania i jego elementy
Przerwania a RESET
Wiele tablic przerwań – więcej wariantów obsługi
Podział przerwań
Maskowalne / Niemaskowalne
Wewnętrzne / Zewnętrzne
Sprzętowe / Programowe
Główne INT dla DSP; DMA i Timery
Przerwanie a repetycje
Przerwanie jako mechanizm organizacji pracy
19 November 2012
Procesory sygnałowe 1 / V-1
26
K
2
26
działania CPU
opis
1 → INTM
Blokada ogólna przerwań
Po podjęciu obsługi przerwania ...
Rejestry na stosy po dekrementacji SP i SSP
Vector(n) → PC
adres wektora przerwania „n” do PC
0 → IACK pin
wyjście sygnału IACK na „0” (dla zewn. mask)
0 → IFR (n)
kasowanie bitu flagi przerwania „n”
19 November 2012
Procesory sygnałowe 1 / V-1
PC
[23-16]
, DBSTAT, ST0_55 TOSS
PC
[15-0]
, ST1_55, ST2_55 TOS
14
27
K
2
27
Stos
size
.set
100h
stack .usect "STK",size
File.ASM
MEMORY {
PAGE 1:
STKRAM: org=3F00h len=0200h
}
SECTIONS {
STK :> STKRAM PAGE 1
}
Linker_conf.CMD
.sect “code”
MOV
#stack+size,*(SP)
Definiowanie stosu:
1. Zadeklarować nieinicjalizowaną
sekcję odpowiedniego rozmiaru.
2. Zainicjować wskaźnik stosu (SP)
by wskazał “ szczyt stosu +1”:
SP wskazuje ostatnią zajętą
komórkę zatem dla;
CALL:
PC
→
*--(SP)
RET:
*(SP)++
→
PC
3. Ulokować stos w pamięci
- Zaleca się w pamięci wewnętrznej
0
(SP)
size
stack
Uwaga na MMR!
Pam.Danych
S
to
s
19 November 2012
Procesory sygnałowe 1 / V-1
Zachowanie i odtworzenie stanu procesora
[context save / context restore] – PSH / POP
Dla STOSÓW!! pamiętać o odwrotnej kolejności pobierania od kolejności zachowania!
Na stos / stosy
Ze stosu / stosów
PSH src1, src2
POP dst1, dst2
PSH src
POP dst
PSH src,Smem
POP dst, Smem
PSH dbl(ACx)
POP dbl(ACx)
PSH Smem
POP Smem
PSH dbl(Lmem)
POP dbl(Lmem)
PSHBOTH xsrc
xsrc(0-15) *--(SP)
xsrc(16-31) *--(SSP)
POPBOTH xdst
*(SP)++ → xdst(0-15)
*(SSP)++ → xdst(16-32)
K
2
19 November 2012
Procesory sygnałowe 1 / V-1
15
29
K
2
29
19 November 2012
Procesory sygnałowe 1 / V-1
Strategia context save – context restore
Zachowaj na stosie rejestry, których używa procedura ISR
Pamiętaj, że stos to pamięć LIFO – zatem pobieraj ze stosu w
odwrotnej kolejności do zachowywania
Jeśli chcesz dopuścić inne przerwania w trakcie już obsługiwanego
przygotuj się do tego nie tylko przez odblokowanie przerwania!
W zagłębionym przerwaniu przestrzegaj wszystkich
prezentowanych wcześniej zasad
Wracając z procedury obsługi dobierz właściwy rozkaz powrotu –
z lub bez odblokowania przerwań
30
K
2
30
Zagłębianie przerwań
; może wejść
; zagłębiona ISR od INT0. . .
; uwaga na rejestry!!!
BCLR
#11,ST1_55
BSET
#2,IER0
PSH
ST1_55
BSET
#11,ST1_55
POP
ST1_55
M
RETI
Zachowaj stan rejestru IER
Odblokuj tylko przerwanie 2
odblokuj przerwania
Zablokuj przerwania INTM =1
odtwórz stan rejestru IER
19 November 2012
Procesory sygnałowe 1 / V-1
16
31
K
2
31
Rozkazy powrotu
19 November 2012
Procesory sygnałowe 1 / V-1
Instrukcja
Wykonanie
Cykli
RET
5
RETI
5
RETCC cond
5
32
K
2
32
19 November 2012
Procesory sygnałowe 1 / V-1
Tablica wektorów –
np. .sect
”vectors”
.sect
“vectors”
RSV:
B
Reset
NOP
NOP
NMV:
Tu wstaw procedurę
obsługi NMI M
...
IV1:
B
ISR1
???? NOP
NOP ???
IV2:
B
ISR2
???? NOP
NOP ???
...
Każdy wektor ma zawsze
8 bajtów
Wektory nie używane:
IVn:
B
IVn
NOP
NOP
IVn:
B
Sygnał
NOP
NOP
Debugowanie
Praca
IVn:
RETI
NOP
NOP
17
33
K
2
33
Rejestry pod wpływem operacji H&W i S&W RESET
K
2
19 November 2012
Procesory sygnałowe 1 / V-1
Rejestr
Bity
RESET sprzęt.
Rozkaz RESET
BSA01
BSA23
BSA45
BSA67
wszystkie
wszystkie
wszystkie
wszystkie
0
0
0
0
x
x
x
x
DBIER0, DBIER1
wszystkie
0
x
IER0, IER1
wszystkie
0
x
IFR0, IFR1
IVPD, IVPH
wszystkie
wszystkie
0
0xFFFF
0
x
RPTC
wszystkie
0
x
ST0_55, ST1_55
ST2_55, ST3_55
Rozmaicie
Rozmaicie
Rozmaicie
Rozmaicie
Jak dla H&W
Jak dla H&W
XAR0-XAR7, XSP
[22-16]
0
x
T2, XXDP
wszystkie
0
0
x – rejestr nie zmieniany
Dokładne dane w dokumencie swpu073e.pdf [C55xx_v3.x
CPU RefGuide] rozdz. 5.5.
34
K
2
34
Adres ISR z tablicy wektorów przerwań po
RESET
sprzętowym
Tworzenie
adresu
wektora
po Reset sprzętowym
15 14 13 12 11 10 9
8
7
6
5
4
3
2
1
0
15 14 13 12 11 10 9
8
7
6
5
4
3
2
0
0
0
0
0
x
x
x
x
x
1
0
0
0
co 8-my
adresy
Po każdym innym INT
Numer wektora z
sytemu przerwań
<----- n = 0 ----->
<--nr INT-->
<--nr INT->
19 November 2012
Procesory sygnałowe 1 / V-1
0
23 22 21 20 19 18 17 16
1
1
1
1
1
1
1
1
1
IVPD / IVPH
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
18
Kto, co i kiedy? – przygotowuje / uruchamia / wykonuje
1. Przypisanie źródeł przerwań
2. Przygotowanie tabeli wektorów INT
3. Przygotowanie programów obsługi (ISR)
4. Odblok. INT indywidualnych
5. Odblok. Global INT
P
R
Z
Y
G
O
T
O
W
A
N
IE
10. U. Context Save/ ISR /U. Context Restore
11. Return do przerwanego programu.
I
S
R
C
P
U
6.
Dostrzeżenie sygnału
7.
Ustawienie Flag INT
8.
INT Odblok.? skok do ISR
9.
Częściowe CONTEXT SAVE / RESTORE
Projektant
Procesor
Program
TAK
K
2
19 November 2012
Procesory sygnałowe 1 / V-1
36
K
2
36
Adres ISR z tablicy wektorów przerwań po
rozkazie RESET – reset programowy!
19 November 2012
Procesory sygnałowe 1 / V-1
Tworzenie
adresu
wektora
15 14 13 12 11 10 9
8
7
6
5
4
3
2
1
0
15 14 13 12 11 10 9
8
7
6
5
4
3
2
0
0
0
0
0
x
x
x
x
x
1
0
0
0
co 8-my
adresy
Po każdym innym INT
Numer wektora z
sytemu przerwań
<----- n = 0 ----->
<--nr INT-->
<--nr INT->
0
23 22 21 20 19 18 17 16
IVPD /IVPH
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
Reset programowy – rozkaz RESET
19
37
K
2
37
Wskazanie innego położenia
tablicy wektorów przerwań
Wymaga przygotowania IVPD i RESETu programowego
Uwaga! rozkaz RESET ustala stany wielu elementów tak jak
RESET-SPRZĘTOWY
By używać nowej tablicy wektorów przerwań w tych samych
warunkach realizowanego programu należy zapamiętać stan
procesora by go odtworzyć w wymaganym zakresie po RESET
programowym
K
2
19 November 2012
Procesory sygnałowe 1 / V-1
38
K
2
38
Przerwania programowe - rozkazy
INTR k
TRAP k
RESET
k: numer przerwania [nr] (patrz tablica )
INTR = TRAP + „1” INTM (blokada przerwań)
Rozkaz RESET działa jak RESET sprzętowy ale nie zmienia wielu
rejestrów w tym IVPD / IVPH, można zatem wcześniej przygotować
zawartość IVPD i odpowiadającą tej lokacji tablicę wektorów
K
2
19 November 2012
Procesory sygnałowe 1 / V-1
20
Przebieg reakcji na s.przerwania
Gdy żądanie maskowalnego przerwania
Ustawienie odpowiadającego bitu IFR
bit
Testowanie IER
bit
i INTM,
jeśli spełniony wystawia IACK=0
Jeśli nie, wraca do przerwanego programu
Jeśli spełniony INTM=1 i IFR
bit
=0
PC
[23-16]
, DBSTAT, ST0_55
[15-9]
=> TOSS
PC
[15-0]
, ST1_55, ST2_55 => TOS
Skok do procedury ISR i jej wykonanie z
uzupełniającym mContext S/R, kończone RETI
Procesor Contex Restore
( ze stosów odwrotnie niż wyżej)
Kontynuacja przerwanego programu
Gdy żądanie niemaskowalnego przerwania
Natychmiastowe potwierdzenie sygnałem IACK=0
Ustawia INTM=1 po NMI, RESET a INTRn -> IFR
n
=0
Context Store (
na stosy) ... i jak wyżej
..
Dla przerwań „Time Critical”
Praca w zależności od zgody na debugging
K
2
19 November 2012
Procesory sygnałowe 1 / V-1
Procesor
Context
Save
40
K
2
40
19 November 2012
Procesory sygnałowe 1 / V-1
Program
Start Byte
DANE
Start Word
Obszar
Pamięć
Wielkość
[Bajty]
0x00 0000
0x00 0000
MMR
192
0x00 00C0
0x00 0060
DARAM0
8K-192
0x00 2000
0x00 1000
DARAM1
DARAM2
*
DARAM6
DARAM7
INTERNAL
7 x 8K
= 56K
0x01 0000
0x00 8000
SARAM0
SARAM1
*.
SARAM30
SARAM31
32 x 8K
= 256K
0x05 0000
0x02 8000
CE0 / CE1
7,687M
0x80 0000
0xC0 0000
0xE0 0000
0xF0 0000
0x40 0000
0x60 0000
0x70 0000
0x78 0000
CE2
CE3
CE4
CE5
EXTERNAL
4M
2M
1M
896K
0xFE 0000
0xFE 8000
0xFF 0000
0xFF 8000
0x7F 0000
0x7F 4000
0x7F 8000
0x7F C000
SAROM0
SAROM1
SAROM2
SAROM3
Internal ROM
32K
32K
32K
32K
21
41
K
2
41
19 November 2012
Procesory sygnałowe 1 / V-1
42
K
2
42
Środowisko przerwań
19 November 2012
Procesory sygnałowe 1 / V-1
22
43
K
2
43
Na co zwrócić szczególną uwagę
•
Zestaw występujących peryferii w procesorze DSP ’C55xx
•
Praca z procesorem układów pamięci i we/wy
•
Jakie źródła przerwań wewnętrznych występują w procesorze ’C55xx?
•
Jak można rozróżnić przerwania zgłaszane tą samą linią / sygnałem?
•
Na czym polega koncepcja „przerwań programowych” i jak jest realizowana
w praktyce?
•
Co należy ustawić by umożliwić procesorowi reakcję na przerwanie?
• Jakie czynniki wpływają na opóźnienie przerwania?
• Co to jest wektor przerwania?
• Jak tworzony jest adres wektora przerwania
• Co to jest i co odróżnia flagi przerwań, maskę przerwań i bity „Enable” dla
przerwań
•...
K
2
19 November 2012
Procesory sygnałowe 1 / V-1