SlideShare una empresa de Scribd logo
1 de 37
Workshop On eCos R. VLSI - LabTek VIII STEI ITB , 19 Maret 2008
eCos  adalah sebuah  embedded   real   time   kernel  yang lengkap eCos  tidak seperti  Linux  atau  MS Windows  yang mempunyai  user interface  sebagai media interaksi dengan pemakai dimana pemakai dapat menjalankan aplikasi yang diinginkan Aplikasi yang berjalan di  eCos  harus di  lingking  dengan kernel  eCos  kemudian di  burning  ke  boot ROM  supaya dapat berfungsi
Tools apa saja yang diperlukan ??? ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Cygwin  untuk developer yang menggunakan MS Windows sebagai host , bisa download langsung install dari cygwin.com : http://cygwin.com/setup.exe
Proses Instalasi ...... ,[object Object],[object Object],[object Object]
Configuring  eCos command line :  ecosconfig gui :  configtool
Workflow select  template adding  package editing configuration build  tree build  library build  test
ecosconfig listing  modul : ecosconfig --srcdir=/usr/local/ecos/ecos-rep/packages/ list select  template  : ecosconfig --srcdir=/usr/local/ecos/ecos-rep/packages/ new sparc_leon3 net adding  package  : ecosconfig --srcdir=/usr/local/ecos/ecos-rep/packages/ add CYGPKG_DEVS_ETH_SPARC_LEON3 ecosconfig --srcdir=/usr/local/ecos/ecos-rep/packages/ add CYGPKG_DEVS_ETH_SMSC_LAN91CXX checking  config : ecosconfig --srcdir=/usr/local/ecos/ecos-rep/packages/ check
ecosconfig build  tree  : ecosconfig --srcdir=/usr/local/ecos/ecos-rep/packages/ tree build  library  : make make  test  : make test that's it
configtool – select  template
configtool – adding  package
configtool –  edit  config
configtool – last three build  lib build  test make build  tree
http://ecos.sourceware.org/docs-latest/user-guide/ecos-user-guide.html drill down deeper
Aplikasi  eCos void cyg_user_start(void) { cyg_mutex_init(&cliblock); cyg_thread_create(4, simple_program, (cyg_addrword_t) 0, "Thread A", (void *) stack[0], 4096, &simple_threadA, &thread_s[0]); cyg_thread_create(4, simple_program, (cyg_addrword_t) 1, "Thread B", (void *) stack[1], 4096,  &simple_threadB, &thread_s[1]); cyg_thread_resume(simple_threadA); cyg_thread_resume(simple_threadB); } void simple_program(cyg_addrword_t data) { for (;;) { } }
Building  aplikasi eCos jalankan :  make INSTALL_DIR=/path/to/ecos/install copy makefile dari example dan edit sesuai dengan aplikasi kita /path/to/ecos/install  adalah direktori dimana ecos library berada yang dihasilkan pada waktu build tree
Fitur eCos thread counter clock alarm mutex condition variable semaphore mailboxes flag interrupt   handling
Thread prepare create control terminate
Yang harus disiapkan entry  function : void thread_entry_function(cyg_addrword_t data) stack  allocation : static unsigned char mystack[CYGNUM_HAL_STACK_SIZE_MINIMUM]; priority  level #define MYPRIORITY  10 thread  handle cyg_handle_t threadhandle; thread  structure cyg_thread threadstructure;
Creation prototype : cyg_thread_create(cyg_addrword_t sched_info,  cyg_thread_entry_t* entry,  cyg_addrword_t entry_data,  char* name, void* stack_base,  cyg_ucount32 stack_size,  cyg_handle_t* handle, cyg_thread* thread) fungsi  cyg_thread_create  akan menginisialisasi sebuah thread dalam kondisi  suspend  bukan run. Supaya thread berjalan aplikasi harus memanggil  cyg_thread_resume prototype : cyg_thread_resume(cyg_handle_t handle)
contoh : cyg_thread_create(MYPRIORITY, &thread_entry_function,  &entry_data,  “ MYTHREAD”, mystack,  CYGNUM_HAL_STACK_SIZE_MINIMUM,  &threadhandle, &threadstructure); cyg_thread_resume(threadhandle);
Control ,[object Object],[object Object],[object Object],[object Object]
Termination ,[object Object],[object Object],[object Object]
Flag Flag  adalah binary event yang statusnya hanya set atau unset Semaphore  adalah conting event yang statusnya akan selalu bertambah setiap di-post dan berkurang setiap ada thread yang menunggu. thread yang menunggu  flag  akan segera return apabila flag bersangkutan  berstatus set , sementara thread yang menunggu  semaphore  akan langsung return setiap semaphore mempunyai  nilai lebih dari nol  dan akan mengurangi nilai semaphore
Inisialisasi void cyg_flag_init(cyg_flag_t* flag) Penghapusan void cyg_flag_destroy(cyg_flag_t* flag) Manipulasi flag set  bit tertentu dari flag : operasi OR void cyg_flag_setbits(cyg_flag_t* flag, cyg_flag_value_t value) clear  bit tertentu dari flag :  void cyg_flag_maskbits(cyg_flag_t* flag, cyg_flag_value_t value)
cek  kodisi tertentu dari flag cyg_flag_poll(cyg_flag_t* flag,    cyg_flag_value_t pattern,    cyg_flag_mode_t mode) Tunggu  flag pada kondisi tertentu tanpa batas waktu cyg_flag_wait(cyg_flag_t* flag,    cyg_flag_value_t pattern,    cyg_flag_mode_t mode) Tunggu flag pada kondisi tertentu dengan  batas waktu cyg_flag_timed_wait(cyg_flag_t* flag,    cyg_flag_value_t pattern,    cyg_flag_mode_t mode,   cyg_tick_count_t abstime) abstime should be cyg_current_time()+number
Mode Event ,[object Object],[object Object],[object Object]
Mutex dengan  mutex  memungkinkan suatu thread  mengunci  penggunaan suatu resource. thread lain harus menunggu dahulu sampai kuncinya dilepas kembali Live time init lock unlock destroy trylock
Prototype ,[object Object],[object Object],[object Object],[object Object],[object Object]
Interrupt Handling ,[object Object],[object Object],[object Object],live time create attach detach delete
ISR creation void cyg_interrupt_create(cyg_vector_t vector,  cyg_priority_t priority, cyg_addrword_t data,  cyg_ISR_t* isr, cyg_DSR_t* dsr,  cyg_handle_t* handle, cyg_interrupt* intr); ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Controlling Interrupt ,[object Object],[object Object],[object Object]
Template ISR cyg_uint32 isr_function(cyg_vector_t vector, cyg_addrword_t data) { cyg_bool_t dsr_required = 0; cyg_interrupt_acknowledge(vectornum); cyg_interrupt_mask(vectornum); return dsr_required ? (CYG_ISR_CALL_DSR | CYG_ISR_HANDLED) : CYG_ISR_HANDLED; }
Template DSR void dsr_function(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data) { //data access etc //or transfer to other thread }
Topik menarik lainnya filesystem POSIX compatibility Porting Device drivers httpd snmp USB ethernet bridging firewall SSL ssh
http://ecos.sourceware.org/docs-latest/ref/ecos-ref.html drill down deeper
WiMAX driver packages ecos.db devs eth idwman sparc current cdl include src idwman_drivers.cdl if_idwman.h if_idwman.c current cdl include src leon3_idwman_drivers.cdl devs_eth_sparc_idwman_leon3.inl if_sparc_idwman.c idwman leon3

Más contenido relacionado

Similar a Workshop On eCos

PostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
PostgreSQL BootCamp : Manajemen Master Data dengan SkyToolsPostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
PostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
Wildan Maulana
 
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdfJENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
Jurnal IT
 
Jamal aplikasicrud
Jamal aplikasicrudJamal aplikasicrud
Jamal aplikasicrud
males Aja
 
Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3
Haswi Haswi
 
Instalasi mikrotik-router os
Instalasi mikrotik-router osInstalasi mikrotik-router os
Instalasi mikrotik-router os
cabikhosting
 

Similar a Workshop On eCos (20)

Cara Install Openbravo 2.50 MP 43 di Ubuntu
Cara Install Openbravo 2.50 MP 43 di UbuntuCara Install Openbravo 2.50 MP 43 di Ubuntu
Cara Install Openbravo 2.50 MP 43 di Ubuntu
 
Pemrograman Bergerak Pertemuan 9.pdf
Pemrograman Bergerak Pertemuan 9.pdfPemrograman Bergerak Pertemuan 9.pdf
Pemrograman Bergerak Pertemuan 9.pdf
 
Linux Booting Process
Linux Booting ProcessLinux Booting Process
Linux Booting Process
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
 
PostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
PostgreSQL BootCamp : Manajemen Master Data dengan SkyToolsPostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
PostgreSQL BootCamp : Manajemen Master Data dengan SkyTools
 
How to hack #IDSECCONF2014 ctf online challenge - nganggur
How to hack #IDSECCONF2014 ctf online challenge - nganggurHow to hack #IDSECCONF2014 ctf online challenge - nganggur
How to hack #IDSECCONF2014 ctf online challenge - nganggur
 
FreeBSD Traffic Monitoring
FreeBSD Traffic MonitoringFreeBSD Traffic Monitoring
FreeBSD Traffic Monitoring
 
Nutch dan Solr
Nutch dan SolrNutch dan Solr
Nutch dan Solr
 
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdfJENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
JENI-J2ME-Bab02-Memulai Pemrograman Mobile.pdf
 
FreeBSD Proxy Server
FreeBSD Proxy ServerFreeBSD Proxy Server
FreeBSD Proxy Server
 
Jamal aplikasicrud
Jamal aplikasicrudJamal aplikasicrud
Jamal aplikasicrud
 
Instalasi Asterisk dan FreePBX di Ubuntu Server 10.04 LTS
Instalasi Asterisk dan FreePBX di Ubuntu Server 10.04 LTSInstalasi Asterisk dan FreePBX di Ubuntu Server 10.04 LTS
Instalasi Asterisk dan FreePBX di Ubuntu Server 10.04 LTS
 
Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3Wawan tutorial-zend-bagian-1-3
Wawan tutorial-zend-bagian-1-3
 
Yii2 fundamentals bagian 1
Yii2 fundamentals   bagian 1Yii2 fundamentals   bagian 1
Yii2 fundamentals bagian 1
 
Pertemuan14 linux booting proses
Pertemuan14   linux booting prosesPertemuan14   linux booting proses
Pertemuan14 linux booting proses
 
Instalasi mikrotik-router os
Instalasi mikrotik-router osInstalasi mikrotik-router os
Instalasi mikrotik-router os
 
Konfigurasi Dasar Switch
Konfigurasi Dasar SwitchKonfigurasi Dasar Switch
Konfigurasi Dasar Switch
 
Integrasi slims atau eprints dengan dspace
Integrasi slims atau eprints dengan dspaceIntegrasi slims atau eprints dengan dspace
Integrasi slims atau eprints dengan dspace
 
Pembahasansoallks2013
Pembahasansoallks2013Pembahasansoallks2013
Pembahasansoallks2013
 
FreeBSD web-based MUA
FreeBSD web-based MUAFreeBSD web-based MUA
FreeBSD web-based MUA
 

Último

ATRIUM GAMING : SLOT GACOR MUDAH MENANG 2024 TERBARU
ATRIUM GAMING : SLOT GACOR MUDAH MENANG 2024 TERBARUATRIUM GAMING : SLOT GACOR MUDAH MENANG 2024 TERBARU
ATRIUM GAMING : SLOT GACOR MUDAH MENANG 2024 TERBARU
sayangkamuu240203
 
BERKELAS!!! WA 0821 7001 0763 (FORTRESS) Harga Pintu Aluminium Kamar Mandi di...
BERKELAS!!! WA 0821 7001 0763 (FORTRESS) Harga Pintu Aluminium Kamar Mandi di...BERKELAS!!! WA 0821 7001 0763 (FORTRESS) Harga Pintu Aluminium Kamar Mandi di...
BERKELAS!!! WA 0821 7001 0763 (FORTRESS) Harga Pintu Aluminium Kamar Mandi di...
FORTRESS
 
Abortion pills in Muscat ( Oman) +966572737505! Get CYTOTEC, unwanted kit mis...
Abortion pills in Muscat ( Oman) +966572737505! Get CYTOTEC, unwanted kit mis...Abortion pills in Muscat ( Oman) +966572737505! Get CYTOTEC, unwanted kit mis...
Abortion pills in Muscat ( Oman) +966572737505! Get CYTOTEC, unwanted kit mis...
Abortion pills in Riyadh +966572737505 get cytotec
 
Perkembangan Perbankan di Indonesia Perkembangan Perbankan di Indonesia
Perkembangan Perbankan di Indonesia Perkembangan Perbankan di IndonesiaPerkembangan Perbankan di Indonesia Perkembangan Perbankan di Indonesia
Perkembangan Perbankan di Indonesia Perkembangan Perbankan di Indonesia
langkahgontay88
 

Último (20)

BAMBUHOKI88 Situs Game Gacor Menggunakan Doku Mudah Jackpot Besar
BAMBUHOKI88 Situs Game Gacor Menggunakan Doku Mudah Jackpot BesarBAMBUHOKI88 Situs Game Gacor Menggunakan Doku Mudah Jackpot Besar
BAMBUHOKI88 Situs Game Gacor Menggunakan Doku Mudah Jackpot Besar
 
PERAN DAN FUNGSI KOPERASI-TUGAS PPT NOVAL 2B.pptx
PERAN DAN FUNGSI KOPERASI-TUGAS PPT NOVAL 2B.pptxPERAN DAN FUNGSI KOPERASI-TUGAS PPT NOVAL 2B.pptx
PERAN DAN FUNGSI KOPERASI-TUGAS PPT NOVAL 2B.pptx
 
Bab 11 Liabilitas Jangka Pendek dan Penggajian.pptx
Bab 11 Liabilitas Jangka Pendek dan   Penggajian.pptxBab 11 Liabilitas Jangka Pendek dan   Penggajian.pptx
Bab 11 Liabilitas Jangka Pendek dan Penggajian.pptx
 
abortion pills in Kuwait City+966572737505 get Cytotec
abortion pills in Kuwait City+966572737505 get Cytotecabortion pills in Kuwait City+966572737505 get Cytotec
abortion pills in Kuwait City+966572737505 get Cytotec
 
STRATEGI BERSAING MENGGUNAKAN ANALISIS SWOT
STRATEGI BERSAING MENGGUNAKAN ANALISIS SWOTSTRATEGI BERSAING MENGGUNAKAN ANALISIS SWOT
STRATEGI BERSAING MENGGUNAKAN ANALISIS SWOT
 
PPT Klp 5 Sistem Informasi Manajemen.pdf
PPT Klp 5 Sistem Informasi Manajemen.pdfPPT Klp 5 Sistem Informasi Manajemen.pdf
PPT Klp 5 Sistem Informasi Manajemen.pdf
 
ATRIUM GAMING : SLOT GACOR MUDAH MENANG 2024 TERBARU
ATRIUM GAMING : SLOT GACOR MUDAH MENANG 2024 TERBARUATRIUM GAMING : SLOT GACOR MUDAH MENANG 2024 TERBARU
ATRIUM GAMING : SLOT GACOR MUDAH MENANG 2024 TERBARU
 
MODUL PEGAJARAN ASURANSI BELUM KOMPLIT 1
MODUL PEGAJARAN ASURANSI BELUM KOMPLIT 1MODUL PEGAJARAN ASURANSI BELUM KOMPLIT 1
MODUL PEGAJARAN ASURANSI BELUM KOMPLIT 1
 
UNIKBET : Agen Slot Resmi Pragmatic Play Ada Deposit Sesama Linkaja
UNIKBET : Agen Slot Resmi Pragmatic Play Ada Deposit Sesama LinkajaUNIKBET : Agen Slot Resmi Pragmatic Play Ada Deposit Sesama Linkaja
UNIKBET : Agen Slot Resmi Pragmatic Play Ada Deposit Sesama Linkaja
 
analisa kelayakan bisnis aspek keuangan.
analisa kelayakan bisnis aspek keuangan.analisa kelayakan bisnis aspek keuangan.
analisa kelayakan bisnis aspek keuangan.
 
ASKEP WAHAM KELOMPOK 4 vvvvvvvvvPPT.pptx
ASKEP WAHAM KELOMPOK 4 vvvvvvvvvPPT.pptxASKEP WAHAM KELOMPOK 4 vvvvvvvvvPPT.pptx
ASKEP WAHAM KELOMPOK 4 vvvvvvvvvPPT.pptx
 
Nilai-Waktu-Uang.pptx kdgmkgkdm ksfmkdkmdg
Nilai-Waktu-Uang.pptx kdgmkgkdm ksfmkdkmdgNilai-Waktu-Uang.pptx kdgmkgkdm ksfmkdkmdg
Nilai-Waktu-Uang.pptx kdgmkgkdm ksfmkdkmdg
 
CALL/WA: 0822 348 60 166 ( TSEL ) Jasa Digital Marketing Solo
CALL/WA: 0822 348 60 166 ( TSEL ) Jasa Digital Marketing SoloCALL/WA: 0822 348 60 166 ( TSEL ) Jasa Digital Marketing Solo
CALL/WA: 0822 348 60 166 ( TSEL ) Jasa Digital Marketing Solo
 
BERKELAS!!! WA 0821 7001 0763 (FORTRESS) Harga Pintu Aluminium Kamar Mandi di...
BERKELAS!!! WA 0821 7001 0763 (FORTRESS) Harga Pintu Aluminium Kamar Mandi di...BERKELAS!!! WA 0821 7001 0763 (FORTRESS) Harga Pintu Aluminium Kamar Mandi di...
BERKELAS!!! WA 0821 7001 0763 (FORTRESS) Harga Pintu Aluminium Kamar Mandi di...
 
UNIKBET : Bandar Slot Gacor Pragmatic Play Deposit Pakai Bank Mega Bonus Berl...
UNIKBET : Bandar Slot Gacor Pragmatic Play Deposit Pakai Bank Mega Bonus Berl...UNIKBET : Bandar Slot Gacor Pragmatic Play Deposit Pakai Bank Mega Bonus Berl...
UNIKBET : Bandar Slot Gacor Pragmatic Play Deposit Pakai Bank Mega Bonus Berl...
 
Abortion pills in Muscat ( Oman) +966572737505! Get CYTOTEC, unwanted kit mis...
Abortion pills in Muscat ( Oman) +966572737505! Get CYTOTEC, unwanted kit mis...Abortion pills in Muscat ( Oman) +966572737505! Get CYTOTEC, unwanted kit mis...
Abortion pills in Muscat ( Oman) +966572737505! Get CYTOTEC, unwanted kit mis...
 
Pelembagaan Badan Usaha Milik Desa (BUMDes)ppt
Pelembagaan Badan Usaha Milik Desa (BUMDes)pptPelembagaan Badan Usaha Milik Desa (BUMDes)ppt
Pelembagaan Badan Usaha Milik Desa (BUMDes)ppt
 
Perkembangan Perbankan di Indonesia Perkembangan Perbankan di Indonesia
Perkembangan Perbankan di Indonesia Perkembangan Perbankan di IndonesiaPerkembangan Perbankan di Indonesia Perkembangan Perbankan di Indonesia
Perkembangan Perbankan di Indonesia Perkembangan Perbankan di Indonesia
 
LAPORAN HASIL OBSERVASI ENGLISH COURSE (1).docx
LAPORAN HASIL OBSERVASI ENGLISH COURSE (1).docxLAPORAN HASIL OBSERVASI ENGLISH COURSE (1).docx
LAPORAN HASIL OBSERVASI ENGLISH COURSE (1).docx
 
APAKAH LOGISTIK SIAP UNTUK PERTUMBUHAN? Michael Rada
APAKAH LOGISTIK SIAP UNTUK PERTUMBUHAN? Michael RadaAPAKAH LOGISTIK SIAP UNTUK PERTUMBUHAN? Michael Rada
APAKAH LOGISTIK SIAP UNTUK PERTUMBUHAN? Michael Rada
 

Workshop On eCos

  • 1. Workshop On eCos R. VLSI - LabTek VIII STEI ITB , 19 Maret 2008
  • 2. eCos adalah sebuah embedded real time kernel yang lengkap eCos tidak seperti Linux atau MS Windows yang mempunyai user interface sebagai media interaksi dengan pemakai dimana pemakai dapat menjalankan aplikasi yang diinginkan Aplikasi yang berjalan di eCos harus di lingking dengan kernel eCos kemudian di burning ke boot ROM supaya dapat berfungsi
  • 3.
  • 4.
  • 5.
  • 6. Configuring eCos command line : ecosconfig gui : configtool
  • 7. Workflow select template adding package editing configuration build tree build library build test
  • 8. ecosconfig listing modul : ecosconfig --srcdir=/usr/local/ecos/ecos-rep/packages/ list select template : ecosconfig --srcdir=/usr/local/ecos/ecos-rep/packages/ new sparc_leon3 net adding package : ecosconfig --srcdir=/usr/local/ecos/ecos-rep/packages/ add CYGPKG_DEVS_ETH_SPARC_LEON3 ecosconfig --srcdir=/usr/local/ecos/ecos-rep/packages/ add CYGPKG_DEVS_ETH_SMSC_LAN91CXX checking config : ecosconfig --srcdir=/usr/local/ecos/ecos-rep/packages/ check
  • 9. ecosconfig build tree : ecosconfig --srcdir=/usr/local/ecos/ecos-rep/packages/ tree build library : make make test : make test that's it
  • 12. configtool – edit config
  • 13. configtool – last three build lib build test make build tree
  • 15. Aplikasi eCos void cyg_user_start(void) { cyg_mutex_init(&cliblock); cyg_thread_create(4, simple_program, (cyg_addrword_t) 0, "Thread A", (void *) stack[0], 4096, &simple_threadA, &thread_s[0]); cyg_thread_create(4, simple_program, (cyg_addrword_t) 1, "Thread B", (void *) stack[1], 4096, &simple_threadB, &thread_s[1]); cyg_thread_resume(simple_threadA); cyg_thread_resume(simple_threadB); } void simple_program(cyg_addrword_t data) { for (;;) { } }
  • 16. Building aplikasi eCos jalankan : make INSTALL_DIR=/path/to/ecos/install copy makefile dari example dan edit sesuai dengan aplikasi kita /path/to/ecos/install adalah direktori dimana ecos library berada yang dihasilkan pada waktu build tree
  • 17. Fitur eCos thread counter clock alarm mutex condition variable semaphore mailboxes flag interrupt handling
  • 18. Thread prepare create control terminate
  • 19. Yang harus disiapkan entry function : void thread_entry_function(cyg_addrword_t data) stack allocation : static unsigned char mystack[CYGNUM_HAL_STACK_SIZE_MINIMUM]; priority level #define MYPRIORITY 10 thread handle cyg_handle_t threadhandle; thread structure cyg_thread threadstructure;
  • 20. Creation prototype : cyg_thread_create(cyg_addrword_t sched_info, cyg_thread_entry_t* entry, cyg_addrword_t entry_data, char* name, void* stack_base, cyg_ucount32 stack_size, cyg_handle_t* handle, cyg_thread* thread) fungsi cyg_thread_create akan menginisialisasi sebuah thread dalam kondisi suspend bukan run. Supaya thread berjalan aplikasi harus memanggil cyg_thread_resume prototype : cyg_thread_resume(cyg_handle_t handle)
  • 21. contoh : cyg_thread_create(MYPRIORITY, &thread_entry_function, &entry_data, “ MYTHREAD”, mystack, CYGNUM_HAL_STACK_SIZE_MINIMUM, &threadhandle, &threadstructure); cyg_thread_resume(threadhandle);
  • 22.
  • 23.
  • 24. Flag Flag adalah binary event yang statusnya hanya set atau unset Semaphore adalah conting event yang statusnya akan selalu bertambah setiap di-post dan berkurang setiap ada thread yang menunggu. thread yang menunggu flag akan segera return apabila flag bersangkutan berstatus set , sementara thread yang menunggu semaphore akan langsung return setiap semaphore mempunyai nilai lebih dari nol dan akan mengurangi nilai semaphore
  • 25. Inisialisasi void cyg_flag_init(cyg_flag_t* flag) Penghapusan void cyg_flag_destroy(cyg_flag_t* flag) Manipulasi flag set bit tertentu dari flag : operasi OR void cyg_flag_setbits(cyg_flag_t* flag, cyg_flag_value_t value) clear bit tertentu dari flag : void cyg_flag_maskbits(cyg_flag_t* flag, cyg_flag_value_t value)
  • 26. cek kodisi tertentu dari flag cyg_flag_poll(cyg_flag_t* flag, cyg_flag_value_t pattern, cyg_flag_mode_t mode) Tunggu flag pada kondisi tertentu tanpa batas waktu cyg_flag_wait(cyg_flag_t* flag, cyg_flag_value_t pattern, cyg_flag_mode_t mode) Tunggu flag pada kondisi tertentu dengan batas waktu cyg_flag_timed_wait(cyg_flag_t* flag, cyg_flag_value_t pattern, cyg_flag_mode_t mode, cyg_tick_count_t abstime) abstime should be cyg_current_time()+number
  • 27.
  • 28. Mutex dengan mutex memungkinkan suatu thread mengunci penggunaan suatu resource. thread lain harus menunggu dahulu sampai kuncinya dilepas kembali Live time init lock unlock destroy trylock
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. Template ISR cyg_uint32 isr_function(cyg_vector_t vector, cyg_addrword_t data) { cyg_bool_t dsr_required = 0; cyg_interrupt_acknowledge(vectornum); cyg_interrupt_mask(vectornum); return dsr_required ? (CYG_ISR_CALL_DSR | CYG_ISR_HANDLED) : CYG_ISR_HANDLED; }
  • 34. Template DSR void dsr_function(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data) { //data access etc //or transfer to other thread }
  • 35. Topik menarik lainnya filesystem POSIX compatibility Porting Device drivers httpd snmp USB ethernet bridging firewall SSL ssh
  • 37. WiMAX driver packages ecos.db devs eth idwman sparc current cdl include src idwman_drivers.cdl if_idwman.h if_idwman.c current cdl include src leon3_idwman_drivers.cdl devs_eth_sparc_idwman_leon3.inl if_sparc_idwman.c idwman leon3