Barıs samancının, örnek verdiği, TCPIP web uygulamasını C18 ile derlemeye çalışıyorum.
Öreneği :http://www.barissamanci.net/Makale/3/microchip-stack-v520-yaptiginiz-donanimlari-dunyaya-acin/ (http://www.barissamanci.net/Makale/3/microchip-stack-v520-yaptiginiz-donanimlari-dunyaya-acin/) indirdim.
Ben ancak CCS biliyorum. 10 gün dür uğraşıyorum. En son şu hatayı verdi.
MPLINK 4.40, Linker
Device Database Version 1.3
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - section '.code_Hashes.o' can not fit the section. Section '.code_Hashes.o' length=0x00000b06
Errors : 1
Bu hatanın anlamı nedir.Ne yapmayılım.
MErhabalar bende aslinda bu tcp ip konusuna karsi merak olustu. ccs c programlama olarak tcp ip kutuphanesi veya en basitinden ag uzerinden led yakip sondurme olarak baris samanci (turkce)harici dokumana ulasamadim. Ulastigim bilgler ustu kapali bilggiler oldu. Su isi bilen bir kardesimiz ccs c de led yakip sondurme detayli nasil yapariz anlatsa iyi olmazmi :-) tesekkurler
Merhaba, bende aynı hatayı alıyorum ve bu sorunla uğraşıyorum.. çözüm bulabilirsem burada paylaşıcam
probleminizin çözümü linker (.lkr) dosyasında, o dosyada 0x200 er şeklinde ayrılmıştı, onu büyütüyorduk sanırım,
https://www.picproje.org/index.php?topic=16175.0 (https://www.picproje.org/index.php?topic=16175.0)
https://www.picproje.org/index.php/topic,31137.0.html (https://www.picproje.org/index.php/topic,31137.0.html)
O sürümün üstüne bir ton sürüm çıkardılar, eski şeylerle uğraşmayın bence. Demo uygulamasındaki konfigrasyonları ve hardware ayarlarını yaparsanız sorunsuz çalışıyor.
dediğiniz gibi microchip'in son sürümünü indirdim doğru yaptıgımı düşünerek Hardware'ını yazıp bi kaç ayarlama yaptım. " TCPIPConfig.h " de birçok modülü kapattıktan sonra ancak build etti.Henüz uygulama aşamasına geçmedim
CCS C,MikroC ve Microchip bunların hepsinde denedim ve hiç birinde ping'e bile olumlu yanıt vermedi...
Bu projeyi yapan arkadaşlardan ricam aşağıdaki dosyayı inceleyebilirmisiniz ? Bu proje bitirme ödevimin bir parçası olduğundan mutlaka yapmam gerek. Zaten aşağıdaki kodlar derleyicilerle birlikte gelen demo kodları sadece bikaç ayarlama yaptım...
Enc'nin Int ve wol pinleri programda belirtilmediği için pic'e bağlamadım.Barış Samancı'nın ve Gökhan Beken'in gönderdiği şematikten Enc'nin SI ve SO pinlerinin PIC'e yerlerini değiştirerek bağladım yani 18f4620 'de C4 --> SO , C5 --> SI 'yı bağladım sadece..
http://www.speedyshare.com/UtKVV/Tcp-ipstack.rar (http://www.speedyshare.com/UtKVV/Tcp-ipstack.rar)
Kullandığım donanımlar;
Pic18f4620
10 MHz
Enc28j60 modülü
Yüklediğin dosya indirilemiyor, bir başka yere yükle de bakayım ben de,
http://dosya.co/s9eaua644v9n/Tcp-ipstack.rar.html (http://dosya.co/s9eaua644v9n/Tcp-ipstack.rar.html)
veya
http://www.mediafire.com/download/18ccmssbp1wpuqd/Tcp-ipstack.rar (http://www.mediafire.com/download/18ccmssbp1wpuqd/Tcp-ipstack.rar)
en allta bikaç sn sonra dosya indir aktif oluyor, denedim indiriliyor
Sayfa açılıyor mu? Eğer sayfa açıldığı halde ping'e cevap vermiyorsa, config'den ICMP modülünü aktif etmeniz gerekli.
Bu arada anonce diye bir programı var microchip'in, ip'sini bilmediğiniz bir cihazınız olursa(otomatik ip aktifse sürekli değişebilir ip no) ip'sini öğrenmeniz için çok kullanışlı bir program. Bir deneyin derim, sorun ip adresinde olabilir.
microchip ile beraber gelen ethernet discovery ile baktım ama bişey çıkmadı internet sayfasıda açılmadı.. Microchip'in örneğinde announce modülünü açınca derlemiyor.
Bu stack işleri gerçekten karışık, verdiğin dosya da Barış Samancı'nın yayınladığı dosyalar değil,
Herneyse, sana pic18 ile bir stack lazım ise en kolay yol olimex in pic web bordları var,
Pic web a 18f452 ile yapılmıştı, dosyaları;
https://www.olimex.com/Products/PIC/Development/PIC-WEB-A/resources/MCHPStack402.zip (https://www.olimex.com/Products/PIC/Development/PIC-WEB-A/resources/MCHPStack402.zip)
Güncel versiyonda ise 18f67j60 kullanılmış, dosyaları;
https://www.olimex.com/Products/PIC/Development/PIC-WEB/resources/PIC_WEB_5_42.zip (https://www.olimex.com/Products/PIC/Development/PIC-WEB/resources/PIC_WEB_5_42.zip)
Ben picweb a nın işlemcisini 18f4620 ile değiştirip çalıştırmıştım, dhcp den ip alıyordu, hem proteusta hem gerçek bord üzerinde sıkıntısız çalışıyor,
Az evvel web a nın dosyalarını indirip derlemeyi de denedim, library ve include path ayarlarını yaptıktan sonra sıkıntısız derlendi,
Her ikisinin de şemaları var, bordun üzerine bile kursan çalışır,
Buradan devam eder ve sıkıntı yaşarsan altta konsolda verdiği hataları yapıştır, ona göre yorum yapayım,
Böyle bi hata veriyo;
Error - processor types do not agree across all input files.
Alıntı yapılan: bilgihan1991 - 07 Şubat 2014, 18:45:22
Böyle bi hata veriyo;
Error - processor types do not agree across all input files.
kaynak dosyalarda ve mplab da seçilen işlemci tipi aynı değil, hangi stack ile devam ediyorsun?
c18 v3.35 , microchip libraries'de barış samancının kitabında kullandığı versiyon
birde CCS C ile denediğimde 3-4 sn sonra ethernet kablosunun bağlandığı soketin ışıkları sönüyor.
Bak ben sana yöntemi söyleyim, devrende sorun yoksa garanti verebilirim çalışacağına.
Demo uygulamasını aynen kopyalayıp, yeni bir klasör oluşturun.
Kullandığınız PIC'i seçin, derleyici olarak C18'i seçin.
Sonra tcp/ip config programı ile oluşturduğunuz klasördeki config dosyanızı seçin. IP, hafıza, gereken modüller gibi seçimleri yapın.
Hardware ayarlarının yapıldığı sayfayı açıp, pragma config ile yaptığımız osilatör ayarlarını felan yapın. 25LC256'nın ve ENC28J60'ın hangi pininin PIC'te hangi pine denk geldiğini belirten yerleri düzenleyin. Ledleri ve butonu'da gerektiği şekilde düzenleyin.
LCD ile ilgili bir kütüphane dosyası var onu 8 bit olarak ayarlamışlar, eğer LCD modülünü aktif etmişseniz 4 bit olarak değiştirin.
Derleyin. Unuttuğumuz birşey yoksa başarıyla derlenecektir.
Yükledikten sonra sayfayı açtığınızda sayfa yüklemeniz için bir buton gelecek. Projenizin ana klasöründe .bin uzantılı bir dosyanız olması lazım ordan o dosyayı seçip yükleyin. Artık sayfanız yüklendi ve kullanmaya hazırdır.
Eğer sorun olursa sorunu yazın. Ama tekrar söylüyorum, eski sürüm kullanmayın özellikle Barış beyin modifiye ettiği projeyi kullanmayın çünkü ben sorun yaşamıştım. Projenin path adresleri felan onun bilgisayarına göre ayarlanmıştı galiba adresleri tek tek düzenlemiştim. En son sürümü kullanın, çünkü her yeni sürümde, işleri daha kolaylaştırıyorlar.
Arkadaşlar proje MikroC'de sorunsuz bir şekilde çalıştı ..
Olimex'i denediğimde proje derleniyor fakat ne discovery programında nede programda yazılan adrese baglanmıyor..
Barış samancının ornek dosyasını bikez daha değiştirerek son sürüm C18 compiler'da derledim ve pic'e attıgımda discovery programında gözüktü fakat web adresine bağlanmadı, bide programda resimdeki gibi olurken bir süre sonra ordan kayboluyor..
(http://i.hizliresim.com/wvPb96.jpg) (http://i.hizliresim.com/wvPb96.jpg)
Listede 3 farklı cihaz görüküyor. Ortadaki sizin yerel ip'niz ile bağlantı kurabilir ancak diğerlerinin ağ geçitleri farklı. Sürekli reset atarak, otomatik ip felan mı alıyor acaba dedim ama sanmıyorum. Eğer 3 adet devre yapmışsanız, mac adreslerini değiştirin. Modem devreleri birbirine karıştırıyor olabilir. Domainleri de farklı olsun.
Malesef tek bir devre mevcut programda aşağıdaki ayarları değiştirdiğimde sonuçda değişiyor, her halukarda #define STACK_USE_DHCP_CLIENT modulünü aktif ettim birşey değişmemesi gerekmezmi ? aşağıdaki ayarlarla MikroC çalıştı ama bunda farklı bi hata mı var ki ?
Ayrıca yukardaki durum stabil değil programda Discover Devices ' a tıkladıgımda tek bir ip kalıyor (192.168.0.120) bu adresede web üzerinden giriş yapmaya çalıştığımda ise hem siteye girmiyo hemde programdan gidiyor..Yani ICMP modulünü açıyorum, ip adresine web üzerinden bağlanmadan önce hem programda gözüküyor hemde ping atabiliyorum..Adrese web üzerinden girmeye çalıştıktan sonra site açılmıyor,ping atılmıyor ve programda da gözükmüyor.
#define MY_DEFAULT_IP_ADDR_BYTE1 (192ul)
#define MY_DEFAULT_IP_ADDR_BYTE2 (168ul)
#define MY_DEFAULT_IP_ADDR_BYTE3 (0ul)
#define MY_DEFAULT_IP_ADDR_BYTE4 (101ul)
#define MY_DEFAULT_MASK_BYTE1 (255ul)
#define MY_DEFAULT_MASK_BYTE2 (255ul)
#define MY_DEFAULT_MASK_BYTE3 (255ul)
#define MY_DEFAULT_MASK_BYTE4 (0ul)
#define MY_DEFAULT_GATE_BYTE1 (192ul)
#define MY_DEFAULT_GATE_BYTE2 (168ul)
#define MY_DEFAULT_GATE_BYTE3 (0ul)
#define MY_DEFAULT_GATE_BYTE4 (1ul)
#define MY_DEFAULT_PRIMARY_DNS_BYTE1 (192ul)
#define MY_DEFAULT_PRIMARY_DNS_BYTE2 (168ul)
#define MY_DEFAULT_PRIMARY_DNS_BYTE3 (2ul)
#define MY_DEFAULT_PRIMARY_DNS_BYTE4 (1ul)
#define MY_DEFAULT_SECONDARY_DNS_BYTE1 (0ul)
#define MY_DEFAULT_SECONDARY_DNS_BYTE2 (0ul)
#define MY_DEFAULT_SECONDARY_DNS_BYTE3 (0ul)
#define MY_DEFAULT_SECONDARY_DNS_BYTE4 (0ul)
Durum ledi yanıyor mu?
Eeprom modülü aktif ise eeprom bağlamazsanız çalışmaz, ping bile atamazsınız.
Eğer eeprom modülünü dahili seçtiyseniz kodların içine gömmeniz gerekiyor, bir kaç işlem yapmak gerekiyor.
Siz bağladınız mı?
Evet eeprom takılı ve ping atabiliyorum, sadece web'te açılmıyo ve browserda ip'ye girmeyi denediğimde sanki modül kendini kapatıyor,daha sonrasında pingde atamıyorum, discovery programındada gözükmüyor
yanlız kullandığım eeprom modeli 25lc256 bundan dolayı bir sıkıntı olabilir mi ?
mesaj birleştirme:: 13 Şubat 2014, 23:47:01
şimdi 25aa256 ile denedim sayfada "Not found." yazıyor..
(http://i.hizliresim.com/xVDm3Z.jpg) (http://hizliresim.com/xVDm3Z)
Sayfalar fazla ise sığmaz. WebPages2 klasörünün içindeki gereksiz sayfaları silin. "snmp","email" klasörleri ,"cookies.htm","snmp.bib" dosyaları gereksizdir ilk başlarda. Not found yazıyorsa nasıl ping atılamıyor hayret. Not found yazısı sizin sayfanız tarafından geliyor, yüklenen sayfaları, kapasitesinden dolayı kabul etmiyor ve hala sayfa yokmuş gibi davranıp, "Not found." diyor.
Bu arada eepromun 3(wp),7(hold) ve 8(vcc) nolu pinleri bir birlerine bağlı olmalıdır.
Eepromu değiştirince böyle oldu 3-7-8. pinler Vcc'ye takılı, artık discover'den gitmiyor, sayfaya herhangi birşey yüklemedim henüz, projeyi derliyorum devreyi çalıştırıyorum boyle oluyor..
Bide TCPIPConfig.h 'da board'a isim veriyorum, discover programında MCHPBOARD olarak değiştiriyor..
25aa256 takılıyken discover programında isim değişikliği oluyor yani programda "ABC" verdiysem discover'da "<RSPBOARD" olarak değişiyordu.
25lc256'dayken "not found." bile yazmamasının sebebi eepromun CS pini yerine tam oturmamış o yüzden pic ile bağlantısının olmadığından sayfaya giriş yapmayı deneyince discover'dan gidiyomuş.Ayrıca 25lc256 eepromunde discover programında isim değişikliği olmuyor programda ne koyduysam öyle kalıyor,sayfayı açınca onda da "not found." yazıyor.
18f4620 kullandığım için http modülünü kullanıyorum ondan dolayı olabilir mi ?.Çünkü http2'yi açınca derlemiyor..
Sanırım http modülünde dosya yüklemek için FTP server yada post metodunu aktif etmek lazımmış.. FTP Server'ı açınca proje derlenmiyor , post metodunuda bir türlü aktif edemedim. Bunları nasıl yapacağımı bilen varmı ?
Sorun çözüldü devre çalışıyor arkadaşlar..Eski sürümde hhtp2 olarak 18f4620'ye göre derlenmiyodu, bu yüzden http ' yi seçtim.. Http'den de web üzerinden mpfs web dosyası yüklenemediğinden sürekli "Not Found." yazıyodu.Bu yüzden eski versiyonda ne yaptıysam post metodu ile ftp serveri çalıştıramadım.. Artık bırakmıştım ki en son eeprom'dan dolayı belki çalışmıyodu diyerek en son TCP/IP Stack versiyonu ve En son C18 Compiler versiyonuyla sadece http2 modülünü açıp diğerlerini kapatarak proje derlendi(Yanına ek bi modül açıldığında hafıza yetmiyor.).Bu koduda devreye atınca çalıştı.
Aşağıdaki örnek TCP/IP Stack 'in en son versiyonundaki örnek "meftun" kardeşimizin de belirttiği gibi projeyi açtım, işlemci modelini değiştirdim, gerekli pin atamalarını düzelttim ve TCPIPConfig.h dosyasını yukarda belirttiğim gibi düzenleyerek PIC'e attım.(DHCP-Gateway,Mask,DNS primary-secondary adreslerini modemimde belirtildiği gibi yazdım.)
Umarım çalıştıramayanlara faydası olur... Tüm yardımlarınız için teşekkür ederim.
(http://i.hizliresim.com/wv65Jm.jpg) (http://hizliresim.com/wv65Jm)
Tebrikler. Bu işler başarı ile bitmezse insanı hayattan soğutuyor. Başardığınıza sevindim.
Teşekkür ederim.Aynen katılıyorum, umarım bu işle uğraşanlar da başarırlar :)