III Śledzenie
M68030 posiada dwa tryby śledzenia. O ich wyborze decydująbity Tl, TO w bajcie systemowym SR
Tl TO S M 0 12 II 10
-V-
Maska przerwań
0 0 Brak śledzenia (stan po reset)
0 1 Śledzenie jedynie przy rozgałęzieniach (rozkazy skoków, wywołań, powrotów)
1 0 Śledzenie po każdej instrukcji
1 l Kombinacja niewykorzystywana (działanie jak dla 10)
Po wejściu w śledzenie warstwa na stosie jest następująca
31 i |
0 | ||
SSP-C |
SR |
PCH | |
SSP-8 |
PCL |
sygnatura | |
SSP-4 |
IA adres instr. |
Początkowe
SSP
PC - adres powrotny z procedury śledzenia
1A adres instrukcji - po tym rozkazie „wchodzi” procedura śledząca
Przy śledzeniu „zwykłym” pole IA podaje adres instrukcji po której następuje śledzenie a pole PC adres instrukcji kolejnej do której powrócimy ze śledzenia (zwykłe PC= IA+2,4,6; 2,4,6 - długość instrukcji). Przy śledzeniu zgrubnym (po instrukcji rozgałęziającej) wartość PC jest oczywiście zupełnie inna w stosunku do IA. Aby praktycznie zapoznać się z działaniem pp przy śledzeniu zgrubnym należy wpisać następujący program testowy. Po ustawieniu stanu Tl,TO = 01 będzie można zaobserwować wejście i wyjście w śledzenie wraz z obrazem stosu. Dotyczy to instrukcji:
BSR - wywołania
RTS - powrotu z procedury
BRA - skoku (tu bezwarunkowego)
Pozostałe instrukcje to wypełniacze (NOP) aby nie zaciemniać obrazu. Także procedura „obsługi” śledzenia zawiera NOP-y zakończone oczywiście instrukcją RTE (powrót ze stanu wyjątkowego - ściąga ze stosu PC, SR a także odczytuje sygnaturę: w tym przypadku SSP należy zwiększyć o pojedynczą warstwę, tj. o 4 zawierającą IA).
00000000 00001000 (SSP)
00000004 00000800 (PC)
Program „główny” (pętla)
00000800 00000804 00000808 J 0000080C
00000810
00000814
00000818
„podprogram” X 00000840 1 00000844
46FC6733 4E714E71 4E714E71 4E7l|6130h
4E714E71
4E714E71
60EAxxxx
MOVE SP, $6733 ►NOP, NOP NOP, NOP NOP, BSR $30
(przesunięcie)
NOP, NOP NOP, NOP -BRA
“►4E714E71 4E7l|4E7S|1
NOP, NOP NOP, RTS
Procedura „obsługi” śledzenia
Część tablicy z adresem startowym obsługi stanu wyjątkowego śledzenia
00000024
00000500
00000504
00000508 00000500
4E714E71
4E714E71
4E714E73
NOP NOP NOP NOP NOP RTE