Upload
butcher788
View
228
Download
0
Embed Size (px)
Citation preview
7/25/2019 Rodzina Procesorw ARM
1/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
2
Zakres przedmiotuZakres przedmiotu
Systemy mikroprocesorowe, systemy wbudowane
Rodzina procesorw ARM
Asembler
Urzdzenia peryferyjne
ro!ramy wbudowane na przyk"adzie procesorw ARM
Metodyki projektowania systemw wbudowanyc#
$nterfejsy w systemac# wbudowanyc#
Systemy czasu rzeczywiste!o
7/25/2019 Rodzina Procesorw ARM
2/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
3
%d Acorn &omputers 'td( ARM do ARM 'td(%d Acorn &omputers 'td( ARM do ARM 'td(
'corn
)irma utworzona w *++ roku,
owsta"a z firmy produkujcej komputery Acorn &omputers,
Firma ARM nie produkuje procesorw,rojektuje i sprzedaje licencje projektw tzw( rdzeni -Intellectual (roperty Cores.
procesorw ARM oraz urzdze/ peryferyjnyc#,
rodukuje narz0dzia, p"yty prototypowe, narz0dzia do debu!owania, standardy(
7/25/2019 Rodzina Procesorw ARM
3/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
4
)y*rane firmy $roduku+,ce $rocesory z-odne z architektur, 'M)y*rane firmy $roduku+,ce $rocesory z-odne z architektur, 'M
A!i1lent, A2M, Alcatel, Altera, Atmel, 3roadcom, ip 45press, &irrus 'o!ic, 6i!italSemiconductor, eSilicon, )ujitsu, 74& lessey, 7lobal Uniip, 8, 8yundai, $3M, $ntel,$9R$, '7 Semicon, 'S$ 'o!ic, 'u1cent, Matsus#ita, Micrel, Micronas, Mitsubis#i, )reescale,:4&, %2$, #ilips, ;u1alcomm, Rockwell, Ro#m, Samsun!, Samsun!, Sanyo, Sea!ate,Seiko 4pson, S#arp, Sony, S9Microelectronics, Symbios 'o!ic, 9e5as $nstru1ments,o, Z94$&, (((
7/25/2019 Rodzina Procesorw ARM
4/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
5
Zastosowanie procesorw ARMZastosowanie procesorw ARM
7/25/2019 Rodzina Procesorw ARM
5/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
6
8istoria mikroprocesorw ARM8istoria mikroprocesorw ARM
*+?@ Sop#ie Bilson and Ste>e )urber projektuj pierwszy procesor R$S& w firmie Acorn&omputers 'imited, &ambrid!e, ARM C 'corn -'d>anced. $S& Mac#ine
*+?@ prototypowe procesory ARM * -wersja arc#itektury >*.
*+?D procesory ARM E opuszczaj fabryk0 -FEGbit, EDGbit adres, *D rejestrw *D bitowyc#,F( tranzystorw, wersja arc#itektury >EH>Ea, ? M8z.
*++ Apple &omputer i I'S$ 9ec#nolo!y rozpoczynaj wsp"prac0 nad kolejn wersjardzenia procesora ARM -ARM>F.
*++ wy"ania si0 nowa firma Ad>anced R$S& Mac#ines 'td( odpowiedzialna za dalszy rozwjprocesorw ARM
*++* pojawia si0 pierwszy procesor b0dcy wynikiem wsp"pracy z firm Apple procesor zjdrem ARM D -stosowany w jako procesor ARM D* w Apple :ewton 6A, wersjaarc#itektury >F, FF M8z.
*++@ firma ARM wprowadza na rynek bardzo udany model procesora z rdzeniem 'M!TDMI-architektura 'M/0T. oraz Stron!ARM -$ntel, EFF M8z.
E* firma ARM wprowadza kolejny model procesora z rdzeniem 'MTDMI-architektura 'M/2T4, EE M8z.
EF procesory serii ARM ** -arc#itektura rdzenia ARM>D, * 78z, tec#nolo!ia D@ nm.
EJ procesor z rdzeniem &orte5 MF -ARM>KGM, * M8z.
E? kolejny model procesora 'M Corde5 '&' -arc#itektura 'M/!, E 78z., Corte57&M
7/25/2019 Rodzina Procesorw ARM
6/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
6ost0pne wersje arc#itektury rdzenia ARM6ost0pne wersje arc#itektury rdzenia ARM
'iczba oraz rodzaj instrukcji, ktre realizuj jednostki wykonawcze
dost0pnyc# rdzeni procesorw ARM zaleL od wersji rdzenia -I* G IK.(6ost0pne procesory AMR budowane s w oparciu o nast0pujce wersjearc#itektury
Uk"ady z rdzeniami ARMK, wykorzystywane w aplikacjac# o niskim poborzeener!ii, wykorzystuj podstawowy zestaw instrukcji udost0pniany przez
wersj0 J9,Uk"ady z rdzeniami ARM+ -ARM+ED4NGS, ARM*ED4NGS. zbudowane s woparciu o arc#itektur0 w wersji @ -instrukcje 6S, rozbudowane instrukcjearytmetyczne M'A, itd(((.,
Uk"ady z rdzeniem ARM** wykorzystuj arc#itektur0 instrukcji w wersji D-instrukcje operujce na bajtac#, instrukcje u"atwiajce operacje !raficzne.,
Uk"ady z rodziny &orte5 A?HA+, MF, RJ zbudowane s w oparciu o list0 instrukcjiw wersji K -nowy zestaw instrukcji *D bitowyc# 9#umb E, rozbudowany systemoszcz0dzania ener!ii oraz bezpiecze/stwa.(
7/25/2019 Rodzina Procesorw ARM
7/109Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
!
Rodzina procesorw ARM oraz ic# zastosowanieRodzina procesorw ARM oraz ic# zastosowanie
7/25/2019 Rodzina Procesorw ARM
8/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
"
Arc#itektury i dost0pne rdzenie procesorw ARMArc#itektury i dost0pne rdzenie procesorw ARM
7/25/2019 Rodzina Procesorw ARM
9/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
1#
orwnanie wydajnoOci procesorworwnanie wydajnoOci procesorw
7/25/2019 Rodzina Procesorw ARM
10/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
11
ARM silna dominacja na rynkuARM silna dominacja na rynku
)irma ARM sprzedaje obecnie ponad * milionw rdzeni procesorw
kaLde!o dnia -szacuje si0, Le wyprodukowano ponad *@ miliardwprocesorw z rdzeniami ARM.(
(rocesory 'M z rdzeniem w wers+i 'M/! 8Corte59%
rocesory do zastosowa/ komputerowyc# -Application rocessors.
Corte57' silne procesory przeznaczony do obs"u!i systemw operacyjnyc#-cyfrowe dekodery, np( 869I, 6I6, komputery :etbook, telefony komrkowe,6A, smartofony, cyfrowe ramki do zdj0P, itd(((.,
rocesory do zastosowa/ wbudowanyc# -4mbedded rocessors.
Corte57 procesory przeznaczone do zastosowa/ w systemac# czasurzeczywiste!o -RealGtime Applications, niski pobr mocy, szybka reakcja na
zdarzenia zewn0trzne, np( motoryzacja A3S, urzdzenia peryferyjne komputera&, sterowanie 866, 4t#ernet, sterowniki drukarek.,
Corte57M procesory b0dce odpowiednikami mikrokontrolerw -niski pobrmocy, niska cena, np( sterowanie procesami przemys"owymi, inteli!entne czujniki,motoryzacja sterownie procesami innymi niL R9, MF G tylko 9#umbE.(
7/25/2019 Rodzina Procesorw ARM
11/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
12
ARM &orte5 A+ w konfi!uracji M&oreARM &orte5 A+ w konfi!uracji M&ore
9ec#nolo!ia M&ore pozwala na budow0 So& cztery rdzenieprocesorw A+
7/25/2019 Rodzina Procesorw ARM
12/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
13
rocesory z rdzeniem ARMrocesory z rdzeniem ARM
rocesory ARM s szeroko stosowane w systemac# wbudowanyc# i systemac# oniskim poborze mocy, ze wz!l0du na ener!ooszcz0dn arc#itektur0
rocesor ARM jest jednym z najcz0Ociej stosowanyc# procesorw na Owiecie( NestuLywany w dyskac# twardyc#, telefonac# komrkowyc#, routerac#, kalkulatorac# anawet w zabawkac# dzieci0cyc#
%becnie zajmuje ponad K@Q rynku FEGbitowyc# &U dla systemw wbudowanyc#
:ajbardziej udanym projektem ARM by" procesor ARMK96M$ szeroko stosowanyw systemac# wbudowanyc#
Moc obliczeniowa procesorw ARM umoLliwia instalacj0 na tym procesorzesystemu operacyjne!o, z zaimplementowanymi mec#anizmami wielowtkowoOci, zmoLliwoOci wykorzystania zawarte!o w systemie stosu 9&H$, systemu plikw -np(
)A9FE.(Systemy operacje dystrybucje 4mbedded 'inu5 -4mbedded 6ebian, 4mbedded
Ubuntu., Bindows &4, Symbian, :U9%S -4t#ernet., (((
7/25/2019 Rodzina Procesorw ARM
13/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
14
Zastosowanie procesorw ARMZastosowanie procesorw ARM
7/25/2019 Rodzina Procesorw ARM
14/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
15
orwnanie wybranyc# procesorw ARMorwnanie wybranyc# procesorw ARM
FamilyArchitecture
VersionCore Feature Cache (I/D)/MMU Typical MIPS @ M!
ARM6 ARMv3 ARM610 Cache, no coprocessor 4K unified 17 MIPS @ 0 M"#
ARM7 ARMv3 ARM7$00%& In'e(ra'ed SoC) *%&* Added %PA and &+ -e-or. con'ro//er) 4 K unified $$ MIPS @ $6 M"#
ARM7+MI ARMv$&2 ARM7&2S 2a#e//e +, &nhanced +SP ins'ruc'ions, $s'a(e pipe/ine 5 K 10 MIPS @ 133 M"#
S'ron(ARM ARMv4 SA110 $s'a(e pipe/ine, MM 16 K16 K, MM 3$ MIPS @ 06 M"#
ARM5 ARMv4 ARM510879$s'a(e pipe/ine, s'a'ic :ranch predic'ion, dou:/e:and;id'h
-e-or.5 K unified, M M 1)0 +MIPSM "#
ARM ARMv7A Cor'e>A5App/ica'ion profi/e, =%P, &, 2a#e/ le RC, hu-:, 13s'a(e
supersca/ar pipe/ine
varia:/e ?B1B,
MMrus'Done
E1000 MIPS@
600 M1 F"#
7/25/2019 Rodzina Procesorw ARM
15/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
16
Rdze/ procesora ARM
7/25/2019 Rodzina Procesorw ARM
16/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
1
Arc#itektura ARM -*.Arc#itektura ARM -*.
dze: $rocesora 'M ;procesor z!odny z arc#itektur ARM zaprojektowany w j0zykuopisu sprz0tu -najcz0Ociej I86' lub Ierilo!. dostarczony jako makrokomrka -an!( macroG
cell. lub $ -an!( $ntellectual roperty.(
&ec#y rdzeni procesorw ARM
rzeznaczony do dalszej rozbudowy procesory, So&
FEGbitowy procesor z!odny z arc#itektur R$S&
Bbudowana jednostka zarzdzania pami0ci MMU
Zoptymalizowany pod wz!l0dem niskie!o poboru mocy
RLne tryby pracy
FEGbitowe instrukcje ARM
*DGbitowe instrukcje 9#umb
$nstrukcje j0zyka Na>a G Nazelle 63iolations.
Hndef ;obs"u!a nieznanyc#Hb"0dnyc# rozkazw
System ;tryb pracy superuLytkownika, dost0p do rejestrw takic# jak w trybie Userjednak moLliwy dost0p do rLnyc# obszarw pami0ci
7/25/2019 Rodzina Procesorw ARM
27/109
7/25/2019 Rodzina Procesorw ARM
28/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
2"
Model pro!ramowy rejestry dost0pne w trybie )$;Model pro!ramowy rejestry dost0pne w trybie )$;
r0
r1
r2
r3
r4
r5
r6
r7
r15 !"c#
c"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r8
r
r10
r11
r12
r13 !s"#r14 !$r#
s"sr
Current Kisi*le .e-isters
Lanked out .e-isters
Hser I.J SKC Hndef '*ort
r8
r
r10
r11
r12
r13 !s"#r14 !$r#
?IJ Mode
7/25/2019 Rodzina Procesorw ARM
29/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
3#
Model pro!ramowy rejestry dost0pne w trybie $R;Model pro!ramowy rejestry dost0pne w trybie $R;
I.J Moder0
r1
r2
r3
r4
r5
r6r7
r8
r
r10
r11
r12
r15 !"c#
c"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r8
r
r10
r11
r12
r13 !s"#r14 !$r#
s"sr
Current Kisi*le .e-isters
Lanked out .e-isters
Hser ?IJ SKC Hndef '*ort
r13 !s"#r14 !$r#
7/25/2019 Rodzina Procesorw ARM
30/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
31
Model pro!ramowy rejestry dost0pne w trybie Super>isorModel pro!ramowy rejestry dost0pne w trybie Super>isor
SKC Moder0
r1
r2
r3
r4
r5
r6r7
r8
r
r10
r11
r12
r15 !"c#
c"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r8
r
r10
r11
r12
r13 !s"#r14 !$r#
s"sr
Current Kisi*le .e-isters
Lanked out .e-isters
Hser ?IJ I.J Hndef '*ort
r13 !s"#r14 !$r#
7/25/2019 Rodzina Procesorw ARM
31/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
32
Model pro!ramowy rejestry dost0pne w trybie AbortModel pro!ramowy rejestry dost0pne w trybie Abort
'*ort Moder0
r1
r2
r3
r4
r5
r6r7
r8
r
r10
r11
r12
r15 !"c#
c"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r8
r
r10
r11
r12
r13 !s"#r14 !$r#
s"sr
Current Kisi*le .e-isters
Lanked out .e-isters
Hser ?IJ I.J SKC Hndef
r13 !s"#r14 !$r#
7/25/2019 Rodzina Procesorw ARM
32/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
33
Model pro!ramowy rejestry dost0pne w trybie UndefModel pro!ramowy rejestry dost0pne w trybie Undef
Hndef Moder0
r1
r2
r3
r4
r5
r6r7
r8
r
r10
r11
r12
r15 !"c#
c"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r13 !s"#r14 !$r#
s"sr
r8
r
r10
r11
r12
r13 !s"#r14 !$r#
s"sr
Current Kisi*le .e-isters
Lanked out .e-isters
Hser ?IJ I.J SKC '*ort
r13 !s"#r14 !$r#
7/25/2019 Rodzina Procesorw ARM
33/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
34
Model pro!ramowy podsumowanie dost0pnyc# rejestrwModel pro!ramowy podsumowanie dost0pnyc# rejestrw
User
mode
r0%r7&
r15&
'nd
c"sr
r8
r
r10
r11
r12
r13 !s"#
r14 !$r#
s"sr
?IJ
r8
r
r10
r11
r12
r13 !s"#
r14 !$r#
r15 !"c#
c"sr
r0
r1
r2
r3
r4
r5
r6
r7
Hser
r13 !s"#
r14 !$r#
s"sr
I.J
User
mode
r0%r12&
r15&
'ndc"sr
r13 !s"#
r14 !$r#
s"sr
Hndef
User
mode
r0%r12&
r15&
'ndc"sr
r13 !s"#
r14 !$r#
s"sr
SKC
User
mode
r0%r12&
r15&
'ndc"sr
r13 !s"#
r14 !$r#
s"sr
'*ort
User
mode
r0%r12&
r15&
'ndc"sr
Thum b state
Low registers
Thum b state
H igh registers
7/25/2019 Rodzina Procesorw ARM
34/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
35
Rejestry procesora a 763Rejestry procesora a 763
8-d*9 info r
r 5E 5Er* 5EbaJ 5EbaJ
rE 5@Kb 5@Kb
rF 5EKf 5EKf
rJ 5FD+ 5FD+
r@ 5F*EEdc 5F*EEdc
rD 5* 5*
rK 5?bcJ 5?bcJ
r? 5F*EEcJ 5F*EEcJ
r+ 5JKc?*aJ 5JKc?*aJ
r* 5JJ*E+ab 5JJ*E+ab
r** 5F*FfEc 5F*FfEc
r*E 5F*FfF 5F*FfF
sp 5F*Ff*? 5F*Ff*?lr 5EaKc 5EaKc
pc 5EJKJ 5EJKJ XdelayYD
fps 5 5
cpsr 5?@F 5?@F
7/25/2019 Rodzina Procesorw ARM
35/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
36
%bs"u!a sytuacji wyjtkowyc#%bs"u!a sytuacji wyjtkowyc#
)y+,tek 8an-. e5ce$tion9 mec#anizm kontroli przep"ywu danyc#
wyst0pujcy w mikroprocesorac# oraz we wsp"czesnyc# j0zykac#pro!ramowania s"uLcy do obs"u!i zdarze/ wyjtkowyc#, a wszcze!lnoOci sytuacji b"0dnyc#(
Byjtki dzielimy na
niepowodzenia -an!( fault.
b"0dy nienaprawialne -an!( abort.pu"apki -an!( trap.
przerwania -an!( interrupts.
7/25/2019 Rodzina Procesorw ARM
36/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
3
%bs"u!a wyjtkw%bs"u!a wyjtkw
)yst,$ienie wy+,tku w $rzy$adku$rocesorEw 'M $owodu+e%
Bykonanie kopii &SR do rejestru SSR[Xmode
Ustawienie odpowiednic# bitw rejestru &SR
Zmiana trybu pracy do trybu ARM
rze"czenie w tryb obs"u!i wyjtkw
By"czenie przerwa/
Zapisanie rejestru & do rejestru 'R[Xmode
Ustawienie rejestru & na adres odpowiednie!owektora obs"u!ujce!o dany wyjtek
) $rzy$adku $owrotu z wy+,tku uchwyto*sFu-u+,cy dany wy+,tek $owinien%
%dtworzyP rejestr & z 'R[Xmode
ozosta"e operacje wykonywane s automatycznie-np( przywrcenie &SR z SSR[Xmode.
(owyBsze o$erac+e moBna wykona wyF,cznie wtry*ie 'M
Kector Ta*leIector table can be at
0xFFFF0000 on ARMKE,9
and on ARM+H*, family de>ices
?IJ
I.J
8.eser/ed9
Data '*ort(refetch '*ort
Software Interru$t
Hndefined Instruction
.eset
,5*&
,5*?
,5*J
,5*,,5,&
,5,?
,5,J
,5,,
S b d
7/25/2019 Rodzina Procesorw ARM
37/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
3!
Rdzenia procesora ARMK555Rdzenia procesora ARMK555
&ec#y rdzenia ARMK96M
Arc#itektura rdzenia ARM>J,9rjstopniowy potok wykonawczy,
rocesor sta"oprzecinkowy,
Bykorzystywane w telefonac# komrkowyc#, odtwarzaczac# mpF, itd(((
S t b d
7/25/2019 Rodzina Procesorw ARM
38/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
3"
Struktura rdzenia ARMK96MStruktura rdzenia ARMK96M
S t b d
7/25/2019 Rodzina Procesorw ARM
39/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
4#
Rdzenia procesora ARM+555Rdzenia procesora ARM+555
&ec#y rdzenia ARM+96M
Arc#itektura rdzenia ARM>@,i0ciostopniowy potok wykonawczy,
Bbudowana jednostka zarzdzania pami0ci MMU -wsparcie dlasystemw operacyjnyc# Bin&4, 'inu5, Symbian.,
Rozdzielona pami0P cac#e dla instrukcji i pro!ramu,
rocesor sta"oprzecinkowy,
Zestaw instrukcji ARM, 9#umb,
Bykorzystywane w zaawansowanyc# telefonac# komrkowyc#,urzdzeniac# telekomunikacyjnyc#, itd(((
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
40/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
41
otok wykonawczy instrukcji, ARMK >s ARM+otok wykonawczy instrukcji, ARMK >s ARM+
Instruction?etch
Shift 'GH Memory'ccess
.e-)rite.e-
.ead.e-
Decode
)49&8 64&%64 4
7/25/2019 Rodzina Procesorw ARM
41/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
42
Rdzenia procesora ARM**55Rdzenia procesora ARM**55
&ec#y rdzenia ARM**96M
Arc#itektura rdzenia ARM>D,Siedmiostopniowy potok wykonawczy,
'epsza wydajnoOP oraz obniLony pobr mocy,
Rozdzielona pami0P cac#e dla instrukcji i pro!ramu,
6odatkowe instrukcje 6S oraz S$M6,Bykorzystywane w 6S, smartp#onac#, przenoOnyc# !rac#komputerowyc#, itd(((
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
42/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
43
otok wykonawczy instrukcji, ARM* >s ARM**otok wykonawczy instrukcji, ARM* >s ARM**
ARM**
?etch1
?etch
Decode Issue
Shift 'GH Saturate
)rite*ack
M'C1
M'C
M'C3
'ddressData
Cache1
DataCache
Shift 'GH Memory
'ccess .e-
)rite
?TCN DCOD PCHT MMO.Q ).IT
.e- .ead
Multi$ly
Lranch(rediction
Instruction
?etch
ISSH
'.M or
Thum*Instruction
Decode Multi$ly'dd
ARM*,
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
43/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
44
otok wykonawczy procesora &orte5GA?otok wykonawczy procesora &orte5GA?
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
44/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
45
orty wejOciaGwyjOciaprocesora ARM A9+*SAM+EDF
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
45/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
46
Mikrokontroler A9+*SAM+EDF -*.Mikrokontroler A9+*SAM+EDF -*.
Cechy mikrokontrolera 'T1S'M63%
arc#itektura typu SystemG%nGip,Ndro ARM+ED4NGS -EE M$S dla E M8z.,
Nednostka zarzdzajca pami0ci MMU -Memory Mana!ement Unit.,
Sterownik bezpoOrednie!o dost0pu do pami0ci 6MA -EK kana"w 6MA.,
Bsparcie dla systemu debu!owania 4mbedded$&4,
6ost0pne instrukcje 6S -6i!ital Si!nal rocessin!. oraz wsparcie dla j( Na>a,
3o!ate urzdzenia peryferyjne
Sterownik wyOwietlacza '&6 9)9HS9: -E6 !rap#ics coGprocessor, EJ?5EJ?.,
Sterownik camery cyfrowej,
Uk"ad dostarczany w obudowie 37A FEJ -wyprowadzenia.,
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
46/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
4
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
47/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
Systemy wbudowane
4!
Mikrokontroler A9+*SAM+EDF G dokumentacjaMikrokontroler A9+*SAM+EDF G dokumentacja
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
48/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
y y
4"
Mikrokontroler A9+*SAM+EDF porty $H%Mikrokontroler A9+*SAM+EDF porty $H%
RrEdFo% 'TMG@ doc60.$df@ strona 02
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
49/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
y y
5#
Sc#emat blokowy FEGbitowe!o portu $H%Sc#emat blokowy FEGbitowe!o portu $H%
'd/anced (eri$heral Lus
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
50/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
y y
51
Ze!ar, a pobr ener!iiZe!ar, a pobr ener!ii
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
51/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 52
Rejestry sterujce portem $H%Rejestry sterujce portem $H%
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
52/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 53
Mapa pami0ci rejestrwMapa pami0ci rejestrw
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
53/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 54
%pis rejestw w dokumentacji%pis rejestw w dokumentacji
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
54/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 55
Sc#emat blokowy portu $H%Sc#emat blokowy portu $H%
(IO(DS 8(in Data Status e-ister9
(ort I&O
(IOO
6 ;
&lk
Clk
(IOOD 1
(IOOD ; Out$ut Disa*le e-ister
(IOO ; Out$ut na*le e-ister
(IOOS ; Out$ut Status e-ister
(IOOS
6 ;
&lk
(IOSOD 8set9
(IOCOD 8clear9
(IOODS 8Out$ut Data Status e-.9
Clk
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
55/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 56
Sc#emat blokowy portu $H% sterowanie wyjOciemSc#emat blokowy portu $H% sterowanie wyjOciem
(ull7H$ na*le e-.
(IO na*le e-.
(eri$h. ' status e-.
Out$ut na*le e-.
Set Out$ut Data e-.
Multi7dri/erna*le e-.8O$enDrain9
1"" k
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
56/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 5
Sc#emat blokowy portu $H% odczyt stanu wejOciaSc#emat blokowy portu $H% odczyt stanu wejOcia
(in Data Status e-.
Interru$t na*le e-.
In$ut ?ilter Diss. e-.
Interru$t Status e-.
Interru$t Mask e-.
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
57/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 5!
Sy!na" cyfrowySy!na" cyfrowy
Sy-naF cyfrowy charakteryzu+,nast$u+,ce $arametry%
f cz0stotliwoOP -okres.,
A amplituda(
HkFad cyfrowy moBe rea-owana%
oziom sy!na"u -powyLej lubponiLej okreOlonej wartoOci.,
Zbocze sy!na"u -zmianawartoOci lo!icznej su!na"u z na * lub z * na .(
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
58/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 5"
rzebie!i czasowe podczas sterowania portem $H%rzebie!i czasowe podczas sterowania portem $H%
* cykl ze!arowy opnienia, !dy wyjOcie sterowane jest rejestrami
S%6RH&%6R(E cykle opnienia podczas zapisu ca"e!o portu-FE bit, ustwione bity rejestru $%[%BSR.
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
59/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 6#
%dczyt stanu prze"cznika%dczyt stanu prze"cznika
IJ
(ollin- loo$ Interru$t
Sy-naF asynchroniczny
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
60/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 61
Zarzdzanie sy!na"em ze!arowym urzdze/ peryferyjnyc#Zarzdzanie sy!na"em ze!arowym urzdze/ peryferyjnyc#
write[re!ister-M&[&4R,5**.\ HH erip#eral clocks J and ? are enabled(
write[re!ister-M&[&6R,5*.\ HH erip#eral clock J is disabled(
(MC (eri$heral Clock na*le e-istere-ister
7/25/2019 Rodzina Procesorw ARM
61/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 62
Rejestry odwzorowane w strukturze G powtrzenieRejestry odwzorowane w strukturze G powtrzenie
typedef >olatile unsi!ned int 'T1U\ HH 8ardware re!ister definition
typedef struct [A9+*S[$% ]
A9+*[R47 $%[4R\ HH $% 4nable Re!ister, FEGbit re!ister
A9+*[R47 $%[6R\ HH $% 6isable Re!ister
A9+*[R47 $%[SR\ HH $% Status Re!ister
A9+*[R47 Reser>ed^*_\ HH
A9+*[R47 $%[%4R\ HH %utput 4nable Re!ister
A9+*[R47 $%[%6R\ HH %utput 6isable Re!isterr
A9+*[R47 $%[%SR\ HH %utput Status Re!ister
A9+*[R47 Reser>ed*^*_\ HH
A9+*[R47 $%[$)4R\ HH $nput )ilter 4nable Re!ister
A9+*[R47 $%[$)6R\ HH $nput )ilter 6isable Re!ister
A9+*[R47 $%[$)SR\ HH $nput )ilter Status Re!ister
A9+*[R47 Reser>edE^*_\ HH
A9+*[R47 $%[S%6R\ HH Set %utput 6ata Re!ister
A9+*[R47 $%[&%6R\ HH &lear %utput 6ata Re!ister
A9+*[R47 $%[%6SR\ HH %utput 6ata Status Re!ister
` A9+*S[$%, A9+*S[$%\
7/25/2019 Rodzina Procesorw ARM
62/109
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
63/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 64
2ody liczbowe2ody liczbowe
B systemac# mikroprocesorowyc# wykorzystuje si0 nast0pujce systemyliczbowe
2od dziesi0tny, np( *d
2od binarny, np( **b-F
d.
2od semkowy, np( ***UE
-J+d.
2od szesnastkowy, np( 5@@# [email protected] pomi0dzy systemami liczbowymi
***(***b 54K
# C*J *D Y K C EF*
d
5AA# **(**
b EK Y E@ Y EF YE* C *E? Y FE Y? Y E C *K
d
5*F# K?
d
***(***(***(**
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
64/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 65
raca domowaraca domowa
rosz0 zapisaP nast0pujce liczby w brakujcyc# kodac# liczbowyc# -dec, #e5, bin,oct.
***(***(****(**b
5*EFJ#
@JDd
K?o
*EFd
5A3&64)#
*(***(*(***(****((***(**(***(**b
5A3&64)*E#
FEKD?d
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
65/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 66
'iczby ujemne'iczby ujemne
ByrLnia si0 dwa systemyreprezentacji liczb ujemnyc#
Zapis w kodzie znakGmodu",
Zapis w kodzie UE(
Nak zapisaP liczb0 w kodzie UE
:e!acja liczby, zwi0kszenie o *
rzyk"ady
G*d ****
UE
*d
*b
ne!( ***b ****
UE
G@@ 555UE
G*EK 555UE
G*E? 555UE
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
66/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 6
%peracje na pami0ci w j0zyku &%peracje na pami0ci w j0zyku &
>olatile unsi!ned int 6ata$nMemory C 5*\6ata$nMemory C \
6ata$nMemory C 5*EFJ@DK?\
6ata$nMemory C 5))))())))\
8ow to clear sin!le bit
8ow to set sin!le bit
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
67/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 6!
%peracje na rejestrac# w j0zyku &%peracje na rejestrac# w j0zyku &
>olatile unsi!ned c#ar %R9AC5J*(A\
%R9A C "51\
%R9A C !\
%R9A C "1"\
%R9A C V(OT' W "5\
%R9A C "51 W "5 W "5\
%R9A C X-"5 W "50.\%R9A C -"51 W "5.\
%R9A C "53\
$f -V(OT' Y 8"51 W "509. CC ](((`
w#ile -V(OT' Z "56. ](((`
do ](((` w#ile -V(OT' Y "50.
7/25/2019 Rodzina Procesorw ARM
68/109
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
69/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS #
%peracje na rejestrac# w j0zyku & -F.%peracje na rejestrac# w j0zyku & -F.
>olatile unsi!ned c#ar %R9AC5J*(A\
H macro for bitGmask H
gdefine LIT859 81 [[ 8599
%R9A C LIT8"9\
%R9A CXLIT819\
%R9A C LIT89\
H macro for settin! and clearin! bits H
gdefine S493$9-, 3. 8(9 W LIT8L9
gdefine &'R3$9-, 3. 8(9 Y XLIT8L9
STLIT-%R9A, K.\
CGLIT-%R9A, E.\
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
70/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 1
Re!ister &oncatenationRe!ister &oncatenation
int main->oid. ]
unsi!ned c#ar re!*C5*@, re!EC5@@\
unsi!ned c#ar C re!F, re!J\
unsi!ned int tmp\
H concatenation operation H
tmp C re!*\
tmp C tmpXX? re!E\
`
H deconcatenation operation H
re!F C tmp?\ H be careful wit# si!ned numbers H
re!J C tmp 5))\
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
71/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 2
Rejestry odwzorowane w strukturzeRejestry odwzorowane w strukturze
6eklaracja nowe!o typu danyc# tworzy szablon uk"adu rejestrw procesora w pami0ci( Rejestromzostaj przypisane nazwy symboliczne( Utworzono nowy typ danyc# 'T1S(IOoraz wskanikV'T1(S(IO na ten typ(
3rak informacji o dost0pie do rejestw -RHB. oraz wartoOci rejestrw po resecie(
B celu uzupe"nienia brakujcyc# informacji moLna umieOciP dodatkowe komentarze(
typedef struct [A9+*S[$% ] H Re!ister name RHB Reset >al( %ffset
A9+*[R47 $%[4R\ HH $% 4nable Re!ister B G 5
A9+*[R47 $%[6R\ HH $% 6isable Re!ister B G 5J
A9+*[R47 $%[SR\ HH $% Status Re!ister R G 5?
A9+*[R47 Reser>ed^*_\ HH
A9+*[R47 $%[%4R\ HH %utput 4nable Re!ister B G 5*
A9+*[R47 $%[%6R\ HH %utput 6isable Re!ister B G 5*J
A9+*[R47 $%[%SR\ HH %utput Status Re!ister B G 5*?
`
H blok rejestrw portw $H% $%A((($%4 H
gdefine 'T1CL'S(IO' 8'T1(S(IO9 "5?????"" HH -$%A. 3ase Address
H maska zerowe!o bitu portu A H
gdefine 'T1C(IO('" 81 [[ "9 HH in &ontrolled by A
7/25/2019 Rodzina Procesorw ARM
72/109
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
73/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 4
rzyk"ad rejestu sterujce!o timer czasu rzeczywiste!orzyk"ad rejestu sterujce!o timer czasu rzeczywiste!o
&& 77777777 TTCTM % 8TTC Offset% "5"9 eal7time Mode e-ister 77777777gdefine A9+*&[R99&[R9R4S -5)))) XX . HH -R99&. RealGtime 9imer rescaler Ialue
gdefine A9+*&[R99&[A'M$4: -5* XX *D. HH -R99&. Alarm $nterrupt 4nable
gdefine A9+*&[R99&[R99$:&$4: -5* XX *K. HH -R99&. Real 9ime 9imer $ncrement $nterrupt 4nable
gdefine A9+*&[R99&[R99RS9 -5* XX *?. HH -R99&. Real 9ime 9imer Restart
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
74/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 5
6efinicja rejestrw pliki na!"wkowe6efinicja rejestrw pliki na!"wkowe
gifndef [R%N4&9[8
gdefine [R%N4&9[8
H $nclude your A9+* 'ibrary files and specific compiler definitionsH
`include 'T1S'M637K.h
`include 'T1S'M63.h
gendif HH [R%N4&9[8
HGGGGGGGGGGGGGGGGGGGGGGGGHH '46s 6efinition HHGGGGGGGGGGGGGGGGGGGGGGGGH
gdefine A9+*3['46* A9+*&[$%[3? H 6S* H
gdefine A9+*3['46E A9+*&[$%[&E+ H 6SE H
gdefine A9+*3[:3['43 E
gdefine A9+*6[3AS4[$%['46* -A9+*&[3AS4[$%3.
gdefine A9+*6[3AS4[$%['46E -A9+*&[3AS4[$%&.
gdefine A9+*6[$6[$%['46* -A9+*&[$6[$%3.gdefine A9+*6[$6[$%['46E -A9+*&[$6[$%&.
HGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHH us# 3utton 6efinition HHGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGH
gdefine A9+*3[3* A9+*&[$%[&@ HH 'eft click
gdefine A9+*3[3E A9+*&[$%[&J HH Ri!#t click
gdefine A9+*6[3AS4[$%[3 A9+*&[3AS4[$%&
gdefine A9+*6[$6[$%[3 A9+*&[$6[$%&64
Systemy wbudowane
" # i i MS& di d '46 kl i
7/25/2019 Rodzina Procesorw ARM
75/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 6
"yta uruc#omieniowa MS& diody '46, klawiatura"yta uruc#omieniowa MS& diody '46, klawiatura
gdefine A9+*3['46* A9+*&[$%[3? H 6S* H
gdefine A9+*3['46E A9+*&[$%[&E+ H 6SE H
gdefine A9+*3[3* A9+*&[$%[&@ HH 'eft click
gdefine A9+*3[3E A9+*&[$%[&J HH Ri!#t clic
Systemy wbudowane
f H%2 fi j t $H%
7/25/2019 Rodzina Procesorw ARM
76/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS
2onfi!uracja portw $H% procesora2onfi!uracja portw $H% procesora
gdefine A9+*&[$%[3? -* XX ?. HH in &ontrolled by 3?
gdefine A9+*&[3AS4[$%3 -A9+*S[$%. 5)))))J HH -$%3. 3ase Address
Konfi-urac+a (ortu w try* we+bcia%
H 4nable t#e perip# clock for t#e $% controller, 9#is is mandatory w#en $% are confi!ured as input H
A9+*&[3AS4[M&GM&[&4R C -* XX A9+*&[$6[$%&64 .\ HH perip#eral clock enable re!ister -port &, 6, 4.
H Set t#e $% line in input H
A9+*&[3AS4[$%6G$%[%6R C 5()\ HH * Set direction of t#e pin to input
H Set t#e $% controller in $% mode instead of perip#eral mode H A9+*&[3AS4[$%6G$%[4R C A9+*&[$%[3?\ HH * 4nable $% to control t#e pin
Konfi-urac+a (ortu w try* wy+bcia%
H &onfi!ure t#e pin in output H
A9+*&[3AS4[$%3G$%[%4R C A9+*&[$%[3? \
H Set t#e $% controller in $% mode instead of perip#eral mode H
A9+*&[3AS4[$%6G$%[4R C 5))))())))\ HH * 4nable $% to control t#e pin
A9+*&[3AS4[$%4G$%[4R C A9+*&[$%[3F*\
H 6isable pullGup H
A9+*&[3AS4[$%AG$%[U6R C 5))))(\ HH * 6isable t#e $% pullGup resistor
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
77/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS !
Uk"ady do odmierzania czasu Gtimery procesora
Systemy wbudowane
9i9i
7/25/2019 Rodzina Procesorw ARM
78/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS "
9imery9imery
Timer ;urzdzenie peryferyjne procesora przeznaczone do odmierzaniaokreOlonyc# przedzia"w czasu -zliczania elementarnyc# cykli ze!arowyc#.(o odmierzeniu wyma!ane!o okresu czasu timer zwykle !enerujeprzerwanie( 9imery wykorzystywane s do odmierzania czasusystemowe!o, prze"czania wtkw, !eneracji opnie/(
(rzykFadEw ukFadEw sFuB,cych do odmierzania czasu%9imer $9 -an!( eriodic $nter>al 9imer, ro!rammable $nterrupt 9imer.,
9imer &zasu Rzeczywiste!o R99 -an!( RealG9ime 9imer.,
9imer BM -an!( ulse Bidt# Modulation.,
9imer uniwersalny 9& -an!( 9imer &ounter.,
9imer Batc#Gdo! B69(
Systemy wbudowane
7/25/2019 Rodzina Procesorw ARM
79/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS !#
Modu" timera $9-eriodic $nter>al 9imer.
Systemy wbudowane
S # t bl k ti $9S # t bl k ti $9
7/25/2019 Rodzina Procesorw ARM
80/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS !1
Sc#emat blokowy timera $9Sc#emat blokowy timera $9
Gicznik *ieB,cy
Gicznik $omocniczy
Systemy wbudowane
A t t " d i tiAutomatyczne prze"adowanie timera
7/25/2019 Rodzina Procesorw ARM
81/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS !2
Automatyczne prze"adowanie timeraAutomatyczne prze"adowanie timera
5
5)))))
$9SC*
%kres !enerowanyc# przerwa/
-$I[IA'U4Y*.H-*D &lk.
&lk C * M8z, $I C 5* C t$9C E,@ us
Systemy wbudowane
rzebie!i obrazujce prac0 timera $9rzebie!i obrazujce prac0 timera $9
7/25/2019 Rodzina Procesorw ARM
82/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS !3
rzebie!i obrazujce prac0 timera $9rzebie!i obrazujce prac0 timera $9
Systemy wbudowane
Rejestry timera $9Rejestry timera $9
7/25/2019 Rodzina Procesorw ARM
83/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS !4
Rejestry timera $9Rejestry timera $9
typedef struct S[$9 ] H Re!ister name RHB Reset >al( %ffsetA9+*[R47 $9[MR\ HH $9 Mode Re!ister RHB 5)()))) 5
A9+*[R47 $9[SR\ HH $9 Status Re!ister R 5( 5J
A9+*[R47 $9[$IR\ HH $9 er( $nt( Ial( Re!( R 5( 5?
A9+*[R47 $9[$$R\ HH $9 er( $nt( $ma!e Re!( R 5( 5&
` S[$9, S[$9\
H blok rejestrw portw $H% $%A((($%4 H
gdefine (IT -8(S(IT9 "5?????D3"9 HH -$9. 3ase Address
Systemy wbudowane
Rejestry timera $9Rejestry timera $9
7/25/2019 Rodzina Procesorw ARM
84/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS !5
Rejestry timera $9Rejestry timera $9
(ITS7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
1 "31
(ITS
C(I(IC
7/25/2019 Rodzina Procesorw ARM
85/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS !6
2ontroler przerwa/ A$&-Ad>anced $nterrupt &ontroller.
Systemy wbudowane
%bs"u!a sytuacji wyjtkowyc#%bs"u!a sytuacji wyjtkowyc#
7/25/2019 Rodzina Procesorw ARM
86/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS !
%bs"u!a sytuacji wyjtkowyc#%bs"u!a sytuacji wyjtkowyc#
Systemy wbudowane
ByjtkiByjtki
7/25/2019 Rodzina Procesorw ARM
87/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS !!
ByjtkiByjtki
)y+,tek 8an-. e5ce$tion9 mec#anizm kontroli przep"ywu danyc# wyst0pujcyw mikroprocesorac# oraz we wsp"czesnyc# j0zykac# pro!ramowania s"uLcy
do obs"u!i zdarze/ wyjtkowyc#, a w szcze!lnoOci sytuacji b"0dnyc#(Szcze!lnym przypadkiem wyjtku jest przerwanie(
Byjtki dzielimy na
przerwania -an!( interrupts.,
niepowodzenia -an!( fault.,
b"0dy nienaprawialne -an!( abort.,
pu"apki -an!( trap.(
rocesory ARM obs"u!uj dwa rodzaje przerwa/
?IJ-)ast interrupt. przerwania z szybk obs"u!,IJ-$nterrupt. przerwania normalne(
Systemy wbudowane
rzerwaniarzerwania
7/25/2019 Rodzina Procesorw ARM
88/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS !"
rzerwaniarzerwania
(rzerwanie 8an-. interru$t9lub Ldanie przerwania -$R; $nterrupt Re;uest. sy!na" powodujcy zmian0 przep"ywu sterowania, niezaleLnie od aktualnie
wykonywane!o pro!ramu( ojawienie si0 przerwania powoduje wstrzymanieaktualnie wykonywane!o pro!ramu i wykonanie przez procesor kodu proceduryobs"u!i przerwania, uc#wytu przerwania -an!( interrupt #andler.(
B procesorac# ARM wystpienie przerwania powoduje ustawienie fla!i w rejestrzestatusowym sy!nalizujcej Ldanie obs"u!i przerwania( NeLeli system przerwa/jest aktywny -rdze/ procesora. oraz dane przerwanie nie jest zamaskowane
-sterownik przerwa/. nast0puje przyj0cie przerwania przez procesor G skok dopro!ramu obs"u!ujce!o przerwanie(
rzyk"ady przerwa/
odebranie lub zako/czenie transmisji danej przez port szere!owy,
zmiana stanu wyprowadzenia portu procesora(
Stan urzdzenia moLna sprawdzaP pro!ramowo, jednak wyma!a to ci!"e!osprawdzania stanu rejestru statusowe!o( 9aka operacja nazywana jestodpytywaniem -an!( poollin!.( owoduje to znaczne obciLenie procesora, np(transmisja jedne!o znaku zajmuje ok( * us -procesor moLe w tym czasiewykonaP kilka tysice operacji.(
Systemy wbudowane
Rejestr statusowy SSR procesora ARMRejestr statusowy SSR procesora ARM
7/25/2019 Rodzina Procesorw ARM
89/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS "#
Rejestr statusowy SSR procesora ARMRejestr statusowy SSR procesora ARM
2731
N Z C V Q
28 67
I F T mode
1623 815 5 4 024
f s x c
U n d e f i n e dJ
)skaniki stanuI przepe"nie podczas operacji A'U -oIerflow.
& przeniesienieHpoLyczka podczas operacjiA'U
Z ujemny wynik podczas operacji A'U
: ujemny wynik operacji A'Ulub Vmniejszy niLW
)skaniki dost$ne +edynie dla architektury2T&4
N rocesor w trybie Nazelle
; Sticky %>erflow wskanik nasyceniapodczas operacji A'U -;A66, ;6A66, ;SU3or ;6SU3, lub rezultat operacji SM'A5y orSM'AB5 przekracza FEGbity.
(rzerwania$C* rzerwania $R; wy"czone
)C* rzerwania )$; wy"czone
)skaniki dost$ne dla arch. 5T9C 9ryb pracy ARM
9C* 9ryb pracy 9#umb
Try* $racy $rocesora6efiniuj jeden z K trybw operacyjnyc#
rdzenia procesora
Systemy wbudowane
%bs"u!a sytuacji wyjtkowyc#%bs"u!a sytuacji wyjtkowyc#
7/25/2019 Rodzina Procesorw ARM
90/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS "1
%bs"u!a sytuacji wyjtkowyc#%bs"u!a sytuacji wyjtkowyc#
Bykonanie niedozwolonej operacji przez procesor w danym stanieuprzywilejowania powoduje wy!enerowanie wyjtku(
%bs"u!a wyjtku obejmuje wszystkie operacje od momentu wykryciab"0du do pobrania pierwszej instrukcji obs"u!ujcej sytuacj0wyjtkow(
*( a. Bykonanie kopii &SR SSR oraz & -r*@. 'ink Re!ister -r*J.,
b. rzejOcie do trybu ARM -z trybu 9#umb lub Nazelle.,c. rzejOcie do trybu obs"u!i przerwa/ -)$;H$R;. lub wyjtkw,
d. Ustawienie maski $R; na poziomie z!"aszane!o przerwania -lub wy"czenie
przerwa/.(
e. rze"czenie banku rejestrw,
f. Uaktywnienie rejestru SSR(
E( %kreOlenie wektora obs"u!iwane!o wyjtku -przerwania.(F( %bliczenie adresu pierwszej instrukcji procedury obs"u!ujcej dany wyjtek
-przerwanie.(
Systemy wbudowane
owrt z obs"u!i sytuacji wyjtkowyc#owrt z obs"u!i sytuacji wyjtkowyc#
7/25/2019 Rodzina Procesorw ARM
91/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS "2
owrt z obs"u!i sytuacji wyjtkowyc#owrt z obs"u!i sytuacji wyjtkowyc#
*( a. %dtworzenie rejestru &SR -r*@.,
b. & -'ink Re!ister r*J.,
c. owrt do wykonywane!o rozkazu(
?IJ
I.J
8.eser/ed9Data '*ort
(refetch '*ort
Software Interru$t
Hndefined Instruction
.eset
,5*&
,5*?
,5*J
,5*,
,5,&
,5,?
,5,J
,5,,
9ablica wektorw przerwa/ umieszczona po
resecie pod adresem 5(
9ablice moLna przesunP pod adres
5))))( -ARM KH+H*.(
)ra!ment pami0ci
Systemy wbudowane
Struktura stosu -*.Struktura stosu -*.
7/25/2019 Rodzina Procesorw ARM
92/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS "3
Struktura stosu -*.Struktura stosu -*.
Stos8an-. stack lu* GI?O Gast7In@ ?irst7Out9 7liniowa struktura danyc#, w ktrej dane odk"adane s
na wierzc# stosu i z wierzc#o"ka stosu s zdejmowane($de0 stosu danyc# moLna zilustrowaP jako stospo"oLonyc# jedna na dru!iej ksiLek nowye!zemplarz k"adzie si0 na wierzc# stosu i z wierzc#ustosu zdejmuje si0 kolejne e!zemplarze( 4lementystosu poniLej wierzc#o"ka stosu moLna wy"cznie
obejrzeP, aby je Oci!nP, trzeba najpierw po koleiOci!nP to, co jest nad nimi
?I?O 8an-. ?irst In@ ?irst Out9 7przeciwie/stwemstosu '$)% jest kolejka, bufor typu )$)% -pierwszy na
wejOciu, pierwszy na wyjOciu., w ktrym daneobs"u!iwane s w takiej kolejnoOci, w jakiej zosta"ydostarczone -jak w kolejce do kasy.
Systemy wbudowane
Struktura stosu od"oLenie danej na stosStruktura stosu od"oLenie danej na stos
7/25/2019 Rodzina Procesorw ARM
93/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS "4
Struktura stosu od"oLenie danej na stosStruktura stosu od"oLenie danej na stos
5(
5*(
S C R*F
%statnio od"oLona dana
nG*
pole wolne
pole wolneS C R*F
ZawartoOP rejestrw
R*,RE,RF,RKGR+
re+estr 13 7 wskanik stosu
S9M63 S, ]lista rejestrw` zmniejszenie S o EJ, od"oLenie zawartoOci rejestrw na
S9M63 S, ]R*,RE,RF,RKGR+` stos,
Systemy wbudowane
Struktura stosu zdj0cie danej ze stosuStruktura stosu zdj0cie danej ze stosu
7/25/2019 Rodzina Procesorw ARM
94/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS "5
Struktura stosu zdj0cie danej ze stosuStruktura stosu zdj0cie danej ze stosu
5(
5*(
S C R*F
%statnio od"oLona dana
nG*
pole wolne
pole wolneS C R*F
ZawartoOP rejestrw
R*,RE,RF,RKGR+
re+estr 13 7 wskanik stosu
'6M$A S, ]lista rejestrw` zwi0kszenie S o EJ, od"oLenie zawartoOci rejestrw na
'6M$A S, ]R*,RE,RF,RKGR+` stos,
Systemy wbudowane
Sc#emat blokowy sterownika przerwa/ procesora ARMSc#emat blokowy sterownika przerwa/ procesora ARM
7/25/2019 Rodzina Procesorw ARM
95/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS "6
Sc#emat blokowy sterownika przerwa/ procesora ARMSc#emat blokowy sterownika przerwa/ procesora ARM
%bs"u!a przerwa/ wektorowyc#,
%bs"u!a do FE przerwa/ zewn0trznyc# i wewn0trznyc#,
MoLliwoOP maskowania dowolne!o przerwania,
%bs"u!a przerwa/ n$R; i szybkic# n)$R -an!( )ast $nterrupt Reuest.,
? poziomw priorytetw -G najniLszy, KG najwyLszy.,
%bs"u!a przerwa/ wyzwalanyc# poziomem lub zboczem(
Systemy wbudowane
Sc#emat blokowy sterownika przerwa/ procesora ARMSc#emat blokowy sterownika przerwa/ procesora ARM
7/25/2019 Rodzina Procesorw ARM
96/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS "
Sc#emat blokowy sterownika przerwa/ procesora ARMS y p p
Sterownik przerwa/ wykorzystuje ze!ar systemowy( Ze!ar doprowadzany jestprzez ca"y czas pracy procesora -nie ma moLliwoOci odci0cia ze!ara.(
rzerwania mo! zostaP wykorzystane do wyprowadzenia procesora ze stanuuOpienia -$dle mode.(
rzerwanie o numerze -)$;. jest zawsze przerwaniem typu )$;(
rzerwanie o numerze * -S=S. sum lo!iczn przerwa/ od urzdze/peryferyjnyc# procesora( B procedurze obs"u!i przerwania naleLy okreOliPurzdzenieHa z!"aszajce przerwanieHa(
rzerwania o numerac# EGF* -$6EG$6F*. mo! zostaP do"czone do urzdze/peryferyjnyc# -uLytkownika. lub portw $H%(
Sterownik obs"u!uje przerwania wyzwalane poziomem lub zboczem sy!na"u(
Systemy wbudowane
rzerwania wsp"dzielonerzerwania wsp"dzielone
7/25/2019 Rodzina Procesorw ARM
97/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS "!
rzerwania wsp"dzielonep
3lok urzdze/ systemowy -A9+*&[$6[S=S. dysponuje jednym, wsplnymprzerwaniem S=S -an!( s#ared interrupt. o numerze $6C*, ktre obejmujenast0pujce urzdzenia
timery $9, R99, B69,
interfejs dia!nostyczny 637U,
Sterownik 6MA M&,
Uk"ad zerowania procesora RS9&,Sterownik pami0ci M&(
B procedurze obs"u!i przerwania S=S naleLy sprawdziP kolejno stan wszystkic#urzdze/, czy wyst0puj przerwania odmaskowane( NeLeli przerwanie jestaktywne naleLy sprawdziP fla!0 sy!nalizujc przerwanie w rejestrze statusudane!o urzdzenia( NeLeli fla!a jest ustawiona naleLy wykonaP pro!ram
zwizany z obs"u! przerwania od dane!o urzdzenia(
Systemy wbudowane
Szcze!lowy sc#emat blokowy sterownika A$&Szcze!lowy sc#emat blokowy sterownika A$&
7/25/2019 Rodzina Procesorw ARM
98/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS ""
! y y! y y
Systemy wbudowane
rzerwania wewn0trznerzerwania wewn0trzne
7/25/2019 Rodzina Procesorw ARM
99/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 1##
00
Maska przerwa/ A$&[$4&RH$6&R -status A$&[$MR.,
Byczyszczenie fla!i przerwania podczas odczytu rejestru A$&[$IR -przerwania)$; A$&[)IR.,
Status przerwa/ dost0pny w rejestrze A$&[$R
Systemy wbudowane
rzerwania zewn0trznerzerwania zewn0trzne
7/25/2019 Rodzina Procesorw ARM
100/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 1#1
00
MoLliwoOP wyboru zbocza opadajce!oHnarastajce!o lub poziomuniskie!oHwysokie!o do !eneracji przerwa/(
Systemy wbudowane
6efinicja numerw urzdze/ peryferyjnyc#6efinicja numerw urzdze/ peryferyjnyc#
7/25/2019 Rodzina Procesorw ARM
101/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 1#2
j p y yj yj p y yj y
HH
HH 4R$84RA' $6 64)$:$9$%:S )%R A9+*SAM+EDF
HH
gdefine A9+*&[$6[)$; - . HH Ad>anced $nterrupt &ontroller -)$;.
gdefine A9+*&[$6[S=S - *. HH System &ontroller
gdefine A9+*&[$6[$%A - E. HH arallel $% &ontroller A
gdefine A9+*&[$6[$%3 - F. HH arallel $% &ontroller 3
gdefine A9+*&[$6[$%&64 - J. HH arallel $% &ontroller &, arallel $% &ontroller 6, arallel $% &ontroller 4
gdefine A9+*&[$6[US - K. HH USAR9 gdefine A9+*&[$6[US* - ?. HH USAR9 *
gdefine A9+*&[$6[USE - +. HH USAR9 E
gdefine A9+*&[$6[M&$ -*. HH Multimedia &ard $nterface
gdefine A9+*&[$6[M&$* -**. HH Multimedia &ard $nterface *
gdefine A9+*&[$6[&A: -*E. HH &A: &ontroller
gdefine A9+*&[$6[9B$ -*F. HH 9woGBire $nterfacegdefine A9+*&[$6[S$ -*J. HH Serial erip#eral $nterface
ID"@ ID3"731 $rzerwania zewntrzne@ $ozostaFe to $rzerwania wewntrzne.
Systemy wbudowane
Rejestry sterownika przerwa/ -*.Rejestry sterownika przerwa/ -*.
7/25/2019 Rodzina Procesorw ARM
102/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 1#3
j y p - .
Systemy wbudowane
Rejestry sterownika przerwa/Rejestry sterownika przerwa/
7/25/2019 Rodzina Procesorw ARM
103/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 1#4
j y
typedef struct [A9+*S[A$& ]
A9+*[R47 A$&[SMR^FE_\ HH Source Mode Re!ister
A9+*[R47 A$&[SIR^FE_\ HH Source Iector Re!ister
A9+*[R47 A$&[$IR\ HH $R; Iector Re!ister
A9+*[R47 A$&[)IR\ HH )$; Iector Re!ister
A9+*[R47 A$&[$SR\ HH $nterrupt Status Re!ister
A9+*[R47 A$&[$R\ HH $nterrupt endin! Re!ister
A9+*[R47 A$&[$MR\ HH $nterrupt Mask Re!ister
A9+*[R47 A$&[&$SR\ HH &ore $nterrupt Status Re!ister
(((
` A9+*S[A$&, A9+*S[A$&\
gdefine A9+*&[3AS4[A$& -A9+*[&AS9-A9+*S[A$&. 5))))). HH -A$&.3ase Address
Systemy wbudowane
Rejestry sterownika przerwa/ -E.Rejestry sterownika przerwa/ -E.
7/25/2019 Rodzina Procesorw ARM
104/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 1#5
'ICSM3\ && Source Mode e-ister ; konfi-urac+a $oziomu oraz s$oso*u wyzwalania
'ICS3\ && Source ector e-ister ; handlery o*sFu-u+,ce $rzerwania
'ICI\ && IJ ector e-ister ; adres handlera na o*sFu-iwane-o $rzerwania
A$&[)IR\ HH )$; Iector Re!ister adres #andlera na obs"u!iwane!o przerwania
A$&[$SR\ HH $nterrupt Status Re!ister numer obs"u!iwane!o przerwania
A$&[$R\ HH $nterrupt endin! Re!ister rejestr z fla!ami ocz0kujcyc# przerwa/ GF*
A$&[$MR\ HH $nterrupt Mask Re!ister rejestr z maskami przerwa/ GF*
A$&[&$SR\ HH &ore $nterrupt Status Re!ister stan przerwa/ rdzenia $R;H)$;
'ICIC\ && Interru$t na*le Command e-ister ; re+estr uaktywnia+,cy $rzerwania
A$&[$6&R\ HH $nterrupt 6isable &ommand Re!ister rejestr wy"czajcy przerwania
'ICICC\ && Interru$t Clear Command e-ister ; re+estr ustawia+,cy fla-i $rzerwa:
A$&[$S&R\ HH $nterrupt Set &ommand Re!ister rejestr kasujcy fla!i przerwa/
'ICOIC\ && nd of Interru$t Command e-ister ; koniec o*sFu-i $rzerwania
A$&[SU\ HH Spurious Iector Re!ister #andler do przerwania fa"szywe!o
Systemy wbudowane
rocedura obs"u!ujca przerwanie od timera $9 i klawiaturyrocedura obs"u!ujca przerwanie od timera $9 i klawiatury
7/25/2019 Rodzina Procesorw ARM
105/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 1#6
Hstawienie adresu funkc+i 8handlera9 o*sFu-u+,ce-o $rzerwanie 8adres 37*itowy9
A9+*&[3AS4[A$&GA$&[SIR^A9+*&[$6[S=S_ C -unsi!ned lon!. 9$M4R[#andler\
(rocedura o*sFu-i $rzerwania od timera
>oid 9$M4R[#andler ->oid. ]
%dczyt rejestru statutowe!o $9&[$SR
jeLeli fla!a od timera $:9[4:A3'4 jest ustawiona -rejestr $9&[$MR. to odczytrejestru $9&[$IR G skasowanie fla!i przerwania
jeLeli nie to inne urzdzenie peryferyjne z!"osi"o przerwanie odpowiednia reakcja
`
(rocedura o*sFu-i $rzerwania od klawiatury
>oid 3U99%:[#andler ->oid. ]
%dczyt rejestru statutowe!o $%[$SR G skasowanie fla!i przerwania
jeLeli fla!a na odpowiednim bicie rejestru $%[$SR jest ustawiona to oznacza towciOni0cie przycisku
`
Systemy wbudowane
2onfi!uracja przerwa/ od klawiatury2onfi!uracja przerwa/ od klawiatury
7/25/2019 Rodzina Procesorw ARM
106/109
Katedra Mikroelektroniki i Technik Informatycznych DMCS 1#
(rzyciski doF,czone s, do $ortu C ; $rzerwania -enerowane $rzezukFady we+bciowe $ortu C&D& 8maska 'T1CID(IOCD9
Konfi-urac+a $rzerwa: od $ortEw C&D&%
*( 2onfi!uracja portw procesora jako porty wejOciowe -przycisk lewy i prawy.
E( By"czenie przerwa/ !enerowanyc# przez porty &H6H4 -rejestr A$&[$6&R,A9+*&[$6[$%&64.
F( Ustawienie wskanika do procedury obs"u!ujcej przerwanie dla portw &H6H4 w tablicywektorw SIR -A$&[SIR^A9+*&[$6[$%&64_.
J( 2onfi!uracja poziomu i metody wyzwalania przerwania -rejestr A$&[SMR, wyzwalaniewysokim poziomem A9+*&[A$&[SR&9=4[4
7/25/2019 Rodzina Procesorw ARM
107/109
7/25/2019 Rodzina Procesorw ARM
108/109
Systemy wbudowane
)unkcje obs"u!ujce przerwania w j0zyku & -E.)unkcje obs"u!ujce przerwania w j0zyku & -E.
7/25/2019 Rodzina Procesorw ARM
109/109
.size Open_INTButtons, .-Open_INTButtons
.align 2
.global INTButton_handler
INTButton_handler:
( In)err*") +er,ice -o*)ine.
@ args = 0, pretend = 0, ra!e = "
@ ra!e_needed = #, uses_anon$!ous_args = 0
str ip, %sp, &-'() ** store +#2
!o ip, sp ** !oe sp to ip
s)mfd s"/& 0r1& r2& r3& f"& i"& $r& "c
sub p, ip, &' ** alloate datara!e
sub sp, sp, &" ** on sta or loal
** data
'ci56 "ro7r'm o8s*7*9:c6 "r;er5'nie
sub sp, p, &2' ** re!. ra!e ro! st
$dmfd s"& 0r1& r2& r3& f"& s"& $r
$dmfd s"/& 0i"