STM8s error

Utsav Savaliya's picture

Offline

Joined: Apr 26, 2021

Replies: 0
STM8s error
April 26, 2021 - 11:36am

Getting this error when running a simple code of SPI communication between 2 boards.

CODE:

#include "stm8s.h"
#include "stm8s_gpio.h"
#include "stm8s_spi.h"
#include "stm8s_clk.h"
 
 
void GPIO_setup(void);
void clock_setup(void);
 
 
 
void GPIO_setup(void)
{ GPIO_DeInit(GPIOA);
  
GPIO_DeInit(GPIOC);
 
 
  GPIO_Init(GPIOA, GPIO_PIN_3, GPIO_MODE_OUT_PP_HIGH_SLOW);// led pin 
 
GPIO_Init(GPIOC, GPIO_PIN_4, GPIO_MODE_OUT_PP_LOW_FAST);//NSS
  GPIO_Init(GPIOC, 0x20, 0xE0);//sck pin 5
  GPIO_Init(GPIOC, GPIO_PIN_6, GPIO_MODE_OUT_PP_LOW_FAST);//mosi pin 6
  GPIO_Init(GPIOC, GPIO_PIN_7, GPIO_MODE_IN_PU_NO_IT);//miso pin 7
  
  
}
 
void clock_setup(void)
{
    CLK_DeInit();
                
    CLK_HSECmd(DISABLE);
    CLK_LSICmd(DISABLE);
    CLK_HSICmd(ENABLE);
    while(CLK_GetFlagStatus(CLK_FLAG_HSIRDY) == FALSE);
                
    CLK_ClockSwitchCmd(ENABLE);
    CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//00
    CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV2);//0x80
                
    CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSI,DISABLE, CLK_CURRENTCLOCKSTATE_ENABLE);
    CLK_PeripheralClockConfig(CLK_PCKENR1_SPI,ENABLE);
  
  
  
}
 
 
void main()
{
clock_setup();
GPIO_setup();
 
SPI_DeInit();
SPI_Init(SPI_FIRSTBIT_MSB, 
               SPI_BAUDRATEPRESCALER_256, 
               SPI_MODE_MASTER, SPI_CLOCKPOLARITY_LOW, 
               SPI_CLOCKPHASE_1EDGE , 
SPI_DATADIRECTION_2LINES_FULLDUPLEX, 
               SPI_NSS_SOFT,0x00);
SPI_Cmd(ENABLE);
 
 
while(SPI_GetFlagStatus(SPI_FLAG_BSY));
    GPIO_WriteLow(GPIOC,GPIO_PIN_4);//NSS
                
    SPI_SendData(0x08);
    while(!SPI_GetFlagStatus(SPI_FLAG_TXE));
 
    GPIO_WriteHigh(GPIOC,GPIO_PIN_4);//NSS
 
}

 

 

ERROR:

#error clnk Debug\spi.lkf:54 Debug\stm8s_clk.o: symbol _SPI multiply defined (Debug\main.o)
#error clnk Debug\spi.lkf:55 Debug\stm8s_gpio.o: symbol _SPI multiply defined (Debug\main.o)
#error clnk Debug\spi.lkf:56 Debug\stm8s_spi.o: symbol _SPI multiply defined (Debug\main.o)
 The command: "clnk -m Debug\spi.map -l"C:\Program Files (x86)\COSMIC\FSE_Compilers\CXSTM8\Lib"  -o Debug\spi.sm8 Debug\spi.lkf " has failed, the returned value is: 1
exit code=1.

 

 

Could anyone cn help. Tried all the solution currently available on net.

 

Sourav Gupta's picture

Offline

Joined: Feb 12, 2018

Replies: 547

Hi...

It is saying that _SPI is defined in multiple places. Check If all those header files are actually needed or not.