7/26/2019 Tugas RTOS-Ahmad Hasyim
1/18
TUGAS UTS
SISTEM EMBEDDED
PENERAPAN RTOS PC/OS PADA PENJADWALAN
PENYALAAN LED
Oleh :
1. M Faqih!i" F 111#1$1#$#
$. Ah%a! &a'(i% A 111#1$1#$)
D*'e"Pe"+a%, :
A-h%a! &e"!iaa"0 S.T.0 M.T.
PROGRAM STUDI DIPLOMA
TE2NI2 ELE2TRONI2A
DEPARTEMEN TE2NI2 ELE2TRO
POLITE2NI2 ELE2TRONI2A NEGERI SURABAYA
SURABAYA
$#1)
7/26/2019 Tugas RTOS-Ahmad Hasyim
2/18
7/26/2019 Tugas RTOS-Ahmad Hasyim
3/18
8%9e'1Pr%or%t, Sc#e'ul%ng &%t# De0erre' Preempt%on
8%9e'1Pr%or%t, Non1preempt%7e Sc#e'ul%ng
Cr%t%cal $ect%on preempt%7e $c#e'ul%ng
Stat%c t%me $c#e'ul%ng
Earl%e$t Dea'l%ne 8%r$t approac#
Stoc#a$t%c '%grap#$ &%t# mult%1t#rea'e' grap# tra7er$al
-* PC/OSS%$tem Embe''e' $e'er#ana Operat%ng S,$tem 8rame&ork ,ang
memungk%nkan pe$atn,a perkembangan membangun apl%ka$% untuk keluarga A.R
tetap% 'apat port%ng ke ar$%tektur la%n cukup mu'a#* S%$tem mult%ta$k%ng Roun'1
Rob%n Co1operat%7e*
5ernel PC/OS men'ukung(1 Ta$k management
1 +e$$age bo9e$1 :ueue$1 P%pe$1 Semap#ore$1 +ute9e$1 E7en;roup$1 T%mer1Ser7%ce$1 Small memor,1manager1
7/26/2019 Tugas RTOS-Ahmad Hasyim
4/18
a* Struktur '%rektor%
PC/OS merupakan $ala# $atu cara tercepat bag% pemula untuk mema#am%
$%$tem opera$% real t%me* PC/OS %n% 'apat mengelola #%ngga = ta$k
apl%ka$% 'engan pr%or%ta$ ,ang perna# berbe'a 'an m%l%k $%$tem opera$%
real t%me 'engan perm%ntaan pen,%mpanan teren'a#*
A'a 'ua bag%an utama 'ar% '%rektor%" ,a%tu )? D%rektor% #ar'&are ber%$% tentang #ar'&are ,ang '%rekomen'a$%kan
ole# pembuat" ba%k $kemat%k 'an PC@ 0%le" kemu'%an juga 'engan
penerapan PC/OS pa'a 8P;A>-? D%rektor% $o0t&are ter'%r% 'ar% '%rektor% pen,u$un terka%t c#%p ,ang
'%gunakan* @eberapa '%rektor% pen'ukung la%nn,a ,ang
mempun,a% tuj%an k#u$u$ ,a%tu%* bu%l'*'ep
%%* bu%l'*err %%%* bu%l'*obj%7* bu%l'*l$t7* bu%l'*rom
D%rektor% root pa'a make0%le*D%rektor% Con0%g 3'%rektor% pen'ukung make0%le" kon0%gura$%
#ar&are" 'an per%#ta# comp%ler4" 'an '%rektor% Source co'e ,ang
ber%$%%* Appl%c" merupakan 0%le utama ,ang ber%$% 5ernel*c ,ang
ber%$% progam penja'&alan*
%%* per%p#e%nt" Per%per%al %nternal 'ar% m%crocontroller" $epert%T%mer" art*
3
7/26/2019 Tugas RTOS-Ahmad Hasyim
5/18
%%%* perp#ee9t" Per%per%al ek$ternal 'ar% luar m%krokontroller
berupa $martcar'" LPC 0la$#" 'an peralatan SPB*%7* ut%l$" ber%$% $cr%pt progam untuk kon7er$% 'ar% conto#
#e9-b%n" b%n-#e9" 'ela, 'an ,ang la%n*
7* 'ebug" '%gunakan untuk memon%tor pro$e$ 'ebug" $e#%ngga
'ebugg%ng menja'% leb%# mu'a#" 0%tur %n% 'apat '%mat%kan
agar penggunaan memor% menja'% #emat*7%* %nclu'e" ber%$% global 'e0%n%t%on 'an pengaturan 'e7%ce ,ang
akan ter#ubung 'engan OS %n%*
De'-i,'i -e"el
5ernel 'apat '%kon0%gura$% '% 'alam tamba#an port #ar'&are
'%gunakan beberapa nomor 'ar% cara untuk mengkon0%gura$% La,anan /
BPC $erta untuk mengurang% kebutu#an memor%" ko'e" ukuran untuk
comp%ler* ko'e ,ang t%'ak terpaka% mungk%n t%'ak jela$ meng%'ent%0%ka$%
'% RA+ ,ang ter$e'%a* @er%kut a'ala# %$% 'ar% OSc0g*#
untuk OS+ATAS5S 'an OS+BNPRBO(
4
7/26/2019 Tugas RTOS-Ahmad Hasyim
6/18
J%ka $%$tem ,ang '%butu#kan 'engan F tuga$" - '% antaran,a tuga$
menggunakan mute9" An'a perlu OS+ATAS5S G H 3terma$uk mute9
'an B'le1Ta$k4 'an OS+BNPRBO G I mana ,ang B'le1Ta$k kemu'%an
men'apat pr%o H 'an $ela%n tuga$ 'an mute9 men'apat pr%or%ta$ leb%#
t%ngg% 3**=4* J%ka t%mer1la,anan #aru$ '%gunakan juga" %tu #aru$ tuga$
&aktu %n% tamba#an ,ang terl%bat*
De'-i,'i %*!l
A'a beberapa mo'ul" ,a%tu S,$t%ck" ART" Debugger 'an mo'ule ,ang
la%n" namun ,ang akan '%ba#a$ #an,a mo'ul S,$t%ck*S,$T%ck mo'ul melakukan $emua 0ung$% &aktu utama* Conto#
menge'%pkan LED" mem%cu ADC untuk memula% kon7er$% baru" mem%cu
ak#%r LC+ keterlambatan" mem%cu ke,boar' 0ung$% pem%n'a%an 'an juga
mem%l%k% t%mer $o0t&are* ntuk mengakt%0kan $,$t%ck" #an,a men$et 3b%t4
,ang bera'a '% 7S,$Stat* ntuk menguba# %nter7al &aktu memo'%0%ka$%
kon$tanta / %0ct%me*#
5
7/26/2019 Tugas RTOS-Ahmad Hasyim
7/18
Se$ua% 'e0%n%$% akt%7a$% 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 2 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
6
7/26/2019 Tugas RTOS-Ahmad Hasyim
8/18
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 )=-* B/O LED 'an Tombol* Po&er Suppl,2* Do&nloa'er S@1$ASPF* PC 'engan $o0t&are te9t e'%tor 3Subl%me" Notepa'KK" Notepa'4=* Comman' Promp
B. RANG2AIAN MI2RO2ONTROLER
Dar% pro$$e$ kaj%an pu$taka ,ang tela# '%lakukan" maka '%lakukukan pem%l%#an
C#%p ,ang '%gunakan 'engan 'a$ar minimum requirement'an $pe$%0%ka$%/$,arat &aj%b
penuga$an* @er%kut a'ala# gambar $kemat%k 'an
7/26/2019 Tugas RTOS-Ahmad Hasyim
9/18
7/26/2019 Tugas RTOS-Ahmad Hasyim
10/18
C. 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 2 'et%k)* +elakukan pem%l%#an c#%p pa'a '%rektor%
con0%g#&*%n
Mput t#e name o0 t#e target mcu #ere 3at$IF)F" at$IFF" att%n,--" atmega= etc*4M +C G at$IF)FM +C G atmega)=2pM +C G atmega)=M +C G atmega-M +C G atmega)=M +C G atmegaI
+C G atmega-
-* +elakukan #ar&are untuk jalur pemrogaman menggunakan S@ ASPcon0%gen7*%nMMMMMM 'e0%ne $ome 7ar%able$ ba$e' on t#e A.R ba$e pat# %n 3A.R4 MMMMMMMA.RCC G a7r1gccA.RASG a7r1gcc 19 a$$embler1&%t#1cppR+ G rm 10 RN G m7A.R@BN G a7r1objcop,A.RSBE G a7r1$%QeBNCDBR G *LB@DBR G 3A.R4/a7r/l%bS
7/26/2019 Tugas RTOS-Ahmad Hasyim
11/18
7/26/2019 Tugas RTOS-Ahmad Hasyim
12/18
%03#%tung-GG)4 X LEDO006 0lag@Tombol)G6 YY
Progam untuk pen,alaan LED 'engan tombol )
// 8unct%on calle' b, t#e ma%n kernel loop 3ta$k4// S#oul' not block// T#%$ proce$$ run$ cont%nuou$l, on t#e ma%n loop// $e t#%$ %0 ,ou nee' no &a%t t%me on eac# run7o%' 0Appl%cCont37o%'4
X %0 3[3PBN@3)TO+@OL)444 X %030lag@Tombol)GG4 X #%tung-GF6 0lag@Tombol)G)6 Y Y
Y
11
7/26/2019 Tugas RTOS-Ahmad Hasyim
13/18
ntuk 'o&nloa' progam menggunakan comman' promt ,a%tu $ebaga% ber%kut()* +a$uk '%rektor, 'ar% make0%le
-* 5et%k make l%$t untuk mel%#at %n$truk$% ,ang a'a
* 5et%k make clean untuk member$%#kan 0%le la$t bu%l'
)2* 5et%k make all untuk mengcomp%le
12
7/26/2019 Tugas RTOS-Ahmad Hasyim
14/18
F* 5et%k make prog$p untuk men'o&nloa' progam
13
7/26/2019 Tugas RTOS-Ahmad Hasyim
15/18
BAB III
PENUTUP
A. A"ali'aDar% $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% Real1T%me Operat%ng S,$tem merupakan $ebua# $%$tem
opera$% real1t%me,ang '%mak$u'kan untuk mela,an% 'ata real1t%me pro$e$ apl%ka$%"
b%a$an,a tanpa penun'aan bu00er%ng* S,$tem RTOS juga 'apat '%jalankan pa'a
+%krokontroller keluarga Corte9 maupun A.R 'engan pr%n$%p kerja $epert% %nterrupt
t%mer* Program '%tul%$ 'an '%jalankan 'alam 'alam ma$%ng1ma$%ng t#rea'$ ,ang '%ber%
nama ole# programmer ,ang $eola#1ola# $eluru# t#rea' ter$ebut bekerja $ecara
ber$aaman namun $ebenarn,a bergant%an atau $epert% mengek$eku$% program $ecara
melompat1lompat antar t#rea'$ 'engan &aktu ,ang $angat cepat*-* A.RBLOS 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 pararel2* Pa'a penekanan tombol '% gunakan tak$ $en'%r% ,ang $u'a# '%$e'%akan ole# A.RBLOS
B. 2e'i%,la"
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# $eakan1akan $eluru# tak$/t#rea'$ bekerja $ecara ber$amaan
namun $ebenarn,a bergant%an antar tak$ 'engan &aktu ,ang $%ngkat* A.RBLOS a'ala# RTOS $e'er#ana 'engan*2* Pemrogaman menggunakan non block%ng*F*
14
7/26/2019 Tugas RTOS-Ahmad Hasyim
16/18
LAMPIRAN 1
1. Scr%pt progam pa'a$rcappl%capll%c*c/Project( A.RBLOS
T%tle( E9ample Lock Appl%cat%onAut#or( Bl%a$ Ale9opoulo$.er$%on( -*)La$t up'ate'( F1No71-))Target( ATSIFF/AT+E;A8%le( appl%c*c Support E1ma%l( a7r%lo$\%l%ale9*gr l%cen$e( See l%cen$e*t9t on root '%rector, 3CDDL4 .-*" -I1Oct1-)" Bn%t%al publ%$#e' 7er$%on
.-*)" F1No71-))" Spl%t ma%n call$ to t&o 0unct%on$" one run on e7er, appl%cat%on t%ck" T#e ot#er run$ cont%nou$l,* T#%$ pro7%'e$
0le9%b%l%t, on #o& &e nee' To control t#%ng$ 0or $pec%0%c appl%cat%on$* DESCRBPTBON Empt, Demo Appl%cat%on/M%nclu'e **/%nclu'e$/t,pe$*#M%nclu'e **/%nclu'e$/$ett%ng$*#M%nclu'e **/%nclu'e$/%0ct%me*#M%nclu'e **/per%p#%nt/T%mer*#M%nclu'e a7r/%o*#]M'e0%ne LED) PA
M'e0%ne LED- PA2M'e0%ne LED PAFM'e0%ne TO+@OL) P@)M'e0%ne LED)On PORTAG3)LED)4M'e0%ne LED)toogle PORTAUG3)LED)4M'e0%ne LED-On PORTAG3)LED-4M'e0%ne LED-toogle PORTAUG3)LED-4M'e0%ne LEDOn PORTAG3)LED4M'e0%ne LEDO00 PORTAVG3)LED4M'e0%ne LA+ATBC5 -6M'e0%ne c+LEDTB+ERBD / Coul' be an, SW t%mer up to 3c+ASWTB+ERS1)4" 'e0%ne'
%n $rc/%nclu'e$/%0ct%me*# /// Appl%cat%on Bn%t%t%al%Qat%on calle' be0ore 5ernel ma%n loop
7o%' 0Bn%tAppl%c37o%'4X// %n%t%al%Qe B/O 3our 0unct%on/co'e4DDRAG9006 PORTAG9006 DDR@G96 PORT@G9006 // Set SW T%mer to ,our 'ela, 3Fm$4 7S&T%mermS>c+LEDTB+ERBD? G LA+ATBC56 // LED O00 3our 0unct%on/co'e4Y// 8unct%on calle' b, t#e ma%n kernel loop 3ta$k4// S#oul' not block
// T#%$ proce$$ run$ on e7er, Appl%cat%on T%ck// $e t#%$ 0or t%me' e7ent #an'l%ngun$%gne' c#ar #%tungG" #%tung-G"0lag@Tombol)G6
15
7/26/2019 Tugas RTOS-Ahmad Hasyim
17/18
7/26/2019 Tugas RTOS-Ahmad Hasyim
18/18
DAFTAR PUSTA2A
>)? #ttp(//$ource0orge*net/project$/a7r%lo$/'%ak$e$ pa'a ) De$ember -)F
>-? #ttp(//a7r%lo$*$ource0orge*net/'%ak$e$ pa'a ) De$ember -)F
>? #ttp$(//$ource0orge*net/project$/a7r%lo$/0%le$/late$t/'o&nloa''%ak$e$ pa'a ) De$ember -)F
17