Sade Bir C Derleyicisi

Başlatan Bayramsumbul, 24 Ağustos 2013, 23:24:38

Bayramsumbul

Merhaba Arkadaşlar...Bu Soru Aklımı Çok Kurcaladı.Acaba Arm Programlarken Yaptığımız Gibi Sade Bir C Derleyicisi Yok mu?(Bana Göre Bu Derleyici Keil)
Yani Kendi Kütüphanesi Olmayacak.Kendi Fonksiyonları Olmayacak.(CCS C Gibi) C İle Tamamen Uyumlu Olacak.Saçma Sapan Hatalar Vermeyen(Bknz:CCS C).Program Yazarken Kendi Kütüphanemizi Oluşturabileceğimiz,Aynı Asm Gibi Sadece picxxxxxx.h Dosyasını Eklediğimiz
(Hatta İçimden Bunu Bile Kendim Yazmak Geçiyor).İnşallah Derdimi Anlatabilmişimdir.Galiba Bu Anlattıklarıma Uygun Hi-Tech ve Mplab C18(Bu 18F Serisi İçin Galiba)Var İmiş.
Bir Elektronik Meraklısının Serüveni...

Elektroemre

PIC16F - 18F için XC8 + MPLABX (Hi-tech ve C18, XC8'in çıkmasıyla yavaş yavaş geri planda bırakılıyor.)
STM32 - LPC1xxx serisi vs için KEIL,
Atmega-Attiny serileri için AVR-GCC + AVR Studio.

Bunlar bence istediğine en yakınları. Sıkıntısız ekşimez kokmaz derleyici ve IDE'ler.
MCU'lar için azda olsa özel direktifler olmak zorunda.

memo333

c18 ve hitech artık yok yerine xc8 - xc16 -xc32 derleyiciler var..

ansi-c basit kütüphanesi var ama kullanmazsan yok ve en önemlisi register isimleri datasheet ile birebir aynı.
Gömülü Linux Notları --> http://linuxedu.xyz/

Bayramsumbul

Cevaplarınız İçin Teşekkür Ediyorum.Umarım Derdimi Anlatabilmişimdir.Yani Anlatmak İstediğim Keilde Nasıl Program Yazıyor İsek Hiç Tanımlı Kütüphane Kullanmadan(En Azından Ben Kullanmamaya Çalışıyorum)
Direk Program Yazmak İstiyorum.Kısacası
Kopyala-Yapıştır Yapmış Gibi Program Yazmış Hissediyorum Kendimi.
.Aslında Asm Gibi Bir Dilde Sadece Ek C Olsa Süper Olur.
Acaba Asm İle Bir Dil Oluşturulabilirmi?
(Sorduğum Şeyde..Tabiki Oluşturulur...)
Mesela İf Komutu Nasıl Olurdu?
Bir Elektronik Meraklısının Serüveni...

RaMu

#4
Hitech ve c18 c30 gibi derleyiciler artık microchip tarafından desteklenmiyor (c18 c30 dan net emin değilim),
bunların yerine mplabX ide altında çalışan xc8 xc16 xc32 çıktı,
yalnız bende hitech c18 vs. derleyicilerde yüklü onlarıda öğreniyorum,
mplapx de yüklü,
mplab da yüklü asm yazmak için kullanıyorum,
ccs c de yüklü,
sadece basic derleyicilerini henüz yüklemedim,
ayrıca mikroc derleyicileride yüklü,
biraz ondan biraz bundan kullanarak öğrenmeye çalışıyorum,
ayrıca yapacağım uygulama ile ilgili örnek hangisinde varsa onu deneyebiliyorum,
Tavsiyem hepsini denemen yönünde.

Şuna biraz takıldım,
kendi fonksiyonları olmayacak ve birde kütüphaneleri kendimiz oluşturacağız
o zaman pekde anlamı kalmıyor c nin,
bunu asmdede yapabilirsin,
birkaç altprogram yazarsın olur biter,
zaten kütüphaneleride asmde ister istemez kendimiz yazmış oluyoruz.

CCS C de kendi kütüphaneni yazamazsın diye bir kural yok,
ki zaten kendi kütüphanelerimizide yazıyoruz, yada yeri geldiğinde varolan kütüphaneyi kendimize göre yontuyoruz.

ARM programlamayada keil ile başlangıç yapmaya çalıştım,
led yakıp söndürdüm ama,
mikro c pro for arm daha hoşuma gitti şimdilik ona daha çok ağırlık veriyorum.
Ayrıca diğer arm derleyicilerinide deneyeceğim vaktim olunca.

Bu işin pic ve arm programlayınca bitmiyor daha atmeli var birde rasperry pi arduino vs. platformlar var,
güzelce linux koştururken gerekli moduler input outputlar kullanılabiliyor, öğrenmek lazım,
birde android ve windows ortamıyla iliteşimimizi sağlamak için bu ortamlardada program geliştirmemeiz gerekiyor,
e yani her kapı c nin geldiği son noktayı kullanabilmeye çıkıyor,
bu nedenle bütün fonksiyonları bütün kütüphaneleri bütün headerları bütün driverları kendim yazacam dersek
iş çıkmaza girer,
bir iki ufaktan kütüphane yazmalı, kütüphane yazabiliyor olmalı,
kütüphane bulamazsak kullanılmalı, bu kadarı kafi bence.
fonksiyonlar nasıl işliyor öğrenmek yeterli,
bende en ince detaya kadar kendim yapmayı seviyorum ama buna zaman yok,
yoksa en sevdiğim dil asm, 2 sene uğraşmama rağmen asmyi dahi sadece 1 md. için bile tam öğrenebildiğimi söyleyemem.

gökhan beken (meftun) arkadaşımızın biraz yazdığı derleyici var ben şimdi linki bulamadım
kendisi gördüğünde linki yazar yada sitesinden kurcala belki bulabilirsin,
site üzerinden denenebiliyrdu yanlış hatırlamıyorsam.

if nasıl olur?
istersen ccs c de bir program yazıp asm lst list karşılığına bakarak direk görebilirsin,
doğal olarak karşına ya btfsc yada btfss (veya ilgili md. nin bit test asm komutu) çıkacak.
C de fonksiyonlarda kullanılacak akümülatörlerin hangisinin giriş hangisinin çıkış değişkenini tutacağına kadar
belirlenmiş kurallar var, bunlarda bazı kaynaklarda anlatılıyopr ama kaynak ismi hatırlamıyorum
üstünkörü okuduğum şeyler, çokta ilgilenemedim.

Forumdada paylaşmışdım,
tagli den etkilenerek relocatable kod ile uğraşmış ve paylaşmıştım,
lcd kodunu relocatable hale getirmiştim,
asm de c deki gibi lcd fonksiyonu kullanıyordum denilebilir,
birazdan linki bulursam paylaşırım.

https://www.picproje.org/index.php?topic=43302.15
Buradaki son mesajda biraz bahsetmişim,
lcd için olan koduda ilgini çekerse bulurum.
Microchip relocatable diye aratınca zaten faydalandığım orijinal kaynaklar çıkıyor,
bu şekilde çok güzel asm program yazanlar var,
aynı c deki gibi header ayrı, kullanılan c dosyaları gibi ayrı ayrı asm dosyaları ekleniyor,
include lar var, değişkenleri bir yerde tanımlayabiliyorsun vs vs.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

Mr.Java

@RaMu

kendinizi sadece bir platformda "Uzmanlaştırma"yı deneseniz daha iyi kanımca.

Bayramsumbul

Aslında Benim Amacım Her Şeyi Bilerek Öğrenmek.Yani (zor değil ama)output_a() fonksiyonunu kendim oluşturmak.Adc'yi Kendim Kurmak.(Konu Baya Dağıldı)İstediğim Şu
Temelde Standart Bir C Bunun Üzerine Kendi Kodlarınmı Koyacağım.Yani Yazdığım Kod Zaten En Basit Derleyicide Yazıldı Başkasında Niye Çalışmasın?Taşınabilir Bir Kod Oluşturmuş Olurum.Bu Şekilde Hem Kendimi Geliştiririm Hemde Hiç Bir Derleyici/Derleyicilerin Kölesi Haline Gelmem
(Düşüncem Yanlış Değildir İnşallah?)
Bir Elektronik Meraklısının Serüveni...

Mr.Java

@Bayramsumbul

Bunun için öncelikle algoritma çalışmanız ,sonrasında ise C diline hakim olmanız gerekiyor.Datasheet okuyunca anlayacak durumdaysanız da çok rahat yazar,kod optimasyonu bile yapabilirsiniz.

Bayramsumbul

Datasheet'e Hakim Sayılırım.Okuduğum Zaman 3-4 Denemede Programı Yazarım.
Asm'yede Hakim Sayılırım.
C'ye Gelince Orta Seviye Oldum Her Halde.
Okuduğum Programları Anlayabiliyorum.
Yorum Katabiliyorum(şu Söyle Daha Basit Şöyle Daha Hızlı olur Gibi)
Bir Elektronik Meraklısının Serüveni...

Mr.Java

Alıntı yapılan: Bayramsumbul - 25 Ağustos 2013, 08:17:01
Datasheet'e Hakim Sayılırım.Okuduğum Zaman 3-4 Denemede Programı Yazarım.
Asm'yede Hakim Sayılırım.
C'ye Gelince Orta Seviye Oldum Her Halde.
Okuduğum Programları Anlayabiliyorum.
Yorum Katabiliyorum(şu Söyle Daha Basit Şöyle Daha Hızlı olur Gibi)

O zaman yapacak tek şey C ile bilgisayar ortamında çalışmak.Bol bol örnek çözmek,çözemediğin,takıldığın yerlerde forumlardan takıldığın yerlerde sorular sormak size çok çabuk kavratacaktır.Çünkü C yabancı dili 0'dan öğrenmek gibidir.Bol bol örnek problemleri çözmeniz gerekiyor.Sırf pointerlerin tam oturması bile çok uzun sürebiliyor.

arm-beginner

#10
Alıntı yapılan: Bayramsumbul - 25 Ağustos 2013, 01:54:04
Aslında Benim Amacım Her Şeyi Bilerek Öğrenmek.Yani (zor değil ama)output_a() fonksiyonunu kendim oluşturmak.Adc'yi Kendim Kurmak.(Konu Baya Dağıldı)İstediğim Şu
Temelde Standart Bir C Bunun Üzerine Kendi Kodlarınmı Koyacağım.Yani Yazdığım Kod Zaten En Basit Derleyicide Yazıldı Başkasında Niye Çalışmasın?Taşınabilir Bir Kod Oluşturmuş Olurum.Bu Şekilde Hem Kendimi Geliştiririm Hemde Hiç Bir Derleyici/Derleyicilerin Kölesi Haline Gelmem
(Düşüncem Yanlış Değildir İnşallah?)
Konu ile ilgili değil, ama merak ettim: Türkçede satır içinde her kelimeyi büyük yazmayı nerde, nasıl "bilerek" öğrendiniz?

RaMu

Alıntı yapılan: Fkarizmatik - 25 Ağustos 2013, 01:15:07
@RaMu

kendinizi sadece bir platformda "Uzmanlaştırma"yı deneseniz daha iyi kanımca.

Neden?

c18 c30, Mplabx, ccs c, veya mikro c  arasında pek fark olmadığı söylenebilir,
anlatmaya çalıştığım söz konusu c ise gerisi teferruattır :)
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

Bayramsumbul

Alıntı yapılan: arm-beginner - 25 Ağustos 2013, 11:18:31
Konu ile ilgili değil, ama merak ettim: Türkçede satır içinde her kelimeyi büyük yazmayı nerde, nasıl "bilerek" öğrendiniz?
Alışkanlık.Eğer Bütün Kelimelerinin Baş Harflerini Büyük Yazmayı Diyor İseniz Evet.Bir Müddet Sırf Telefon Kullanmıştım O Yüzden.(Eğer Rahatsız Olan Var İse Düzeltmeye Çalışırım.)
(Birde Hoşuma Gidiyor Galiba.Bu Arada "Bilerek Öğrenmek" Der İken "C" Hakkında Söylemiştim)
Neyse Konuyu Dağıtmadan,Arkadaşlar Şimdi Bilgisayarımda "Mplab X" Kurulu Ben  Anladığım Kadarıyla Eklenti Olarak "xc8","xc16",xc32"
Derleyicilerini Yüklemem Gerekiyor Yanlışmı?
Bir Elektronik Meraklısının Serüveni...

RaMu

Alıntı yapılan: Bayramsumbul - 25 Ağustos 2013, 13:42:07
Arkadaşlar Şimdi Bilgisayarımda "Mplab X" Kurulu Ben  Anladığım Kadarıyla Eklenti Olarak "xc8","xc16",xc32"
Derleyicilerini Yüklemem Gerekiyor Yanlışmı?

Aynen öyle,
aslında hepsini yüklemek zorunda değilsin tabiki,
hangileri ile çalışacaksan sadece onu-onları kurman yeterli,
bence hepsini kur sakıncası yok.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

Bayramsumbul

Sağ Olun Arkadaşlar Yorumlarınız İçin.Merakımı Giderdiniz.
Bir Elektronik Meraklısının Serüveni...