4EA_Tugas RTOS.docx

download 4EA_Tugas RTOS.docx

of 17

Transcript of 4EA_Tugas RTOS.docx

  • 7/25/2019 4EA_Tugas RTOS.docx

    1/17

    TUGAS UTS

    SISTEM EMBEDDED

    PENERAPAN RTOS AVRILOS PADA PENJADWALAN

    PENYALAAN LED

    Oleh :

    1. AgusApr!"#$r$ 111%1&1%%'

    &. D$() R$*!"#$ 111%1&1%%+

    D$se"Pe"g!*pu :

    A)h*!( ,e"(r!-!" S.T. M.T.

    PROGRAM STUDI DIPLOMA /

    TE0NI0 ELE0TRONI0A

    DEPARTEMEN TE0NI0 ELE0TRO

    POLITE0NI0 ELE0TRONI0A NEGERI SURABAYA

    SURABAYA

    &%1

  • 7/25/2019 4EA_Tugas RTOS.docx

    2/17

    BAB I

    PENDA,ULUAN

    A. TUJUANDengan melakukan pengerjaan project berupa PENERAPAN RTOS AVRILOS

    PADA PENJADWALAN PENALAAN LED! menggunakan AVRILOS" ma#a$%$&a

    '%#arapkan mampu(

    )* +ema#am% pr%n$%p kerja $ecara men'a$ar 'ar% $ebua# $,$tem 'engan RTOS-* +enjalankan 'an mema#am% System berba$%$ RTOS ,ang tela# '%kembangkan

    ole# p%#ak la%n pa'a AVR.* +engert% $truktur 'an jen%$ penja'&alan $erta /ung$%0/ung$% pa'a RTOS ,g '%p%l%#1* +engapl%ka$%kan pa'a berupa penja'&alan pen,alaan LED*

    B. LANDASANTEORIDalam pro$e$ pengerjaan project %n%" ber%kut a'ala# beberapa teor% penunjang

    ,ang penul%$ gunakan ()* RTOS

    RTOS atau kepanjangan 'ar% Real0T%me Operat%ng S,$tem merupakan

    $ebua# $%$tem opera$% real0t%me ,ang '%mak$u'kan untuk mela,an% 'ata real0t%me

    pro$e$ apl%ka$%" b%a$an,a tanpa penun'aan bu//er%ng* Per$,aratan &aktu

    pemro$e$an 2terma$uk keterlambatan OS3 '%ukur 'alam $eper$epulu# 'et%k atau

    leb%# pen'ek*

    4arakter%$t%k utama 'ar% $ebua# RTOS a'ala# t%ngkat kon$%$ten$% mengena%

    jumla# &aktu ,ang '%butu#kan untuk mener%ma 'an men,ele$a%kan tuga$ $ebua#apl%ka$%5 6ar%ab%l%ta$ a'ala# j%tter* Sebua# $%$tem opera$% real0t%me kera$ mem%l%k%

    j%tter kurang 'ar% $%$tem opera$% lembut real0t%me* Tujuan utama 'e$a%n t%'ak

    t#roug#put ,ang t%ngg%" mela%nkan jam%nan 'ar% kategor% k%nerja lembut atau

    kera$* RTOS ,ang b%a$an,a atau umumn,a 'apat memenu#% tenggang &aktu

    a'ala# lembut real0t%me OS" tetap% j%ka 'apat memenu#% tenggat &aktu

    'eterm%n%$t%k %tu a'ala# real0t%me OS kera$*

    RTOS mem%l%k% algor%tma ,ang cangg%# untuk penja'&alan* 7lek$%b%l%ta$

    $c#e'uler memungk%nkan leb%# lua$" komputer0$%$tem orke$tra$% pr%or%ta$ pro$e$"

    tap% real0t%me OS leb%# $er%ng '%'e'%ka$%kan untuk $atu $et $emp%t apl%ka$%* 7aktorutama 'alam real0t%me OS a'ala# latenc, %nterrupt m%n%mal 'an m%n%mal

    $&%tc#%ng t#rea' latenc,5 real0t%me OS bern%la% leb%# untuk $eberapa cepat atau

    $eberapa '%'uga 'apat mere$pon 'ar%pa'a jumla# pekerjaan %tu 'apat melakukan

    'alam jangka &aktu tertentu*

    Algor%tma ,ang umum '%gunakan pa'a RTOS a'ala#(

    8ooperat%6e $c#e'ul%ng

    Preempt%6e $c#e'ul%ng

    Rate0monoton%c $c#e'ul%ng

    Roun'0rob%n $c#e'ul%ng

    7%9e' pr%or%t, pre0empt%6e $c#e'ul%ng" an %mplementat%on o/ preempt%6e t%me

    $l%c%ng

    1

  • 7/25/2019 4EA_Tugas RTOS.docx

    3/17

    7%9e'0Pr%or%t, Sc#e'ul%ng &%t# De/erre' Preempt%on

    7%9e'0Pr%or%t, Non0preempt%6e Sc#e'ul%ng

    8r%t%cal $ect%on preempt%6e $c#e'ul%ng

    Stat%c t%me $c#e'ul%ng

    Earl%e$t Dea'l%ne 7%r$t approac#

    Stoc#a$t%c '%grap#$ &%t# mult%0t#rea'e' grap# tra6er$al

    -* AVRILOSS%$tem Embe''e' $e'er#ana Operat%ng S,$tem 7rame&ork ,ang

    memungk%nkan pe$atn,a perkembangan membangun apl%ka$% untuk keluarga AVR

    tetap% 'apat port%ng ke ar$%tektur la%n cukup mu'a#* S%$tem mult%ta$k%ng Roun'0

    Rob%n 8o0operat%6e*

    +en'ukung(a* :ART" S,$T%ck T%mer" AD8" SPI" EEPRO+" PW+*

    b* Juga men'ukung( ;%l%n9 7P

  • 7/25/2019 4EA_Tugas RTOS.docx

    4/17

    a* Struktur '%rektor%

    A'a 'ua bag%an utama 'ar% '%rektor%" ,a%tu @ar'&are 2@W3 'an

    So/t&are2SW3)B D%rektor% #ar'&are ber%$% tentang #ar'&are ,ang '%rekomen'a$%kan

    ole# pembuat" ba%k $kemat%k 'an P8C /%le" kemu'%an juga 'engan

    penerapan AVRILOS pa'a 7P

  • 7/25/2019 4EA_Tugas RTOS.docx

    5/17

    6%* %nclu'e" ber%$% global 'e/%n%t%on 'an pengaturan 'e6%ce ,ang

    akan ter#ubung 'engan OS %n%*

    Des)rps )er"el

    4ernel*c ko'e %n%$%al%$a$% 'an loop utama* Selama maka $tartup 4ernelmengek$eku$% berbaga% %n%$%al%$a$% $et%ap mo'ul > per%per%al * Progam

    %n%$%al%$a$% '% bag% menja'% bag%an bag%an tertentu $e#%ngga progam

    menja'% mo'ular 'an mu'a# untuk '% mo'%/%ka$%*Sc#e'uler menggunakan penja'&alan roun'0rob%n* Set%ap cek tuga$ #aru$

    '%p%cu 'ar% beberapa /lag $epert% t%mer S,$T%ck 2Dalam per%p#%nt >

    T%mer*c3 (

    8ek untuk mel%#at ba#&a t%mer %nterrupt tela# '%tan'a% bS,$T%ck 2C%t3

    '% 6S,$Stat2Var%able3" j%ka t%'ak a'a #an,a keluar* J%ka ,a menjalankan$emua /ung$% ,ang a'a* 4a$u$ la%n akan menguj% apaka# a'a 'ata baru

    'alam port $er%al 2$epert%appl%c > $er%al > SerApp*c3 atau t%'ak*Ja'% untuk membuat tuga$ baru 2apl%ka$%" perangkat 'll3 tak$ baru t%'ak

    #aru$ memblok%r $%$tem atau menunggu terlalu lama* 4#u$u$n,a

    pelak$anaan penun'aan $emua /ung$% t%'ak bole# meleb%#% &aktu S,$T%ck*

    J%ka t%'ak a'a alternat%/(" antara men%ngkatkan %nter6al S,$t%ck atau

    mengurang% pemblok%ran &aktu*

    Des)ps *$(ul

    A'a beberapa mo'ul" ,a%tu S,$t%ck" :ART" Debugger 'an mo'ule ,angla%n" namun ,ang akan '%ba#a$ #an,a mo'ul S,$t%ck*S,$T%ck mo'ul melakukan $emua /ung$% &aktu utama* 8onto#

    menge'%pkan LED" mem%cu AD8 untuk memula% kon6er$% baru" mem%cu

    ak#%r L8+ keterlambatan" mem%cu ke,boar' /ung$% pem%n'a%an 'an juga

    mem%l%k% t%mer $o/t&are* :ntuk mengakt%/kan $,$t%ck" #an,a men$et 2b%t3

    ,ang bera'a '% 6S,$Stat* :ntuk menguba# %nter6al &aktu memo'%/%ka$%

    kon$tanta > %/ct%me*#

    4

  • 7/25/2019 4EA_Tugas RTOS.docx

    6/17

    Se$ua% 'e/%n%$% akt%6a$% b%t '%n,atakan 'alam mel%put% > $ett%ng$*#(

    Waktu t%ck 'apat '%ruba# $e$ua% kebutu#an" $e'angkan j%ka meng%nkan

    T%mer la%n 'apat menamba#kan #%ngga 1 t%mrt ,a%tu

    Satuan 'alam mS" conto# )mS

    T%mer '%ata$ mempu,a% &aktu )mS " untuk mengecek apaka# $u'a#

    )mS menggunakan %ntruk$%

    'an untuk meng#ent%kan T%mer menggunakan

    5

  • 7/25/2019 4EA_Tugas RTOS.docx

    7/17

    BAB II

    PEMBA,ASAN

    A. PERALATANPa'a pro$$e$ pengerjaan project %n%" penul%$ menggunkan beberapa alat 'an

    ba#an $ebaga% ber%kut(

    )* +%n%mum S,$tem Atmel AT+ega )=-* I>O LED 'an Tombol.* Po&er Suppl,1* Do&nloa'er :SC0$ASPF* P8 'engan $o/t&are te9t e'%tor 2Subl%me" Notepa'GG" Notepa'3=* 8omman' Promp

    B. RANG0AIAN MI0RO0ONTROLER

    Dar% pro$$e$ kaj%an pu$taka ,ang tela# '%lakukan" maka '%lakukukan pem%l%#an

    8#%p ,ang '%gunakan 'engan 'a$ar minimum requirement'an $pe$%/%ka$%>$,arat &aj%b

    penuga$an* Cer%kut a'ala# gambar $kemat%k 'an @ar'&are ,ang '%gunakan untuk

    ob$er6a$% %n%(

  • 7/25/2019 4EA_Tugas RTOS.docx

    8/17

  • 7/25/2019 4EA_Tugas RTOS.docx

    9/17

    2. PEMROGAMAN

    Per$oalan ,a%tu

    +en,alakan LED ) $et%ap ) 'et%k" mat% ) 'et%k

    +en,alakan LED - $et%ap - 'et%k" mat% - 'et%k

    J%ka Tombol '%tekan LED . men,ala 1 'et%k)* +elakukan pem%l%#an c#%p pa'a '%rektor%

    Hcon/%gH#&*%n

    put t#e name o/ t#e target mcu #ere 2at$?F)F" at$?F.F" att%n,--" atmega=. etc*3 +8: K at$?F)F +8: K atmega)=1p +8: K atmega)=. +8: K atmega.-. +8: K atmega)= +8: K atmega?

    +8: K atmega.-

    -* +elakukan #ar&are untuk jalur pemrogaman menggunakan :SC ASPHcon/%gHen6*%n 'e/%ne $ome 6ar%able$ ba$e' on t#e AVR ba$e pat# %n 2AVR3 AVR88 K a6r0gccAVRASK a6r0gcc 09 a$$embler0&%t#0cppR+ K rm 0/ RN K m6AVRCIN K a6r0objcop,AVRSIME K a6r0$%eIN8DIR K *LICDIR K 2AVR3>a6r>l%bS@ELL K 2AVR3>b%n>$#*e9eAVRPRO< K a6real.-*e9eAVRPRO

  • 7/25/2019 4EA_Tugas RTOS.docx

    10/17

    'e/%ne LED.On PORTAKQ2)LED.3'e/%ne LED.O// PORTAK2)LED.3

    'e/%ne LA+ATI84 -5

    'e/%ne c+LEDTI+ERID > 8oul' be an, SW t%mer up to2c+A;SWTI+ERS0)3" 'e/%ne' %n $rc>%nclu'e$>%/ct%me*# >>> Appl%cat%on In%t%t%al%at%on calle' be/ore 4ernel ma%n loop6o%' /In%tAppl%c26o%'3U>> %n%t%al%e I>O 2our /unct%on>co'e3DDRAK9//5 PORTAK9//5 DDRCK95 PORTCK9//5

    >> Set SW T%mer to ,our 'ela, 2Fm$3 6S&T%mermSc+LEDTI+ERIDB K LA+ATI845

    >> LED O// 2our /unct%on>co'e3

    Progam untuk penja'e&alan pen,alaan LED ) 'an -

    >> 7unct%on calle' b, t#e ma%n kernel loop 2ta$k3>> S#oul' not block>> T#%$ proce$$ run$ on e6er, Appl%cat%on T%ck>> :$e t#%$ /or t%me' e6ent #an'l%ng

    un$%gne' c#ar #%tungK" #%tung-K"/lagCTombol)K56o%' /Appl%cT%ck26o%'3U>> T%mer E9p%re' >> Akt%/ $etela# ) 'et%k %/ 26S&T%mermSc+LEDTI+ERIDB KK 3 U >> T%mer E9p%re'" re$tart 6S&T%mermSc+LEDTI+ERIDB K LA+ATI845 >> LED Toggle 2our co'e>/unct%on3 #%tungGG5

    %/2/lagCTombol)KK)3 U #%tung-005 LED.On5

    LED)toogle5

    %/ 2#%tungKK-3 U

    LED-toogle5 #%tungK5

    9

  • 7/25/2019 4EA_Tugas RTOS.docx

    11/17

    %/2#%tung-KK)3 U LED.O//5 /lagCTombol)K5

    Progam untuk pen,alaan LED . 'engan tombol )

    >> 7unct%on calle' b, t#e ma%n kernel loop 2ta$k3>> S#oul' not block>> T#%$ proce$$ run$ cont%nuou$l, on t#e ma%n loop>> :$e t#%$ %/ ,ou nee' no &a%t t%me on eac# run6o%' /Appl%c8ont26o%'3

    U %/ 2X2PINC2)TO+COL)333 U %/2/lagCTombol)KK3 U #%tung-KF5 /lagCTombol)K)5

    10

  • 7/25/2019 4EA_Tugas RTOS.docx

    12/17

    :ntuk 'o&nloa' progam menggunakan comman' promt ,a%tu $ebaga% ber%kut()* +a$uk '%rektor, 'ar% make/%le

    -* 4et%k make l%$t untuk mel%#at %n$truk$% ,ang a'a

    .* 4et%k make clean untuk member$%#kan /%le la$t bu%l'

    )1* 4et%k make all untuk mengcomp%le

    11

  • 7/25/2019 4EA_Tugas RTOS.docx

    13/17

    F* 4et%k make prog$p untuk men'o&nloa' progam

    12

  • 7/25/2019 4EA_Tugas RTOS.docx

    14/17

    BAB III

    PENUTUP

    A. A"!ls!Dar% $eluru# rangka%an pro$e$ pa'a project %n% penul%$men'apatkanbeberapa anal%$a

    '%antaran,a a'ala#$ebaga% ber%kut(

    )* RTOS atau kepanjangan 'ar% Real0T%me Operat%ng S,$tem merupakan $ebua# $%$tem

    opera$% real0t%me,ang '%mak$u'kan untuk mela,an% 'ata real0t%me pro$e$ apl%ka$%"

    b%a$an,a tanpa penun'aan bu//er%ng* S,$tem RTOS juga 'apat '%jalankan pa'a

    +%krokontroller keluarga 8orte9 maupun AVR 'engan pr%n$%p kerja $epert% %nterrupt

    t%mer* Program '%tul%$ 'an '%jalankan 'alam 'alam ma$%ng0ma$%ng t#rea'$ ,ang '%ber%

    nama ole# programmer ,ang $eola#0ola# $eluru# t#rea' ter$ebut bekerja $ecara

    ber$aaman namun $ebenarn,a bergant%an atau $epert% mengek$eku$% program $ecara

    melompat0lompat antar t#rea'$ 'engan &aktu ,ang $angat cepat*-* AVRILOS merupakan jen%$ RTOS ,ang $angat $e'er#ana ,ang cara kerjan,a mu'a#

    untuk '%pa#am%" $e#%ngga ATmega )= 'engan memor, ,ang $e'%k%t $u'a# 'apat

    '%gunakan untuk menjalankan RTOS %n%*.* Pa'a penja'&an pen,alaan LED t%'ak menggunakan progam block%ng $e#%ngga $eola#

    ola# progam berjalan $ecara pararel1* Pa'a penekanan tombol '% gunakan tak$ $en'%r% ,ang $u'a# '%$e'%akan ole# AVRILOS

    B. 0es*pul!"

    Dar% $eluru# rangka%n pro$$e$ pa'a project %n%" penul%$ menar%k beberapa ke$%mpulan

    '%antaran,a a'ala# $ebaga% ber%kut(

    )* S,$tem RTOS juga 'apat bekerja pa'a m%krokontroller keluarga AT +ega-* Pr%n$%p kerja RTOS a'ala# $eakan0akan $eluru# tak$>t#rea'$ bekerja $ecara ber$amaan

    namun $ebenarn,a bergant%an antar tak$ 'engan &aktu ,ang $%ngkat.* AVRILOS a'ala# RTOS $e'er#ana 'engan*1* Pemrogaman menggunakan non block%ng*F*

    13

  • 7/25/2019 4EA_Tugas RTOS.docx

    15/17

    LAMPIRAN 1

    1. Scr%pt progam pa'aH$rcHappl%cHapll%c*c>Project( AVRILOS

    T%tle( E9ample Lock Appl%cat%onAut#or( Il%a$ Ale9opoulo$Ver$%on( -*)La$t up'ate'( F0No60-))Target( ATS?F.F>AT+E%nclu'e Z**>%nclu'e$>t,pe$*#Z%nclu'e Z**>%nclu'e$>$ett%ng$*#Z%nclu'e Z**>%nclu'e$>%/ct%me*#Z%nclu'e Z**>per%p#%nt>T%mer*#Z%nclu'e a6r>%o*#['e/%ne LED) PA.

    'e/%ne LED- PA1'e/%ne LED. PAF'e/%ne TO+COL) PC)'e/%ne LED)On PORTAKQ2)LED)3'e/%ne LED)toogle PORTAK2)LED)3'e/%ne LED-On PORTAKQ2)LED-3'e/%ne LED-toogle PORTAK2)LED-3'e/%ne LED.On PORTAKQ2)LED.3'e/%ne LED.O// PORTAK2)LED.3'e/%ne LA+ATI84 -5'e/%ne c+LEDTI+ERID > 8oul' be an, SW t%mer up to 2c+A;SWTI+ERS0)3" 'e/%ne'

    %n $rc>%nclu'e$>%/ct%me*# >>> Appl%cat%on In%t%t%al%at%on calle' be/ore 4ernel ma%n loop

    6o%' /In%tAppl%c26o%'3U>> %n%t%al%e I>O 2our /unct%on>co'e3DDRAK9//5 PORTAK9//5 DDRCK95 PORTCK9//5 >> Set SW T%mer to ,our 'ela, 2Fm$3 6S&T%mermSc+LEDTI+ERIDB K LA+ATI845 >> LED O// 2our /unct%on>co'e3>> 7unct%on calle' b, t#e ma%n kernel loop 2ta$k3>> S#oul' not block

    >> T#%$ proce$$ run$ on e6er, Appl%cat%on T%ck>> :$e t#%$ /or t%me' e6ent #an'l%ngun$%gne' c#ar #%tungK" #%tung-K"/lagCTombol)K5

    14

  • 7/25/2019 4EA_Tugas RTOS.docx

    16/17

    6o%' /Appl%cT%ck26o%'3U>> T%mer E9p%re' >> Akt%/ $etela# ) 'et%k %/ 26S&T%mermSc+LEDTI+ERIDB KK 3

    U >> T%mer E9p%re'" re$tart 6S&T%mermSc+LEDTI+ERIDB K LA+ATI845 >> LED Toggle 2our co'e>/unct%on3 #%tungGG5

    %/2/lagCTombol)KK)3 U #%tung-005 LED.On5 LED)toogle5

    %/ 2#%tungKK-3 U LED-toogle5 #%tungK5 %/2#%tung-KK)3 U LED.O//5 /lagCTombol)K5 >> 7unct%on calle' b, t#e ma%n kernel loop 2ta$k3>> S#oul' not block

    >> T#%$ proce$$ run$ cont%nuou$l, on t#e ma%n loop>> :$e t#%$ %/ ,ou nee' no &a%t t%me on eac# run6o%' /Appl%c8ont26o%'3U %/ 2X2PINC2)TO+COL)333 U %/2/lagCTombol)KK3 U #%tung-KF5 /lagCTombol)K)5

    15

  • 7/25/2019 4EA_Tugas RTOS.docx

    17/17

    DA3TAR PUSTA0A

    )B #ttp(>>$ource/orge*net>project$>a6r%lo$>'%ak$e$ pa'a ) De$ember -)F

    -B #ttp(>>a6r%lo$*$ource/orge*net>'%ak$e$ pa'a ) De$ember -)F

    .B #ttp$(>>$ource/orge*net>project$>a6r%lo$>/%le$>late$t>'o&nloa''%ak$e$ pa'a ) De$ember -)F

    16