MPLAB C18 Derlama Hatası Yardım

Başlatan ismail kaya, 27 Eylül 2013, 15:30:19

ismail kaya

Derleme hatası aldım. yardım ederseniz sevinirim


MPLINK 4.46, Linker
Device Database Version 1.11
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - section 'TCB_uRAM' can not fit the section. Section 'TCB_uRAM' length=0x00000118
Errors    : 1

Link step failed.
----------------------------------------------------------------------
Release build of project `D:\PROJEM\TCPIP Demo App-C18.mcp' failed.
Language tool versions: mpasmwin.exe v5.48, mplink.exe v4.46, mcc18.exe v3.45, mplib.exe v4.46
Fri Sep 27 12:06:30 2013
----------------------------------------------------------------------
BUILD FAILED

yldzelektronik

Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

Gökhan BEKEN

1-Çalıştığınız yazılımın TCP/IP stack olduğunu bile belirtmemişsiniz kendim tahmin ettim.
2-Hangi sürüm stack kullanıyorsunuz?
3-Hangi pic'i seçtiniz?
4-Donanım config dosyanızda ve profilinizde ne var?
5-Yazılımınız hakkında hiç birşey bilmeden neyi cevaplayalım?

Şuan verebileceğim tek tavsiye:
Mplab kullanmak yerine mplabx kullanın ve
D:\PROJEM\TCPIP Demo App-C18.mcp gibi bir adreste çalıştırmayın, C:\microchip_solutions_v2013-06-15\TCPIP\Demo App gibi bir adreste çalıştırın.
Özel mesaj okumuyorum, lütfen göndermeyin.

ismail kaya

meftun hocam merhaba haklısın bir detay vermedim. Barış beyin devresini (Microchip Stack v5.20) kurdum ve TCP Sunucu uygulamasını başarılı bir şekilde çalıştırdım. Benim istediğim sıcaklık verisini web sitesine yollayıp veri tabanına kayıt ettirmek. yani Pic TCP istemci uygulamasını gerçekleştirmek sadece onu derlerken bu hatayı aldım. Barış beyin projesinde TCP istemci uygulamasında TCPIP conf. Wizard" programının detayına girmemiş hangi modülleri aktif etmem gerekiyor. Belki orada yanlışlık yapmışımdır. Bu projeyi yapan varsa yardımcı olursa sevinirim.
Donanım olarak 18f4620 kullandım. 25AA256 bulamadığım için  kullanmadım programda satırını iptal ettim. Ben sadece TCP sunucu olarak kullanmak istiyorum. teşekkürler

Gökhan BEKEN

#4
En son sürüm stack'ı kurmanızı tavsiye ederim.

Alıntı YapBenim istediğim sıcaklık verisini web sitesine yollayıp veri tabanına kayıt ettirmek. yani Pic TCP istemci uygulamasını gerçekleştirmek
Web sitesinin veritabanına kayıt yapmak için TCP istemci yapmanıza gerek yok ki. http://siteadi.com/sicaklik_kaydet.php?kadi=admin&sifre=12345678&sicaklik=15
Şeklinde gönderip php ile veritabanına kaydettirmek daha kolay. Linkteki gibi kullanıcı adı ve şifreli yaparsınız şifreyi bilmeyen birisi gidipte kayıt ekleyemez. Ancak illa TCP sunucu özelliğini açmak istiyorum diyorsanız aşağıdaki belirttiğim yerleri işaretleyin ve son resimdeki defaulttaki count sayısını aynı yapın.






Bu arada
Alıntı Yap25AA256 bulamadığım için  kullanmadım programda satırını iptal ettim. Ben sadece TCP sunucu olarak kullanmak istiyorum. teşekkürler
Demişsiniz, özdisanda 25LC512 var, microchip'in distribitörü olan ROM elektroniktende alabilirsiniz.
Özel mesaj okumuyorum, lütfen göndermeyin.

ismail kaya

Ben barış beyin anlattığı şekilde sayfa 66'da 6.4 TCP istemci uygulamasında TCPIP conf. Wizard'da costum protocol over TCP seçeneğini seçmeniz gerekir diyor bende öyle yapınca yukarıdaki hatayı aldım.

ismail kaya

Gökhan hocam dediğin gibi yaptım problemi hallettim TCP client olarak çalıştırdım.

http://www.dorukan.gen.gg/
void BrsIstemciVeriTabani(void)
{
   BYTE   tampon[3];
   static DWORD   timer;
   static TCP_SOCKET   istemci = INVALID_SOCKET;
   static BYTE sunucuAdi[] =   "www.dorukan.gen.gg";

   LED1_IO ^=1;
   
   //Soket açık değilse soket aç. IP adresi bilgisayarımın yerel IP si
   if( istemci == INVALID_SOCKET )
   {
      istemci = TCPOpen((DWORD)&sunucuAdi[0] , TCP_OPEN_RAM_HOST, 80, TCP_PURPOSE_DEFAULT);
   }

   //Açma isteğine rağmen soket açılmamış ise geri dön. TCPIPConfig dosyasında default soket sayısını arttırmanız gerekebilir.
   if( istemci == INVALID_SOCKET )
      return;


   timer = TickGet();
   
   //Soket bağlandımı diye kontrol et.Bağlanmadı ise 5 saniye sonra zaman aşımından soketi kapat
   if( !TCPIsConnected(istemci) )
   {
      if( TickGet()-timer> 5* TICK_SECOND)
      {
         TCPDisconnect(istemci);
         istemci = INVALID_SOCKET;
      }
      return;
   }

      uitoa(sicaklik/10,tampon);

   //TCP Tamponunda yer olduğu varsayılıyor.
   TCPPutROMString(istemci, (ROM BYTE*)"GET ");
   
   TCPPutROMString(istemci, (ROM BYTE*)"/veri_al.php?SIC=");
   TCPPutString(istemci,(BYTE *) tampon);
   
   TCPPut(istemci, '.');
   TCPPut(istemci, sicaklik %10 +'0' );
   TCPPutROMString(istemci, (ROM BYTE*)"&LED0=");
   TCPPut(istemci, LED0_IO + '0');
   
   TCPPutROMString(istemci, (ROM BYTE*)" HTTP/1.0\r\nHost: ");
   TCPPutString(istemci, sunucuAdi);
   TCPPutROMString(istemci, (ROM BYTE*)"\r\nConnection: close\r\n\r\n");
   

   TCPFlush(istemci);
   TCPClose(istemci);
   istemci=INVALID_SOCKET;
}


php sayfasına veri yollayamadım. :(