Rodzina Procesorów ARM

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"