SDCC ile Pic Mikrodenetleyici Dersleri

Başlatan duralikiraz, 17 Haziran 2015, 11:28:11

duralikiraz

Uzun zamandır tamamen özgür yazılım olması hasebiyle ilgimi çeken SDCC mikrodenetleyici derleyicisi ile igili Türkçe kaynak sıkıntısının olması beni uzmanı olmadığım halde bu ders dizisini yazmaya itti. Kendi blogumda yazmaya başladığım sdcc ile pic programlama yazılarımı buradan da paylaşarak aynı zamanda kendi bilgimide geliştirmeyi hedefledim. Eskiye göre sdcc ekibinin günlük ve geniş kapsamlı bir geliştirme sürecine girdiğini görmek beni biraz daha heyecanlandırdı. Şunu peşinen söylemek isterimki ben elektroniğe gönül vermiş fakat çok fazla bu konuda deneyimi ve bilgisi bulunmayan biriyim. Bu yazılarıda Türkçe kaynak olmamasından dolayı hiç değilse ben bir başlangıç yaparım düşüncesiyle yazmaya başladım. Kimbilir belki birgün üniversitelerimizde aktif kullanılan bir ANSI C mikrodenetleyici yazılımı olur. Ders bağlantıları yenileri çıktıkça eklemeye çalışacağım. Eksiklerim mutlaka olacaktır, bu yüzden hertürlü yapıcı eleştiriye açık olduğumu belirtmek isterim.

SDCC nedir? Ne iş yapar? Linux (Pardus) üzerinde Kullanımı
http://duralikiraz.blogspot.com.tr/2015/06/sdcc-nedir-ne-is-yapar-linux-pardus.html

SDCC Mikrodenetleyici Derleyicisinin Ubuntu-Linux Üzerine Kurulumu
http://duralikiraz.blogspot.com.tr/2015/06/sdcc-mikrodenetleyici-derleyicisinin.html

SDCC ile Ubuntu üzerinde ilk PIC Mikrodenetleyici Uygulamamız -DERS01
http://duralikiraz.blogspot.com.tr/2015/06/sdcc-ile-ubuntu-uzerinde-ilk-pic-uygulamamiz-ders01.html

SDCC ile Led Yakma(PIC16F6886) – Ders02
http://duralikiraz.blogspot.com.tr/2015/06/sdcc-ile-led-led-yakma-ders02.html

SDCC ile Led Yakma (PIC16F628A) – Ders03
http://duralikiraz.blogspot.com.tr/2015/06/sdcc-ile-led-led-yakma-pic16f628a-ders03.html

SDCC ile Butona Basıldığında Ledi Yakma (PIC16F877A) – Ders04
http://duralikiraz.blogspot.com.tr/2015/06/sdcc-ile-butona-basildiginda-ledi-yakma-PIC16F877A-Ders04.html

SDCC ile Karaşimşek Uygulaması (16F877A) –Ders05
http://duralikiraz.blogspot.com.tr/2015/06/sdcc-ile-karasimsek-uygulamas-16f877a-Ders05.html

Sdcc ile 7 Segment Display 0~9 sayıcı uygulaması (PIC16F877A) -Ders06.
http://duralikiraz.blogspot.com.tr/2015/06/sdcc-ile-7-segment-display-uygulamasi-ve-0-9sayici16F877A-Ders06.html

Sdcc ile iki rakamlı 7 segment display 00~99 arası sayıcı yapılması -Ders07
http://duralikiraz.blogspot.com.tr/2015/06/sdcc-ile-iki-rakaml-7-segment-display-00--99-sayici-16F877A--Ders07.html

SDCC ile Harici INT/B0 Kesme(Interrupt) Uygulaması (16F877A) –Ders08
http://duralikiraz.blogspot.com.tr/2015/06/sdcc-ile-harici-intb0-kesmeinterrupt-uygulamasi-16F877A-Ders08.html

SDCC ile RB4~RB7 Kesme(Interrupt) Uygulaması (16F877A) –Ders09
http://duralikiraz.blogspot.com.tr/2015/06/sdcc-ile-rb4rb7-kesmeinterrupt-uygulamasi-16F877A-Ders09.html

SDCC ile LCD Uygulaması (16F877A) -Ders10
http://duralikiraz.blogspot.com.tr/2015/07/sdcc-ile-lcd-uygulamasi-16f877a-ders-10.html

SDCC ile LCD Uygulaması-2 (16F877A) -Ders11
http://duralikiraz.blogspot.com.tr/2015/08/sdcc-ile-lcd-uygulamasi-2-16f877a-ders12.html

SDCC ile LCD Uygulaması-3 Türkçe karakterler (16F877A) -Ders12
http://duralikiraz.blogspot.com.tr/2015/08/sdcc-ile-lcd-uygulamas-3-turkce-16F877A-Ders12.html

SDCC ile Ultrasonick Sensör Mesafe Ölçümü, Timer1, LCD kullanımı (16F877A) -Ders13
http://duralikiraz.blogspot.com.tr/2015/08/sdcc-ile-ultrasonick-sensor-mesafe-olcumu-Timer1-Lcd-kullanimi-16F877A-Ders13.html

SDCC ile Dahili Eeprom'a okuma ve yazma (16F877A) -Ders14
http://duralikiraz.blogspot.com.tr/2015/08/sdcc-ile-dahili-eeproma-okuma-ve-yazma-16F877A-Ders14.html

duralikiraz

#1
Yeni Ders Eklendi.

Sdcc ile 7 Segment Display 0~9 sayıcı uygulaması (PIC16F877A) -Ders06.
http://duralikiraz.blogspot.com.tr/2015/06/sdcc-ile-7-segment-display-uygulamasi-ve-0-9sayici16F877A-Ders06.html

duralikiraz

#2
Yeni ders eklendi.

Sdcc ile iki rakamlı 7 segment display 00~99 arası sayıcı yapılması -Ders07
http://duralikiraz.blogspot.com.tr/2015/06/sdcc-ile-iki-rakaml-7-segment-display-00--99-sayici-16F877A--Ders07.html

duralikiraz

#3
SDCC için ayrı bir ana başlık açtığından dolayı moderatör arkadaşlara çok teşekkür ederim. Yalnız SDCC ana başlığının açıklamasına "Linux üzerinde C ile Pic Programlama " ibaresi geçilmiş bu tam olarak doğru değil. Çünkü sddc birçok platforma çalışabilen bir derleyicidir. Bunlar;

* Linux 32 bit & 64 bit (Ubuntu,Debian, Pardus, Raspbian (raspberyy pi)(ARMV6, ARMV7), ve tüm linux türevlerinde )
* Linux - IBM Power5
* Linux - Alpha
* Windows 32 bit & 64 bit (Tüm windowslarda)
* MacOsx
* FreeBSD
* NetBSD - Sparc64
* NetBSD - i386
* SUN Solaris - i386
* SUN Solaris - Sparc

Daha fazla bilgi için http://sdcc.sourceforge.net/index.php adresini ziyaret edebilirsiniz.

duralikiraz


duralikiraz


enginkanat



Burak

PicBasic'e göre avantajları ve dezavantajlarını kıyaslayabilir miyiz ? Yazılım çekirdeği tahmin ettiğim kadarıyla C isminden de akış ve komut dizgesinde de anlaşıldığı üzere ... Ufak ufak maddeler halinde sıralansa okuyanlarda kendince bilgi edinmiş olurlar ...

Burak
Ω Gens Una Sumus Ω

duralikiraz

#9
Yeni Ders eklendi.

SDCC ile LCD Uygulaması-2 (16F877A) -Ders11
http://duralikiraz.blogspot.com.tr/2015/08/sdcc-ile-lcd-uygulamasi-2-16f877a-ders12.html

Burak Günay; Her derleyicinin kendine göre avantajları ve dezavantajları vardır. Sizin sorunuzu "Basic ve C dilleri arasındaki avantaj ve dezavantajlar nedir?"  şeklinde yorumlarsak zannedersem doğru bir tespitte bulunmuş oluruz. Bunu açıklamakta epey uzun bir kitap konusu olur herhalde. Buna tercih olarak bakabiliriz. SDCC C derleyicisi ANSI C uyumlu bir derleyicidir. Yani bir dünya C standardında kod geliştirilebilir. PIC14 ve PIC16 ailesinde kod yazılıp derlenebildiği gibi Intel MCS51 (8031, 8032, 8051, 8052, vs.), Maxim (eskiden Dallas) DS80C390 varyantları, Freescale (eskiden Motorola) HC08 tabanlı (hc08, s08), Zilog Z80 tabanlı MCU lar (z80, z180, gbz80, Rabbit 2000/3000, Rabbit 3000A, TLCS-90) ve STMicroelectronics STM8 gibi bir çok mikrodenetleyici/mikroişlemci kodu yazılıp derlemeyi yapabilecek yetenektedir. En önemliside bunca yeteneğine rağmen açık kaynak ve ücretsiz olan bir derleyicidir. Bu derleyici geliştirme ekibi özellikle öğrencilerin lisansız ürünler kullanmak yerine bunu kullanmalarını tavsiye etmekteler. Daha fazlasını bloğumdaki SDCC etiketine sahip yazılardan bulabilirsiniz.

Burak

#10
Aslında Basic ve C dilleri arasındaki avantaj ve dezavantajlar nedir şeklinde yorumlamak yanlış olur , zira Bir Hi-Tech C ile CCS C arasında bile kod optimizasyonu açısından bir dünya fark var , bu durum uzun ve kısa kodlamalarda basic dilleri arasında dahi ayrıma sebep olabilir .. Değişken alışverişlerine dayalı bir kod yazabilmeye hakimseniz şayet , tüm dillerde aynı boyutta/büyüklüte bir derleme elde edebilirsiniz . O yüzden bunu bireysel derleyici bazında değerlendirmek daha doğru . Tercih meselesi konusu bambaşka bir konu , ben onu kastetmemiştim .

Ben daha çok PicBasic ve CCS C arasındaki ayrımları araştırdım , kendimce çıkartımlar elde ettim ama SDCC ücretsiz bir platformda sunulduğu için ve diğer C dillerine göre daha genç olduğu için merak ettim bu farkları ..

Örneğin ; kütüphaneleri gereği LED panel sistemleri ile uğraşan bir arkadaşım CCS C ile çok daha kolay halledebildiğini söylüyor bazı şeyleri hatta dikkatini illa ki çekenler olmuştur ki Bazı PIC16FXXXX çekirdeğine sahip işlemcilerin kaynakçalarında C diline optimize edilmiştir yazar , hemde kaynakçanın ilk sayfasındaki ilk ibaredir ama hangi C diline optimize edilmiş bir mimariye sahip olduğunu dahada araştırırsanız karşınıza Hi-Tech C çıkacaktır ...
Ücretsiz olmasının yanı sıra PIC14 ve 16 ailelerinde sağladığı ciddi bir avantaj var mıdır ?

Eğer PicBasic'e de hakim biri iseniz bu ayrımları meraklıları ile paylaşabilirsiniz  ...

Burak
Ω Gens Una Sumus Ω

duralikiraz

Benim bu konuda açıkçası söyleyebileceğim fazla birşey yok. SDCC derleyici zaten incelediğinizde Hitec-C nin neredeyse aynısı olduğunu görürsünüz. Genç bir derleyici olduğuna ben katılmıyorum. Çünkü 1999 dan beri geliştirilen bir derleyici. Elbetteki bir CCS C yada MicroC, PicBasic, XC8 gibi ticari yapılarla karşılaştırmak yanlış olur. Çünkü ticari derleyicilerin kod optimizasyonun daha iyi olduğunu düşünüyorum. Fakat bazı zahmetlerine rağmen ben SDCC yi çok beğendim. Zaten bu yüzden bu dersleri oluşturmak benim için bir vazife oldu. Eğer bir mikrodenetleyici yazılım geliştiricisinin derleyici lisansına verecek parası yoksa yada öğrenci ise SDCC onlar için bulunmaz bir ni'mettir bana göre.

Burak

Alıntı yapılan: duralikiraz - 02 Ağustos 2015, 18:53:36
Benim bu konuda açıkçası söyleyebileceğim fazla birşey yok. SDCC derleyici zaten incelediğinizde Hitec-C nin neredeyse aynısı olduğunu görürsünüz. Genç bir derleyici olduğuna ben katılmıyorum. Çünkü 1999 dan beri geliştirilen bir derleyici. Elbetteki bir CCS C yada MicroC, PicBasic, XC8 gibi ticari yapılarla karşılaştırmak yanlış olur. Çünkü ticari derleyicilerin kod optimizasyonun daha iyi olduğunu düşünüyorum. Fakat bazı zahmetlerine rağmen ben SDCC yi çok beğendim. Zaten bu yüzden bu dersleri oluşturmak benim için bir vazife oldu. Eğer bir mikrodenetleyici yazılım geliştiricisinin derleyici lisansına verecek parası yoksa yada öğrenci ise SDCC onlar için bulunmaz bir ni'mettir bana göre.

Genç kelimesini tanınmışlık açısından belirtmiştim , internette yeni yeni konuşulmaya başlandı , daha önce STM8 meraklılarının olduğu bir sitede birkaç SDCC kullanıcısı ile tanıştım ve çok memnun olduklarını ifade ettiler .. , Açıkcası bende sitenize koyduğunuz birkaç dersi takip ettikten sonra SDCC hakkında olumlu düşünüyorum ... Şimdilik "şu şekilde yapılabilseydi güzel olurdu" dediğim ters bir fonksiyonla karşılaşmadım , güzel bir derleyici ...En en en en büyük avantajıda ücretsiz olması ..

Yayınlarınız ve emekleriniz içinde forum adına teşekkür ederim ..

İyi çalışmalar.

Burak
Ω Gens Una Sumus Ω

duralikiraz

Esasında bu katkılarınızdan dolayı ben teşekkür ederim. Eğer şuda olsun dediğiniz birşey olursa derslerde en azından onlarıda beraber inceleme şansımız olur.

duralikiraz


Powered by EzPortal