Derleyici ve Programlayıcı Seçimi

Başlatan mokan, 08 Mayıs 2012, 12:09:42

mokan

Merhaba arkadaşlar,
        Mikrodenetleyici dünyasına pic ile başladım ama artık avr atmel ile çalışmak istiyorum. PIC serisine başlarken çok bilinçli değildim, insanlar hangi derleyiciyi kullanıyorsa bende onu tercih ettim. Tercih kriterim derleyici kalitesi değildi yani. Haliyle tecrübe kazandıkça bu kriterlerin önemli olduğunu fark ediyor insan.
       Ben de avr atmele geçerken kafama takılan bazı konlarda, ustalara danışayım dedim. Bunlar haliyle derleyici seçimi ve programlayıcılar ile alakalı olacak.
1.) Derleyici olarak avr studio, win avr ve eclipse den hangisini önerirsiniz? neden? bu derleyicilerin birbirlerine göre avantajları ve dezavantajları nelerdir?

2.) Dil olarak C kullanacağım. Ancak merak ettiğim şey şu; yukarıdaki derleyicilerden herhangi birinde yazdığım C kodunu bir diğerinde sorunsuz derleyebiliyor muyuz? Yani bu derleyicilerin arasında kütüphane (temel kütüphaneler) uyumu mevcut mu? Yoksa her derleyicin kütüphanelerinde ki temel fonksiyonlar (örneğin giriş çıkış fonksiyonları, port işlemlerinde kullanılan fonsiyonlar) farklı mı?

3.)Atmel'e geçişle birlikte programlama cihazına da ihtiyacım olacak haliyle. Ancak artık programlama cihazım ile yukarıda saydığım derleyicilerin uyumlu olmasını istiyorum. Ayrıca programlama kartımın bir çok seriyi desteklemesini istiyorum (8 bitlik ve 16 bitlik serinin bir çok entegresi desteklensin) önerebileceğiniz programlama kartları var mıdır?

parda

AVR ler için C dili ile 2 şekilde program yazabilirsiniz.

1. Meşhur GCC nin AVR için uyarlanmış hali. (benim fikrim Avr ile uğraşanların %50 den fazlası kullanıyor)
2. IAR, Mikroelektronika.. vb. ticari markaların paralı C derleyicileri.

Sizin 1.seçeneği seçeceğinizi düşünürsek;

İlk önce WinAvr denen ve içinde GCC AVR derleyicisi, kütüphane dosyaları ve Programmer Notpad adındaki en temel ve basit IDE ihtiva eden paketi indirip kurmak.
avr studio, programmer notepad ve eclipse sadece GCC avr için bir arayüzdür ve sizin dile getirmediğiniz başka başka arayüzlerde vardır. Alışkanlıklarınız doğruldusunda bu ara yüzlerden birini şeçmek...

avr studio bunlar içinde minimum ayar resmi programlayıcılar ile tümleşik olması ve debug yapması ile biraz daha öne çıkmaktadır. Malum ürünün resmi IDE si

Umarım fikir verebilmişimdir..



Bildiğim tek şey, hiç bir şey bilmediğimdir.

mokan

Alıntı yapılan: parda - 08 Mayıs 2012, 13:22:18
AVR ler için C dili ile 2 şekilde program yazabilirsiniz.

1. Meşhur GCC nin AVR için uyarlanmış hali. (benim fikrim Avr ile uğraşanların %50 den fazlası kullanıyor)
2. IAR, Mikroelektronika.. vb. ticari markaların paralı C derleyicileri.

Sizin 1.seçeneği seçeceğinizi düşünürsek;

İlk önce WinAvr denen ve içinde GCC AVR derleyicisi, kütüphane dosyaları ve Programmer Notpad adındaki en temel ve basit IDE ihtiva eden paketi indirip kurmak.
avr studio, programmer notepad ve eclipse sadece GCC avr için bir arayüzdür ve sizin dile getirmediğiniz başka başka arayüzlerde vardır. Alışkanlıklarınız doğruldusunda bu ara yüzlerden birini şeçmek...

avr studio bunlar içinde minimum ayar resmi programlayıcılar ile tümleşik olması ve debug yapması ile biraz daha öne çıkmaktadır. Malum ürünün resmi IDE si

Umarım fikir verebilmişimdir..

Yani bu üç arayüz de GCC desteklediğinden dolayı, herhangi birinde yazılan C kodu bir diğerinde derlenebilir mi?

parda

Alıntı yapılan: mokan - 08 Mayıs 2012, 13:41:17
Yani bu üç arayüz de GCC desteklediğinden dolayı, herhangi birinde yazılan C kodu bir diğerinde derlenebilir mi?

Programın noktasına bile dokunmadan derlenebilir.
Bildiğim tek şey, hiç bir şey bilmediğimdir.

arm-beginner

PIC'den Atmel'e geçişini tekrar düşün bence.
Atmel ve Microchip'in sunduğu yelpazeye bakarsan, bence Microchip Atmel'den çok ilerde.

Parantez içinde: ben 15 sene evvel PIC kullanıyordum. Sonra Atmel'e geçtim. O zamanlar için doğru karardı.

Bir farnell'e göz atarsan: PIC yaklaşık 1150 çeşit var.
Atmega + Attiny: 32 adet.
Fiyatlara bakarsan: Atmel saçmaladı.
Compiler: Atmel hep IAR'ı dikkate aldı. GCC çok sonra üvey evlat seviyesinde destek gördü. (Ayrıca GCC'nin yapısı 8-bit microişlemciler için uygun değil.) Kütüphane desteği Atmel tarafından hiç yok.
Microchip ama bu konuda çok ileri görüşlü: kendi compiler'ı var, herşey için bir kütüphane sunuyor (USB'den tut, Ethernet'e kadar) ve sen Amerika'yı tekrar keşfetmek zorunda değilsin.
Elbette PIC12 ve PIC16 lerden bahsetmiyorum (onlar yüzünden zaten Atmel'e geçmişdim). Ama PIC18, 24 ve 32'ler sonderece başarılı mikroişlemciler.

Bir zamanlar PIC'e geri dönmeyi çok düşündüm. Ama sonra ARM'a geçiş yaptım. Şimdi küçük işler için Atmel kullanıyorum, daha büyük işler için Arm.


mokan

Alıntı yapılan: arm-beginner - 08 Mayıs 2012, 19:35:05
PIC'den Atmel'e geçişini tekrar düşün bence.
Atmel ve Microchip'in sunduğu yelpazeye bakarsan, bence Microchip Atmel'den çok ilerde.

Parantez içinde: ben 15 sene evvel PIC kullanıyordum. Sonra Atmel'e geçtim. O zamanlar için doğru karardı.

Bir farnell'e göz atarsan: PIC yaklaşık 1150 çeşit var.
Atmega + Attiny: 32 adet.
Fiyatlara bakarsan: Atmel saçmaladı.
Compiler: Atmel hep IAR'ı dikkate aldı. GCC çok sonra üvey evlat seviyesinde destek gördü. (Ayrıca GCC'nin yapısı 8-bit microişlemciler için uygun değil.) Kütüphane desteği Atmel tarafından hiç yok.
Microchip ama bu konuda çok ileri görüşlü: kendi compiler'ı var, herşey için bir kütüphane sunuyor (USB'den tut, Ethernet'e kadar) ve sen Amerika'yı tekrar keşfetmek zorunda değilsin.
Elbette PIC12 ve PIC16 lerden bahsetmiyorum (onlar yüzünden zaten Atmel'e geçmişdim). Ama PIC18, 24 ve 32'ler sonderece başarılı mikroişlemciler.

Bir zamanlar PIC'e geri dönmeyi çok düşündüm. Ama sonra ARM'a geçiş yaptım. Şimdi küçük işler için Atmel kullanıyorum, daha büyük işler için Arm.

Benim pic'de yaşadığım en büyük sıkıntı endüstriyel uygulamalarda oluyor. Motor kontrolünde endüstriyel uygulamalarda özellkikle fazlaca sıkıntı yaşıyorum. Bunun yanı sıra elektriksel gürültüler çok etkiliyor microchip serisini. Bundan dolayı atmel avr ye geçmek istiyorum. Ben hep PIC16 serisi kullandım. Elektriksel gürültülerden devreyi yalıtmak için yapmadığım şey kalmıyordu ve yinede tam randıman alamıyordum. PIC18 hiç kullanmadım ve onda durum nasıl bilmiyorum ama zerre güvenimde kalmadı pic'e :)

mokan

Alıntı yapılan: parda - 08 Mayıs 2012, 14:46:14
Programın noktasına bile dokunmadan derlenebilir.

İşte en çok merak ettiğim şey bu idi. Peki programlama kartı olarak önerebileceğiniz bir model var mı?

mokan

Atmel'in sitesini karıştırırken aklıma geldi. 8051 mimarisi atmel denetleyicileri hakkında neler söyleyebilirsiniz? Bu mimari endüstriyel kullanıma uygunmudur? Yoksa avr daha mı iyi?

arm-beginner

Alıntı yapılan: mokan - 08 Mayıs 2012, 21:01:55
.. Bunun yanı sıra elektriksel gürültüler çok etkiliyor microchip serisini. Bundan dolayı atmel avr ye geçmek istiyorum. ...

Daha çok yurtdışındaki forumlara takılıyorum. Ve orda hiç böyle bir şikayet duymadım. Okay, Microchip ile ilgili yazılları pirinç ayıklar gibi okumuyorum; ama böyle bir özellik kesin dikkatimi çekerdi. Ne Atmel, ne Microchip hakkında böyle bir şikayet duydum. Bu bir  EMV sorunu. Ve bu sorun doğru PCB tasarımı, topraklama, kutu seçimi vs. ile çözülür.
Bu sorunu çözmek için mikroişlemciyi değiştirme girişimin sadece zaman ve kaynak kayıbı olacak. Bence :)

mokan

Bu dediğiniz benden de kaynaklı olabilir bilmiyorum ama yinede ben atmel serisini de kendi gözümle görmek istiyorum. Bakalım neler olacak :)

leblebitozu

@mokan

AVR serisi 8051'den daha iyidir, 8051 mimarisi çakılmaya daha yatkındır.

parda

@arm-beginner pek gaddar yaklaşmışsınız :). Bir iki düzeltme ve ekleme yapmadan edemedim.

Alıntı yapılan: arm-beginner - 08 Mayıs 2012, 19:35:05
Atmel ve Microchip'in sunduğu yelpazeye bakarsan, bence Microchip Atmel'den çok ilerde.
Her iki üretici için biri diğerinden çok ilerde demek biraz iddalı olur.

Alıntı yapılan: arm-beginner - 08 Mayıs 2012, 19:35:05
Bir farnell'e göz atarsan: PIC yaklaşık 1150 çeşit var.
Atmega + Attiny: 32 adet.
muhtemelen pic ürün sayısı avr den fazladır ama 32 sayısı kesinlikle hatalı lakin bu kadar olmasada yarısı kadar farklı atmel benim odamda mevcut.

Alıntı yapılan: arm-beginner - 08 Mayıs 2012, 19:35:05
Fiyatlara bakarsan: Atmel saçmaladı.
son dönemde haklısınız ama buna rağmen modele göre değişir herhalde ama yinede ya daha ucuz yada aynı fiyattalar

Alıntı yapılan: arm-beginner - 08 Mayıs 2012, 19:35:05
Compiler: Atmel hep IAR'ı dikkate aldı. GCC çok sonra üvey evlat seviyesinde destek gördü. (Ayrıca GCC'nin yapısı 8-bit microişlemciler için uygun değil.) Kütüphane desteği Atmel tarafından hiç yok.
pic in hatta herhangi başka bir markanın hiçbir derleyicisi Avr GCC kadar yaygın kullanılmıyordur diye düşünüyorum.

Alıntı yapılan: arm-beginner - 08 Mayıs 2012, 19:35:05
Kütüphane desteği Atmel tarafından hiç yok.
Microchip ama bu konuda çok ileri görüşlü: kendi compiler'ı var, herşey için bir kütüphane sunuyor (USB'den tut, Ethernet'e kadar) ve sen Amerika'yı tekrar keşfetmek zorunda değilsin.
avr studio 6 ile 1100 den fazla kullanılabilir proje gelmektedir. IAR ve GCC basit define lar ile ayrılmış kolayca her iki derleyici ile derlenebilmektedir. Ayrıca herhangi bir konuda ve/veya donanımda gcc kütüphanelerinden bol bol bulunmaktadır. Bulamadım diyen aşırı hazırcı yada saftır diyelim.
Unutmamak gerekir ki pic derleyicileri ciddi paralar ister. Hoş biz pek takmayız bu durumu ama yazmadan edemedim.

Alıntı yapılan: arm-beginner - 08 Mayıs 2012, 19:35:05
Elbette PIC12 ve PIC16 lerden bahsetmiyorum (onlar yüzünden zaten Atmel'e geçmişdim). Ama PIC18, 24 ve 32'ler sonderece başarılı mikroişlemciler.
xmega ve avr32 lerde fena sayılmazlar..
Bildiğim tek şey, hiç bir şey bilmediğimdir.

arm-beginner

Alıntı yapılan: parda - 09 Mayıs 2012, 11:04:46
muhtemelen pic ürün sayısı avr den fazladır ama 32 sayısı kesinlikle hatalı lakin bu kadar olmasada yarısı kadar farklı atmel benim odamda mevcut.

Bu rakkamlarla ben Atmel'in sadece 32 farklı ürüne sahip olduğunu ifade etmek istememişdim. İfade etmek istediğim: Microchip PIC'lerle çok daha geniş bir yelpazeye sahip ve piyasada bu yelpazenim fasetlerine daha kolay ulaşılabiliniyor.
İsterseniz birde Digikey'e göz atınız. Ordaki sayılar 10.800 : 1.400



bocek

konu yine "microchip mi döver atmel mi?"  noktasına geldi. bitmez bu.
@mokan senin sorularını bir de ben cevaplayayım.
madem atmel'e merak sardın
1.) derleyici olarak beleş ve yaygın olması hasebiyle avr-gcc kullanmanı öneririm (sonra gerekirse kırık iar filan denersin)
avr studio, eclipse, winavr bunlar programlama ortamlarıdır (IDE). avr studio en yaygın olanı. son sürüm olan 6.0'da adını atmel studio olarak değiştirdi ve ARM desteği de sağlamaya başladı. yani ister 8 bit avr programla, ister atmel arm, hepsini bu ide sayesinde yapabilirsin.
şurdan indirebilirsin.
http://www.atmel.com/microsite/atmel_studio6/
2.)  kütüphane konusunda sıkıntı çekmezsin, bulacağın örnekler %90 oranında avr-gcc kaynaklıdır.
www.mikrocontroller.net (alamanca)
www.ourdev.cn (çince)
www.avrfreaks.net (ingilizce)
www.berik.net (türkçe)
buralarda istediğin hemen her kütüphaneyi bulabilirsin.
3.) programlayıcı cihaz olarak en yaygını usbasp'dir. kodu, şeması, pcb'si her şeyi açık kaynaklıdır. ister uğraşır kendin yaparsın, istersen ebay'dan 3-4$'a kargo dahil alırsın.
usbasp'yi kendin yaptın diyelim. usbasp'nin işlemcisini nasıl programlayacağım dersen:
http://elm-chan.org/works/avrx/avrx_lpt.png
4 adet direnç ve paralel portu olan bir bilgisayar ve ponyprog ile usbasp'nin işlemcisini bir kez programlarsın. daha sonra sürekli usbasp'yi kullanırsın.
işlemciye yazılım atma işinde kullanacağın program olarak avr-burn-o-mat en yaygın olanıdır.

atmel'e başlarken dikkat etmen gereken en önemli nokta fuse ayarları denilen mevzudur. avr'lerde pic'teki gibi sigorta ayarları yazılımla yapılmaz. programlayıcı ile dışardan ayrıca programlanır. ilk denemelerinde sürekli olarak dahili osilatörleri seçersin.
bazı sigorta bitleri tehlikelidir. bu bitleri değiştirince geri döndürmek için 'high voltage' programlayıcıya ihtiyaç duyarsın, ya da o mcu'dan vazgeçersin. bu sigorta ayarları yüzünden çok avr mevta olmuştur. o yüzden ilk denemelerinde atmega16, atmega32 gibi pahalı olanları değil de atmega8'i tercih edersen daha iyi olur.
1 ya da 0. işte 'bit'ün mesele..

mokan

#14
Yoğun olduğum için ancak bugün bakabildim başlığa. Öncelikle tüm herkese teşekkür ederim kafamdaki sorularının bir çoğuna cevap bulabildim.
Alıntı yapılan: bocek - 09 Mayıs 2012, 15:12:49
konu yine "microchip mi döver atmel mi?"  noktasına geldi. bitmez bu.
@mokan senin sorularını bir de ben cevaplayayım.
madem atmel'e merak sardın
1.) derleyici olarak beleş ve yaygın olması hasebiyle avr-gcc kullanmanı öneririm (sonra gerekirse kırık iar filan denersin)
avr studio, eclipse, winavr bunlar programlama ortamlarıdır (IDE). avr studio en yaygın olanı. son sürüm olan 6.0'da adını atmel studio olarak değiştirdi ve ARM desteği de sağlamaya başladı. yani ister 8 bit avr programla, ister atmel arm, hepsini bu ide sayesinde yapabilirsin.
şurdan indirebilirsin.
http://www.atmel.com/microsite/atmel_studio6/

Son yazılanları okuduktan sonra merak ettiğim bir şeyde,  İAR'ın diğer derleyicilere göre sağladığı avantajlar-dezavantajlar, kısaceası farkları nelerdir peki?