Derleyici Farkı?

Başlatan Tagli, 05 Aralık 2010, 19:42:05

Tagli

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?
Gökçe Tağlıoğlu

justice_for_all

ilk olarak c18 acik kaynak kodlu programi full debug yapabiliyosun,yazimlari farkli,daha az boyutlu hex olusturuyo...
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

muuzoo

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.
gunluk.muuzoo.gen.tr - Kişisel karalamalarım...

Elektroemre

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...

CLR

#4
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.
Knowledge and Experience are Power

Tagli

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?
Gökçe Tağlıoğlu

X-Fi

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.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

Tagli

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...
Gökçe Tağlıoğlu

Elektroemre

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.

sigmoid

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.

Tagli

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.
Gökçe Tağlıoğlu

KAZIMUGUR

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.

muuzoo

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.
gunluk.muuzoo.gen.tr - Kişisel karalamalarım...

KAZIMUGUR

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

cetinkaya

bence birakin 16f serisi 18 f serisini zaten en bastan ögreneceginiz icin tam ögrenin direk 24f ler ve dsPic  ile girin ortama.