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