Hi-tech ve Mplabx derleme sorunu

Başlatan EMG81, 16 Mayıs 2011, 03:33:00

Erhan YILMAZ

Evet hocam bende o tek satırlık kesme programının çağıran komuttan bahsediyorum mplap ide üzerinde hata veriyor. Mplabx üzerinde deneyemedim malesef. İlginiz için teşekkürler sonuçlarınızı bekliyorum. Bu arada hangi linux sürümünü kullanıyorsunuz?

Tagli

Xubuntu 10.04. Eski LTS (long term support) versiyonu ama yeni versiyonda dizüstü bilgisayarın wireless'ını tanıtamadım bir türlü nedense. Ubuntu'dan Xubuntu'ya geçiş ise GNOME 3'e alışmakta zorlanmam sebebiyle oldu. Xfce daha sade ve hızlı gibi, ama bazı eksikleri var tabi.
Gökçe Tağlıoğlu

Erhan YILMAZ

Hocam peki bu xubuntunun ubuntudan farkı nedir? Bende notebooku formatlayıp ubuntuyu kurmayı düşünüyorum? Xubuntu dah mı iyi?

Tagli

Görsellik ve masaüstü kullanımı haricinde hiçbir farkı yok. Bir de içinde gelen programlar biraz farklı olabilir. Xubuntu da zaten Ubuntu. Tek farkı, masaüstü ortamı olarak GNOME değil Xfce kullanıyor. Bir de Kubuntu var, o da KDE kullanıyor. Bence hepsini birer CD'ye çekip ayrı ayrı dene. Kurulum CD'leri aynı zamanda live cd oldukları için bilgisayara kurmadan denemek mümkün. Eğer bilgisayarın USB'den boot alabiliyorsa, flash bellek üzerinden de çalıştırabilirsin. Flash belleğin nasıl hazırlanması gerektiği Ubuntu'nun sitesinde anlatılıyor.

Dediğim gibi, birinin diğerinden iyi olduğunu söylemek yanlış olur. Olay tamamen kişisel tercih meselesi.
Gökçe Tağlıoğlu

Erhan YILMAZ

Anladım sağolun. Bu KDE pardusta kullanılan masaüstü programı herhalde? O ise ona pardusdan biraz aşinalığım var. Olmadı flasha atar hepsini denerim dediğiniz gibi bilgilendirme için teşekkürler.

Tagli

Az önce Windows tarafındaki tüm Microchip programlarını yeni versiyonlarını yüklemek üzere sildim. MPLAB 8, MPLAB X ve C18'in son versiyonlarını yükledim.

Öncelikle, yukarıda bahsettiğim konuda yanılmışım. MPLAB 8 ve MPLAB X aynı C18 kurulumunu kullanıyormuş.

Ancak, MPLAB X herhangi bir ayar gerektirmeden derleyiciyi tanıdı. Bilmiyorum, belki de önceki kurulumdan arta kalan registery falan gibi bir yerlerden faydalanarak bulmuştur, ama dediğim gibi, daha önce de bu konuda sorun yaşadığımı hatırlamıyorum.

Aynı şekilde MPLAB 8 de yeni kurulan C18'i sorunsuz olarak gördü.

Eğer sorunun devam ediyorsa, MPLAB X'te derleyicilerin yerini elle göstermeyi deneyebilirsin. Gerekli ayar Tool -> Options -> Embedded -> Build Tools menüsü altında.
Gökçe Tağlıoğlu

Erhan YILMAZ

İlginiz için teşekkürler. Olabilir hocam işletim sistemini de bayağıdır yenilemiyordum. Bi ara formatlayıp öyle deniyeyim. Hocam şu ubuntu ile ilgili son bir soru daha sorayım. Ubuntu da ntfs sürücüleri tanımama sorununu aşabildiniz mi? Kubuntu veya Xubuntu da da aynı sorun var mı? Pardusta böyle bir sorun görmedim Ubuntuda görünce garipsedim açıkcası.

Tagli

Ubuntu herhangi bir ayara gerek kalmadan, ntfs biçiminde formatlanmış Windows tarafına erişebiliyordu. En azından yeni versiyonları öyle, eskilerini hatırlamıyorum. Xubuntu 10.04 ise otomatik olarak görmüyor o sürücüyü, daha doğrusu otomatik olarak mount'lamıyor. Konsoldan komut yazıp yapmak gerekiyor. Komutu başlangıçta otomatik olarak çalıştırmak da mümkün ama kurcalamadım hiç.

Belki sendeki durum da aynıdır. Sürücünün gözüküp gözükmediğini "Disk Utility" adındaki program ile görebilirsin. Bu programda, gözüken bölümü mount'laman da mümkün.
[IMG]http://i51.tinypic.com/2mpj51y.png[/img]
Gökçe Tağlıoğlu

Erhan YILMAZ


vastar

merhaba arkadaşlar benimde bir sorum olacaktı. şimdi CCS C kullanıyordum ancak mplab X e geçme kararı aldım. Microchip in bütün derleyicileri indirip kurdum. Lite edition olarak kurulu hepsi. Help dosyasından başladım okumaya. İşte yeni proje oluşturmak felan. Help dosyasında adam oluşturuyor main dosyası headerlar ile birlikte hazır ve nazır geliyor adamın koyduğu ekran görüntüsünde. Bende help dosyasındaki anlatılanların hepsini yapıyorum ancak ne header geliyor ne main dosyası geliyor bom boş bir proje oluşuyor. Bu sorunu nasıl aşabiliriz. Birde önceki sayfalarda saçma sapan derleme hataları verdiğini yazmış arkadaşlar şimdi birden düşündüm buna hiç girmeden CCS C ile yoluma devam mı etsem anlamadım??

Tagli

CCS C hakkında hiçbir fikrim olmadığı için yorum yapamayacağım. MPLAB X'e entegre edilir mi edilmez mi bilmiyorum.

MPLAB X'te proje oluşturunca bende de bomboş bir ekran geliyor. Buna dosya eklemek kullanıcının görevi. Ama hiç zor değil. Zaten yeni dosya ekleme menüsünde  hazır örnek dosya olabiliyor. Header'ları ise eklemeye zaten gerek yok. Kurulumla beraber gelen standart header'lar zaten #include yazarken çıkıyor. Ctrl + Space'e basılarak IDE'nin yardımcı olması sağlanabilir. Ancak kullanıcı kendisi bir header yazmışsa, onun projeye ekli olması gerekiyor.

Hi-Tech C'yi de hiç denemedim ama MPLAB X'te C18'i sorunsuz olarak kullanıyorum, buna Linux ortamı da dahil.
Gökçe Tağlıoğlu

vastar

Kendi sample dosyasını bile derlemiyor ne biçim iş anlamadım gitti bizdemi sorun var bu adamlarda mı sorun var çözemedim kaç saatimi yedi bu iş. Microchipin saçmalığıyla uğraşacağıma daha faydalı şeylere vakit ayırabilirdim.

Bu resim kendi sample dosyasının direk build edilmeye çalışılmış hali.
[IMG]http://img853.imageshack.us/img853/4295/hata1y.th.jpg[/img]

Uploaded with ImageShack.us

Bu da Fx in önerdiği tekniğin yapılması

[IMG]http://img705.imageshack.us/img705/1339/hata2u.th.jpg[/img]

Uploaded with ImageShack.us

ini dosyası değiştirildikten sonra aldığım diğer hata bu seferde TRISB yi tanımadı.

[IMG]http://img845.imageshack.us/img845/3632/hata3.th.jpg[/img]

Uploaded with ImageShack.us

Tagli

Hi-Tech C bilmediğim için soruyorum, programın başında işlemcinin .h dosyasını #include ile göstermek gerekmiyor mu? C18'de öyle yapılıyor çünkü.
Şuna benzer birşey yani:
#include <p18f252.h>
Gökçe Tağlıoğlu

vastar

bu işin hitech ile alakası yok. Durum şu.

ANSI-C de #include komutu bizim gerçek hayattaki kopyala yapıştır ifadesinin aynısıdır.

yani senin yazdığın kodlar derlenmeden önce kodlara eklediğin *.h uzantılı dosyaların içindeki kodlar esas kod bluğuna eklenir ve ondan sonra derleme işlemi yapılır.

Örnek: notepad e şunları yaz uzantısı .h olcak şekilde kaydet ve o notepad dosyasını kullandığın derleyicinin source dosyalarının olduğu yere yapıştır
---------------------------------------------------------------------------
/* Bu header file olacak tır. cabbar.h olarak kaydet bunu*/

printf("Merhaba dünya/n");

-----------------------------------------------------------------------------------

Esas program dosyası

#include <cabbar.h>

int main (void)
{
   
return (0);
}

şimdi sen bu kaynak kodu yazdın sonra compile dedin hangi derleyici olursa olsun farketmez. Derleme işlemine geçmeden önce önişlemci komutları dediğimiz ve kesinlikle # işaretiyle başlayan komutları işler. Ne demiştik #include komutu kopyala yapıştır gibi çalışır demiştik. İşte compile dediğin zaman derleyici önceden tanımlanmış olan bir klasörün içinde cabbar.h dosyasını arar. Bulduğu zaman onun içindeki yazıyı aynen kopyalayıp kaynak koda ekler.

yani özetle bir kaynak kodun derlenmesi aşağıdaki gibi işler

Kaynak Kod ----------|| Ön işlemci komutların çalıştırılması || --------------- || Derleme işlemi || --------- Object file, hex file


Yukardaki kodların önişlemci işlemlerinden geçirildikten sonraki hali aşağıdaki gibidir.

printf("Merhaba dünya/n");
int main (void)
{
   
return (0);
}

işte derleyiciye yukardaki gibi gider kodlar.

Faydam dokunmuştur ümidiyle.

Daha güzel ve ayrıntılı bilgi için
internette
başlık dosyaları nedir?
önişlemci komutları nedir?
c compiler lar nasıl çalışır?

aramalarını yapabilirsin.

Tagli

vastar, teşekkürler ancak bu anlattıklarını biliyordum zaten. Bilmeyen arkadaşlar için güzel anlatmışsın, eline sağlık.

Sen sorunu çözebildin mi? Yukarıdaki mesajımda anlatmaya çalıştığım şey, ilgili işlemcinin header dosyası eklenmediği zaman derleyicinin örneğin PORTB gibi sabit tanımlamalarını bilemeyeceği idi. Vermiş olduğun son ekran görüntüsündeki gibi hatalar genelde bundan kaynaklanır.
Gökçe Tağlıoğlu