Picproje Elektronik Sitesi

DERLEYİCİLER => PIC C => Konuyu başlatan: Tagli - 05 Aralık 2010, 19:42:05

Başlık: Derleyici Farkı?
Gönderen: Tagli - 05 Aralık 2010, 19:42:05
MPLAB C ile HI-TECH C arasında ne fark vardır? Gerçi destekledikleri aileler farklı ama 18 serisi için iki derleyinin de desteği var gibi görünüyor. Program yazımı açısından bir fark var mıdır yoksa fark sadece optimizasyon vs. gibi şeyler için mi söz konusudur?
Başlık: Ynt: Derleyici Farkı?
Gönderen: justice_for_all - 05 Aralık 2010, 19:55:54
ilk olarak c18 acik kaynak kodlu programi full debug yapabiliyosun,yazimlari farkli,daha az boyutlu hex olusturuyo...
Başlık: Ynt: Derleyici Farkı?
Gönderen: muuzoo - 06 Aralık 2010, 00:22:15
Benim de şahsi görüşüm 18 serisi için C18 ile yola devam etmek. HI-TECH için bir gelecek görmüyorum artık.
Başlık: Ynt: Derleyici Farkı?
Gönderen: Elektroemre - 06 Aralık 2010, 00:51:01
Alıntı yapılan: muuzoo - 06 Aralık 2010, 00:22:15
Benim de şahsi görüşüm 18 serisi için C18 ile yola devam etmek. HI-TECH için bir gelecek görmüyorum artık.

Katılıyorum. Hi-tech'i çok seviyorum ancak 12F-16F serileri için ideal. Son zamanlarda Atmeller pahalanınca 18F serisine döndüm, C18'i bi kurcalayayım dedim, MPLAB X'te bal kaymak kattı olaya (birtek port tanımlamalarını garipsedim).
C18 fazla kod üretiyor deniliyor, ancak kodun garip yerde çatlayıp patlamasındansa daha fazla yer kaplamasını, biraz daha yavaş çalışmasını tercih ederim.
Bir projeyi verilen donanımla, sağlıklı bir biçimde yaptıktan sonra kodum 32 KB'lik PIC'te 21 KB kaplasa ne olur 24 KB kaplasa ne olur? Bir işlem 100 ms de yapılmış ne olur, 105 ms de yapılmış ne olur?
Verilen zamanda verilen iş yapılıyorsa tamamdır. Bir ara resmen takıntıydı bende kodu 3-5 byte kırpıp az yer kaplatmak. Sonunda kurtulduk ama.
Ayrıca Microchipin 'Microchip Solutions' adı altındaki rnekleri başlı başına bir hazine zaten. USB örneği falan cezbetti beni...

@tagli hocam, benim tavsiyem 12F-16F için Hi-Tech, 18F serileri içinde C18.

İyi çalışmalar...
Başlık: Ynt: Derleyici Farkı?
Gönderen: CLR - 06 Aralık 2010, 01:59:49
Alıntı yapılan: Tagli - 05 Aralık 2010, 19:42:05
MPLAB C ile HI-TECH C arasında ne fark vardır? Gerçi destekledikleri aileler farklı ama 18 serisi için iki derleyinin de desteği var gibi görünüyor. Program yazımı açısından bir fark var mıdır yoksa fark sadece optimizasyon vs. gibi şeyler için mi söz konusudur?

Karşılaştırmaları burada,
http://www.xargs.com/pic/picc18-vs-c18.html

Ticari uygulamalarda
C18, PICC18'den %29 daha fazla yer kaplıyor, dolayısıyla yavaş çalışıyor,  Hitech daha iyi

Microchip TCP/IP Stack uygulamalarında , microchip stack kullanılırsa
C18 biraz daha iyi

Matematik uygulamalarında ise (floating lerde)
hitech, C18den %137 daha az yer kaplıyor, dolayısıyla hızlı çalışıyor

Microchip boşuna hitech'i almadı, düşünsenize chip'i üreten adamlardan daha iyi code opmizasyonu yapan derleyici yazmışlar.
Başlık: Ynt: Derleyici Farkı?
Gönderen: Tagli - 06 Aralık 2010, 08:45:28
Değerli yorumlarınız için teşekkürler. eemkutay, verdiğin linki inceledim. Hi-Tech C çok daha iyi görünüyor, ki bunu hafıza karşılaştırmalarını göz önünde bulundurmadan, diğer özelliklere bakarak söylüyorum.

Diğer arkadaşlara soruyorum: Acaba C18'i önermenizin sebebi nedir? Hi-Tech'e göre üstünlükleri var mıdır?

Bu başlığı açmamdaki sebep, sıfırdan PIC programlama öğrenmek isteyen bir grup arkadaş için (ve de kendim için) bir başlangıç noktası belirlemek. Kendileri doğal olarak assembly ile başlamak konusunda biraz isteksizler. Kafamı karıştıran nokta şu oldu: Başlangıç olarak 16 serisi PIC'lerle başlamak daha uygun gibi. Bu durumda zaten Hi-Tech tek seçenek. Ama onlarla birlikte ben de C öğreneceğim ve ilerde eğer 24 ve daha ileri ailelere geçersem bu sefer de Hi-Tech kullanamayacağım ve yeni bir derleyiciye alışmak zor olacak. Acaba hep beraber Hi-Tech öğrenmek yerine, onlara 16 serisinde biraz assembly gösterdikten sonra hep beraber C18 öğrenmeye başlarsak ileride bizim için daha mı faydalı olur?
Başlık: Ynt: Derleyici Farkı?
Gönderen: X-Fi - 06 Aralık 2010, 09:36:34
tagli hocam merhaba hi-tech 18F de saç baş yolduruyor özellikle rom ve boot ile ilgili kısımlar sırf asm hi-tech üzerinde geliştirilmemiş yeni versiyonlarını bilemiyoruz ama ticari olarak zayıf sadece 12F 16F serisinde başarılı bu serilerde zaten işlemci gücü ve program hafızası sınırı olduğu için hi-tech kullanılabilir.

hi-techde yazdığım bazı bol parantezli tek satırlı kodları C18 derlemedi açtım sadeleştirdim sonuçda iki farklı derleyici birbirlerinden farklı olacaklartır ancak hi-tech'in C tanımlama yeteneği daha iyi hi-techde yazılmış kodları C18 e çevirirken değişiklik gerekebilir ayrıca hi-techin hızlı olması daha az kod üretmesi hata yapacağı anlamına gelmez hata yapıyorsa kodu yanlış yerleştirdiğinizden veya daha önce denemediğinizden kaynaklanır bu sorun her derleyicide var debug dediğimiz şeyde bu yüzden var.

microchip tüm bunları farkedip C18 de geliştirmeler yaparsa hi-tech diye bişey kalmıyacak böylece C18 microchipin winavr si olacak gibi.

C18 her yönüyle revaşda yeni öğrenecekler bununla başlamalı bence.
Başlık: Ynt: Derleyici Farkı?
Gönderen: Tagli - 06 Aralık 2010, 11:37:11
Bu durumda ikinci seçenek daha mantıklı gibi. 16 serisinde assembly ile giriş yapıp sonra 18 serisi işlemcilere C18 ile geçmek. Böylece ileride PIC24 veya dsPIC ile çalışacak olursak, alıştığımız bir derleyici kullanmış oluruz. Yorumlarınız için teşekkürler...
Başlık: Ynt: Derleyici Farkı?
Gönderen: Elektroemre - 06 Aralık 2010, 12:17:43
Alıntı yapılan: Tagli - 06 Aralık 2010, 11:37:11
Bu durumda ikinci seçenek daha mantıklı gibi. 16 serisinde assembly ile giriş yapıp sonra 18 serisi işlemcilere C18 ile geçmek. Böylece ileride PIC24 veya dsPIC ile çalışacak olursak, alıştığımız bir derleyici kullanmış oluruz. Yorumlarınız için teşekkürler...

Hocam, bir grup arkadaşla birlikte öğreneciğiniz diyorsunuz, eğer diğer arkadaşların programlama ve uC'lerin işleyişi hakkında fazla ön bilgisi yoksa, asm işkence gibi gelecektir.
Yeni kod yazmaya başlayan bir insan için 10 satır kod yazmak bile büyük dert iken, siz asmde a=b*c gibi bir ifade için bile 10larca satır kod yazılacağını söylerseniz insanlar iyice soğur (burada empati kurup bunları söylüyorum).
3 yıl önce haydi yallah diyip bu programlama işine gireyim dediğimde asm'yle basit led işlemleri için bile günlerce uğraştım uC'nin işleyiş biçimini tam anlayamadım. Şevkim kırıldı bıraktım.
Sonra üst seviyeli dillere geçtim. Konfor öğrenme isteğimi artırdı. Bir noktadan sonra uC'nin işleyişinide daha iyi anlamaya başladım, registerleri kurcaladım çözüm için algortima nasıl tasarlanır öğrendim vs...
Şuan gerektiğinde asm kodlarıda takip ediyorum ve kodumda kullanabiliyorum, çünkü ana mantığa hakimim.
Ayrıca asm öğrenip o kdar emek harcasalar bile, sadece 16F'in asmsini öğrenmiş olacakalar, 18F'in bile asmsinde farklı komutlar var. Kaldıki piyasada 24F'i, 32F'i,  Atmeli, ARM'si, TI'ı, ST'si vs. var babam var...
Benim bir öğrenci gözüyle bakış açım bu önce C, sonra gerekirse asm.

İyi çalışmalar.
Başlık: Ynt: Derleyici Farkı?
Gönderen: sigmoid - 06 Aralık 2010, 13:42:39
hemen birşeyler yapmak isteyenler için mikroc yi öneririm. hiç pic bilmeyen biri bile mikrocnin helpindeki örneklerle bir çok şeyi kolayca yapabilir. böylece insanin hevesi kirilmaz. yalniz profesyoneller için mikroc yi asla önermem. kütüphaneleri kapalidir. arkaplanda ne olduğunu asla bilemezsiniz. kütüphanelerin kapali olmasi size ayrica esnekliğide elinizden alir. mikrocde büyük projeler yapmaya başladiğinizdasizi yari yolda birakabilir ve kütüphaneler nedeniyle kodlarinizi taşiyamazsiniz.
bu işi tam olarak öğreneceğim derseniz assembly bilgisi microdenetleyicinin nasil çaliştiğini öğrenmeniz için size büyük kolaylik sağlar. sonra pic16 serisi için hitechc yi tavsiye ederim. mikroc ile karşilaştirildiğinda içinde kütüphanesi yok gibidir. insan ilk baştakendini boşlukta hissedebilir. ama işi çözerseniz size tam hakimiyet verir. pic18 serisi içinde c18 si tavsiye ederim. nede olsa microchip tarafindan yazilmiştir. c18 in gcc tabanli bir derleyici olduğunuda ekleyeyim.
Başlık: Ynt: Derleyici Farkı?
Gönderen: Tagli - 06 Aralık 2010, 14:07:58
Benim de amacım arkadaşları işin temelinden başlatmak. Eğer iş yürümezse doğrudan MPLAB C ile PIC18 veya dsPIC'lere geçebiliriz, ki bu konuda ben de sıfırdan başlıyor gibi olacağım. Bu arada, bu arkadaşların bilgisayarda program yazma konusunda iyi kötü deneyimleri var.
Başlık: Ynt: Derleyici Farkı?
Gönderen: KAZIMUGUR - 06 Aralık 2010, 15:10:16
CCS yi araştırmanızı öneriyorum.
Çeşitli zamanlarda şunu yaptırmıyor buna hakim değiliz gibi söylemlerin olduğu yerlerde bu işi iyi bilen @aliveli gibi hocalarımız nasıl yapılacağını gösterdiler.
Hakkında çok güzel TR kitap oluşu bolca örneklerinin bulunuşu başlangıç için ideal.
Yeni başlayanın işi görülsün zevkini alsın gibisinden hazır-kolay fonksiyonlarda var.
Ben onların içine ... derseniz mümkün , yeterki işi bilin.

Sonra ilerde karizma için istediğinize geçersiniz.
Hiçde sıkıntı olmaz , 1-2 gün help karıştırmak yeterde artar bile.
Başlık: Ynt: Derleyici Farkı?
Gönderen: muuzoo - 06 Aralık 2010, 19:10:51
Alıntı yapılan: eemkutay - 06 Aralık 2010, 01:59:49
Alıntı yapılan: Tagli - 05 Aralık 2010, 19:42:05
MPLAB C ile HI-TECH C arasında ne fark vardır? Gerçi destekledikleri aileler farklı ama 18 serisi için iki derleyinin de desteği var gibi görünüyor. Program yazımı açısından bir fark var mıdır yoksa fark sadece optimizasyon vs. gibi şeyler için mi söz konusudur?

Karşılaştırmaları burada,
http://www.xargs.com/pic/picc18-vs-c18.html

Ticari uygulamalarda
C18, PICC18'den %29 daha fazla yer kaplıyor, dolayısıyla yavaş çalışıyor,  Hitech daha iyi

Microchip TCP/IP Stack uygulamalarında , microchip stack kullanılırsa
C18 biraz daha iyi

Matematik uygulamalarında ise (floating lerde)
hitech, C18den %137 daha az yer kaplıyor, dolayısıyla hızlı çalışıyor

Microchip boşuna hitech'i almadı, düşünsenize chip'i üreten adamlardan daha iyi code opmizasyonu yapan derleyici yazmışlar.


Yalnız şöyle bir durum var karşılaştırmanın yapıldığı tarih Nisan 2004.  6 yıl önce yapılmış bir karşılaştırma ile şimdi yorum yapmak çok sağlıklı değil bana göre.
Başlık: Ynt: Derleyici Farkı?
Gönderen: KAZIMUGUR - 06 Aralık 2010, 19:20:20
Yoğurtcu , yoğurdum ekşi demez . ::)

Daha güncel (güncelik ne kadar subjektiftir ayrı konu) tablolar :

http://www.ccsinfo.com/content.php?page=newcompilercomp (http://www.ccsinfo.com/content.php?page=newcompilercomp)
Başlık: Ynt: Derleyici Farkı?
Gönderen: cetinkaya - 06 Aralık 2010, 21:01:55
bence birakin 16f serisi 18 f serisini zaten en bastan ögreneceginiz icin tam ögrenin direk 24f ler ve dsPic  ile girin ortama.
Başlık: Ynt: Derleyici Farkı?
Gönderen: justice_for_all - 06 Aralık 2010, 21:11:08
daha 8 bitliklerin mantigini anlamadan 16 bitlikleri nasil yapmayi dusunuyosunuz peki...

cunku 16 bitlerin registerleri biraz daha karmasik ve ayrintili yeni baslayan birisi soguyabilir...
hem devren kucukse ve 8bitlik denetleyici yetiyosa 16 bitlik kullanmanin amaci nedir?devir ekonomi  devri oldugu icin ureticiler minimum fiyatta urun uretmek istiyolar bana gore 8bitten baslanarak yavasca yukari dogru cikilmasi...(merdiveni teker teker cikmak varken neden ucer ucer cikarak kendinizi yormak isteyesiniz?)
Başlık: Ynt: Derleyici Farkı?
Gönderen: cetinkaya - 06 Aralık 2010, 21:23:18
16 bitligi ögrenen 8 bitlikler cocuk oyuncagi gelir.
Başlık: Ynt: Derleyici Farkı?
Gönderen: justice_for_all - 06 Aralık 2010, 21:28:01
okuma yazmayi yeni ogrenen cocuklara neden kelime kelime degilde harf harf ogrettiklerini dusundun mu?
Başlık: Ynt: Derleyici Farkı?
Gönderen: cetinkaya - 06 Aralık 2010, 21:36:05
hocam ne alaka 8 bitlik bilmeyen bir islemciyi simdi bilmeyen birisi fpga cpld yi ögrenemezmi yani ? Ordada sifirdan basliyor insanlar belli temel bilgiler haric.
Başlık: Ynt: Derleyici Farkı?
Gönderen: justice_for_all - 06 Aralık 2010, 21:42:05
ogrenir hocam o daha farkli ama 16 bitliktan baslasa bile 8 bitligi yine ogrenmek zorunda bu sitede bile agirlik hangi serilerde projeler yapiliyo ,sorular soruluyo?
Başlık: Ynt: Derleyici Farkı?
Gönderen: cetinkaya - 06 Aralık 2010, 21:46:32
tamam orda hakli olabilirsiniz ama ben kendi dusundugumu söyledim.
Başlık: Ynt: Derleyici Farkı?
Gönderen: justice_for_all - 06 Aralık 2010, 21:48:56
dusundugunuze saygi duyuyorum hocam...Iyi Calismalar...
Başlık: Ynt: Derleyici Farkı?
Gönderen: cetinkaya - 06 Aralık 2010, 21:52:32
ne zaman ve nereye askere gidiceksin kac aylik ?
Başlık: Ynt: Derleyici Farkı?
Gönderen: iyildirim - 06 Aralık 2010, 21:57:44
Bir buçuk iki yıl kadar öncesine kadar eline bir mikrodenetleyici almamış olan ben, kafamdaki proje için başlamadan önce işlemci, dil, derleyici, örnek uygulamaları  gibi şeyleri yaklaşık 1-2 ay inceledim. Benim avantajım yazılım konusuna hakim olmamdı. Önce proje ihtiyaçlarına göre işlemci belirledim. Bunu yaparken konuya çok yeni olduğum için yurtiçinde bulabildiğim 16 bitlik işlemcilerle başladım. ARM, Atmel vs. gibi diğer işlemcileri düşününce dil olarak; taşınabilirliği ve işlemci üzerindeki hakimiyet vs. gibi nedenlerle daha önce hiç C kullanmamış olmama rağmen C seçtim. Şu anda baktığımda ne kadar doğru karar verdiğimi görüyorum. 16 bitlik değilde PIC18 işlemcilerle çalışsaydım da yine C seçerdim.
Başlık: Ynt: Derleyici Farkı?
Gönderen: sigmoid - 06 Aralık 2010, 22:55:22
basit bir röle kontrolü içinde 16bit işlemci mi kullanalım? Şu ana kadar yaptığım projelerde pic16 serisinden başka picleri dahi nadir kullanmışımdır.
Başlık: Ynt: Derleyici Farkı?
Gönderen: iyildirim - 06 Aralık 2010, 23:51:34
Benim amacım ticari olmadığından röle için de 16 bitlik bir işlemci kullanabilirim.  Sonuçta seri üretim falan yapmıyorum. 
Benim için önemli alışık olduğum ortamın olabildiğince esnek olması. Ayrıca 16 bitlik işlemci kullanın da demedim. Söylediğim "8 bitlik işlemci kullansaydım da PIC18 ve C seçerdim" di.  Herhangi bir işlemciyi de kötülemiyorum .
Düşündüğüm; işlemci seçiminin tamamen uygulamaya, maliyete, esnekliğe vs bağlı olduğu. Bu parametreler de doğal olarak herkese göre değişebilir.
Birşeyler yazmamın nedeni sadece kendime ait karar verme sürecimi paylaşmak.
Başlık: Ynt: Derleyici Farkı?
Gönderen: Tagli - 07 Aralık 2010, 02:48:39
Er ya da geç ileri PIC modellerine (veya PIC harici bir işlemciye) geçmemiz gerekecek çünkü asıl amacımız kontrol teorisi ile ilgili çalışma yapmak ve bu da yüksek bir hesaplama gücü gerektirecek sanıyorum.

Bu arada merak edip dsPIC30F'lerin komut setlerine baktım da, neredeyse C de yazar gibi assembly kodu yazmak mümkün. Döngü kurmak için donanımsal destek bile varmış.
Başlık: Ynt: Derleyici Farkı?
Gönderen: CLR - 08 Aralık 2010, 09:43:38
Alıntı yapılan: muuzoo - 06 Aralık 2010, 19:10:51
Alıntı yapılan: eemkutay - 06 Aralık 2010, 01:59:49
Alıntı yapılan: Tagli - 05 Aralık 2010, 19:42:05
MPLAB C ile HI-TECH C arasında ne fark vardır? Gerçi destekledikleri aileler farklı ama 18 serisi için iki derleyinin de desteği var gibi görünüyor. Program yazımı açısından bir fark var mıdır yoksa fark sadece optimizasyon vs. gibi şeyler için mi söz konusudur?

Karşılaştırmaları burada,
http://www.xargs.com/pic/picc18-vs-c18.html

Ticari uygulamalarda
C18, PICC18'den %29 daha fazla yer kaplıyor, dolayısıyla yavaş çalışıyor,  Hitech daha iyi

Microchip TCP/IP Stack uygulamalarında , microchip stack kullanılırsa
C18 biraz daha iyi

Matematik uygulamalarında ise (floating lerde)
hitech, C18den %137 daha az yer kaplıyor, dolayısıyla hızlı çalışıyor

Microchip boşuna hitech'i almadı, düşünsenize chip'i üreten adamlardan daha iyi code opmizasyonu yapan derleyici yazmışlar.


Yalnız şöyle bir durum var karşılaştırmanın yapıldığı tarih Nisan 2004.  6 yıl önce yapılmış bir karşılaştırma ile şimdi yorum yapmak çok sağlıklı değil bana göre.

Merhaba,

Yorumunu daha yeni okudum, C18 ve PICC18 ikisinide kullandım, hitech kullanıyorum diye yorum yapmıyorum. 6 yıl içinde microchip assembly komut tablosunu mu değiştirdi ki bu karşılaştırma değişsin? Asm komut tablosu değişmediğine göre hitech daha iyi(ydi). Veya microchip hitech'i veya iar'ı örnek alıp biz üreticiyiz ama bizden daha iyi macro yazan adamlar var demekki c18'in asm macrolarını daha çok kompanze etmeliyiz diye karar almışlar veya ne yapsak olmuyor "en iyisi hitech'i satın alalım" diye karar vermiş olabilirler. :)    Hitech kullandım çünkü daha fazla C standartlarına uygun. Bunun anlamı şudur, Microchip C18 deki kodu C30'a bile geçirirken birsürü değişiklik gerekir ama Hitech PICC18den PICC30'a geçirirken işlemci tanımıyla ilgili kısımlardan başka değişiklik gerekmez.  Çoğu insanın C18'i seçmesinin sebebi, üreticinin derleyicisi olması ve library'si, maksat işlemci içine düşmeden kod yazmak. Yoksa hitech'le yazdım kod şişti, c18 ile yazdım rahat çalışıyor diye birşey olmaz. İkiside birbirine çok yakın derleyici.

Sonuç olarak C18 değişti :) evet ama microchip hitech'i satın aldıktan sonra. 
Başlık: Ynt: Derleyici Farkı?
Gönderen: Tagli - 08 Aralık 2010, 10:49:30
Ben buradaki (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en534868) tabloya bakarak Hi-Tech derleyicisinin 18 serisinde sonra desteği olmadığı sonucuna varmıştım. Ama şimdi farkettim ki Enterprise Edition tüm PIC'leri destekliyormuş.