STM32CubeIDE undefined reference to Hatası

Başlatan M_B, 24 Temmuz 2020, 16:27:41

M_B

Merhabalar,
Youtube kanalında KEIL ile yapılan uygulamayı ( STM32F407 + W5500 TCP/IP ) STM32Cube IDE ile denemek için başladım. Kütüphane ekleme işlemlerini hepsini yaptım.

Main icerisine ilgili kütüphaneleri ekledim derleme yaptım. Sorun yok.

Eklediğim kütüphane den iki fonksiyon cağırınca hemen  [  reg_wizchip_cs_cbfunc(cs_sel, cs_desel);    reg_wizchip_spi_cbfunc(spi_rb, spi_wb);  Bu fonksiyonlar wizchip_conf.h tanımlı. ]
undefined reference to `reg_wizchip_cs_cbfunc'
undefined reference to `reg_wizchip_spi_cbfunc'


hatası almaya başladım. Ide de başka bir ayar daha yapmam mı lazım. Neyi gözden kaçırmış olabilirim.

Proje ağacım ve Ayar ekranım.





main.c iceriğide
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "wizchip_conf.h"
#include "socket.h"
#include "loopback.h"
#include "string.h"




uint8_t rcvBuf[20], bufSize[] = {2, 2, 2, 2};


SPI_HandleTypeDef hspi1;

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_SPI1_Init(void);

/*---------------------------------------------------------------------------------------
 *			void cs_sel()
 ---------------------------------------------------------------------------------------*/
void cs_sel()
{
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, GPIO_PIN_RESET); //CS LOW
}
/*---------------------------------------------------------------------------------------
 *  		void cs_desel()
 ---------------------------------------------------------------------------------------*/
void cs_desel()
{
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, GPIO_PIN_SET); //CS HIGH
}
/*---------------------------------------------------------------------------------------
 *  		uint8_t spi_rb(void)
 ---------------------------------------------------------------------------------------*/
uint8_t spi_rb(void)
{
	uint8_t rbuf;
	HAL_SPI_Receive(&hspi1, &rbuf, 1, 0xFFFFFFFF);
	return rbuf;
}
/*---------------------------------------------------------------------------------------
 *  		void spi_wb(uint8_t b)
 ---------------------------------------------------------------------------------------*/
void spi_wb(uint8_t b)
{
	HAL_SPI_Transmit(&hspi1, &b, 1, 0xFFFFFFFF);
}
/*---------------------------------------------------------------------------------------
 *			int main(void)
 ---------------------------------------------------------------------------------------*/
int main(void)
{



  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_SPI1_Init();


   reg_wizchip_cs_cbfunc(cs_sel, cs_desel);
   reg_wizchip_spi_cbfunc(spi_rb, spi_wb);

//
//   wizchip_init(bufSize, bufSize);
//   wiz_NetInfo netInfo = { .mac 	= {0x00, 0x08, 0xdc, 0xab, 0xcd, 0xef},	 // Mac address
//                              .ip 	= {192, 168, 2, 192},					 // IP address
//                              .sn 	= {255, 255, 255, 0},					 // Subnet mask
//                              .gw 	= {192, 168, 2, 1}};					 // Gateway address
//
//   wizchip_setnetinfo(&netInfo);
//   wizchip_getnetinfo(&netInfo);


  while (1)
  {


  }

}// main end.
/*-------------------------------------------------------------------------------------*/


İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

Tagli

Buradakine benzer bir durum olabilir mi acaba? TrueStudio ve STM32CubeIDE'nin bu konudaki çalışma mantıkları aynı.
Gökçe Tağlıoğlu

M_B

Alıntı yapılan: Tagli - 24 Temmuz 2020, 17:10:10Buradakine benzer bir durum olabilir mi acaba? TrueStudio ve STM32CubeIDE'nin bu konudaki çalışma mantıkları aynı.
Hocam maalesef oyle bir secenek bulamadım. Forma yazmadan once de bu secenegi gormustum.
Versiyonum: Version: 1.3.0
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

M_B

#3

İşaretli yeri Static Library Yapınca derleme hatası gitti. Cozum bu degil. Cozum aşağıda..


Gerçek Çozum ise
Bahsettiğiniz seçeneğin çıkması için projenin üzerine değil, ilgili klasörün (mesela W5500 klasörü) üzerine sağ tıklayıp properties'e gitmek ve ordan
"Exclude resource from build" ayarının işaretli olduğunu göreceksin. Bu işareti kaldırdığında ilgili klasör de derleme işlemine katılmış olacak.


NOT:İnsanları yanıltmayayım diye tekrardan buraya ekleleme yaptım.
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

Tagli

Statik kütüphane oluşturma seçeneğinin doğru seçenek olduğundan şüpheliyim. Hiç kullanmadım ama bildiğim kadarıyla bu seçenek, bir başka projede kullanılmak üzere önceden derlenmiş kullanıma hazır kütüphane oluşturmaya yarıyor.

Bahsettiğim seçeneğin çıkması için projenin üzerine değil, ilgili klasörün (mesela W5500 klasörü) üzerine sağ tıklayıp properties'e gitmek gerekiyor.
Gökçe Tağlıoğlu

M_B

Alıntı yapılan: Tagli - 24 Temmuz 2020, 19:04:15Statik kütüphane oluşturma seçeneğinin doğru seçenek olduğundan şüpheliyim. Hiç kullanmadım ama bildiğim kadarıyla bu seçenek, bir başka projede kullanılmak üzere önceden derlenmiş kullanıma hazır kütüphane oluşturmaya yarıyor.
Bu konuda birşey diyemiyecem.
Alıntı yapılan: Tagli - 24 Temmuz 2020, 19:04:15Bahsettiğim seçeneğin çıkması için projenin üzerine değil, ilgili klasörün (mesela W5500 klasörü) üzerine sağ tıklayıp properties'e gitmek gerekiyor.
O zaman cıkıyor. Birde oyle deneyecem.
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

M_B

@Tagli  Hocam;

Haklıymışsınız. Static Library Cozum degil. ( Derleme yaptığı icin sonuca dikkat etmedim. Meğersem lib olusturuyormuş )

Gerçek Çozum ise
Bahsettiğiniz seçeneğin çıkması için projenin üzerine değil, ilgili klasörün (mesela W5500 klasörü) üzerine sağ tıklayıp properties'e gitmek ve ordan
"Exclude resource from build" ayarının işaretli olduğunu göreceksin. Bu işareti kaldırdığında ilgili klasör de derleme işlemine katılmış olacak.

Hocam uyarı ve bilgilendirme için Teşekkürler.
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet