This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

L104 and L16

I am getting error like this...program is running fine,when all file made to one main file..bt problem while creating different file....can some one suggest,how to clear this.
linking...
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: LCD_INIT MODULE: lcd.obj (LCD)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _LCD_STR MODULE: lcd.obj (LCD)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _LCD_CMD MODULE: lcd.obj (LCD)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _LCD_DATA MODULE: lcd.obj (LCD)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _DELAY MODULE: lcd.obj (LCD)
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_LCD_STR?LCD
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?LCD_INIT?LCD
Program Size: data=15.0 xdata=0 code=652

Parents
  • This is my complete code:-
    suggest me plz...i thought i am good enough in c...bt still i am lagging in that....i will be thankful to u sir

    MAIN.C:-
    #include <REGX51.H>
    #include"SERIAL.c"
    #include"LCD.c"

    sbit rf=P2^0;
    sbit motor=P0^0;

    unsigned char asc,ok[2],r[4],a,i,oxoa, a,m[20],j,temp[10],temp1[10];

    \*prototypes*/
    void cmdwrt_lcd(unsigned char cmd);
    void serial_transmit(unsigned char *srstr);
    void command(unsigned char d[]);
    void serial_tx(unsigned char srda);
    void delay1();

    void gsm_send() { command("AT"); delay1(); command("AT+CMGF=1"); delay(65000); delay(65000); serial_transmit("AT+CMGS="); serial_tx('"'); serial_transmit("9710362655"); serial_tx('"'); serial_tx(0x0d); serial_tx(0x0a); delay(65000); delay(65000); delay(65000); delay(65000); serial_transmit("Vehicle Thefted "); serial_tx(0x0a); serial_transmit("Send Stop message to stop the vehicle"); serial_tx(0x0a); delay(650); serial_tx(0x1A); delay(65000); delay(65000); delay(65000); delay(65000); }
    void gsm_send1() { command("AT"); delay1(); command("AT+CMGF=1"); delay(65000); delay(65000); serial_transmit("AT+CMGS="); serial_tx('"'); serial_transmit("9710362655"); serial_tx('"'); serial_tx(0x0d); serial_tx(0x0a); delay(65000); delay(65000); delay(65000); delay(65000); serial_transmit("Your Vehicle has been stopped"); serial_tx(0x0a); delay(650); serial_tx(0x1A); delay(65000); delay(65000); delay(65000); delay(65000); }

    void wait_0x0a() { do { a=serial_rx(); }while(a!=0x0a); }
    void rec_msg() { //recevingmessage unsigned char i=0; do

    { while(RI==0); temp[i]=SBUF; i++; RI=0; } while(temp[i-1]!=0x0A); }
    void check_ok()
    { unsigned char i; for(i=0;i<=3;i++) //receving OK// { while(RI==0); temp1[i]=SBUF; RI=0; }
    } void command(unsigned char d[]) { serial_transmit(&d[0]); cmdwrt_lcd(0x80); //display_lcd(&d[0]); serial_tx(0x0d); wait_0x0a(); check_ok(); temp1[2]='\0'; delay(65000); delay(65000); cmdwrt_lcd(0xc0); }
    void delay1() { delay(65000);delay(65000);delay(65000); }
    void gsm_read() { command("AT"); delay1(); command("AT+CMGF=1"); delay1(); command("AT+CGSMS=1"); delay1(); command("AT+CMGD=1"); delay1(); cmdwrt_lcd(0x01); cmdwrt_lcd(0x80); display_lcd("Waiting for Msg"); for(j=0;j<=15;j++) { while(RI==0); //recevingmessage m[j]=SBUF; RI=0; } delay1(); cmdwrt_lcd(0xC0); display_lcd(&m[0]); delay1(); cmdwrt_lcd(0x01); cmdwrt_lcd(0x80); serial_transmit("AT+CMGR=1"); display_lcd("AT+CMGR=1"); serial_tx(0x0d); wait_0x0a(); wait_0x0a(); wait_0x0a(); rec_msg(); delay1(); temp[4]='\0'; cmdwrt_lcd(0xc0); display_lcd(&temp[0]); delay1(); delay1(); if(temp[0]=='S'&& temp[1]=='t'&&temp[2]=='o'&&temp[3]=='p') { motor=0; cmdwrt_lcd(0x01); cmdwrt_lcd(0x80); display_lcd("Vehicle Stopped"); gsm_send1();

    }

    }
    void main() { serial_init(); lcd_init(); P0=0x00; display_lcd("VEHI.THEFT ALERT"); cmdwrt_lcd(0xC0); display_lcd("SYSTEM USING GSM"); motor=1; delay(65000); delay(65000); delay(65000); delay(65000); while(1) { if(rf==0) { cmdwrt_lcd(0x01); display_lcd(" VEHICLE THEFTED"); gsm_send(); gsm_read(); while(rf==0); } } }

    lcd.c:-

    include <REGX51.H>

    sbit rs = P3^5;
    sbit rw = P3^6;
    sbit en = P3^7;

    void delay(unsigned int dela) { unsigned int i; for(i=0;i<dela;i++); }

    void cmdwrt_lcd(unsigned char cmd) { P1 = cmd; rs = 0; rw = 0; en = 1; delay(15); en = 0; delay(150); }

    void datawrt_lcd(unsigned char datas) { P1 = datas; rs = 1; rw = 0; en = 1; delay(15); en = 0; delay(150); }

    void display_lcd(unsigned char *lcdstr) { while (*lcdstr !='\0') { datawrt_lcd(*lcdstr); lcdstr++; } }

    void lcd_init() { cmdwrt_lcd(0x38); cmdwrt_lcd(0x0C); cmdwrt_lcd(0x01); cmdwrt_lcd(0x80); }

    SERAIL.c:-

    #include <REGX51.H>

    #include"header.h"
    //void datawrt_lcd(unsigned char datas);

    void serial_init() { TMOD = 0x20; TH1 = 0xFD; SCON = 0x50; TR1 = 1; }

    void serial_tx(unsigned char srda) { SBUF = srda; while(TI == 0); TI = 0; }

    void serial_transmit(unsigned char *srstr) { while(*srstr != '\0') { serial_tx(*srstr); //datawrt_lcd(*srstr); srstr++; } }

    unsigned char serial_rx() { unsigned char rbuf; while(RI == 0); RI = 0; rbuf = SBUF; return rbuf; }

    HEADER.h:-

    #ifndef HEADER_H
    #define HEADER_H

    extern void serial_tx(unsigned char);
    extern void serial_transmit(unsigned char *);
    extern unsigned char serial_rx();
    extern void serial_init();
    extern void lcd_init();
    extern void display_lcd(unsigned char *);
    extern void datawrt_lcd(unsigned char);
    extern void cmdwrt_lcd(unsigned char);
    extern void delay(unsigned int);

    #endif

    getting error as
    linking...
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: SERIAL_RX MODULE: SERIAL.obj (SERIAL)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _SERIAL_TRANSMIT MODULE: SERIAL.obj (SERIAL)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _SERIAL_TX MODULE: SERIAL.obj (SERIAL)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: SERIAL_INIT MODULE: SERIAL.obj (SERIAL)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: LCD_INIT MODULE: LCD.obj (LCD)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _DISPLAY_LCD MODULE: LCD.obj (LCD)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _DATAWRT_LCD MODULE: LCD.obj (LCD)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _CMDWRT_LCD MODULE: LCD.obj (LCD)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _DELAY MODULE: LCD.obj (LCD)
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?SERIAL_INIT?SERIAL
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_SERIAL_TRANSMIT?SERIAL
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?SERIAL_RX?SERIAL
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_DISPLAY_LCD?LCD
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?LCD_INIT?LCD
    Program Size: data=60.0 xdata=0 code=1087

Reply
  • This is my complete code:-
    suggest me plz...i thought i am good enough in c...bt still i am lagging in that....i will be thankful to u sir

    MAIN.C:-
    #include <REGX51.H>
    #include"SERIAL.c"
    #include"LCD.c"

    sbit rf=P2^0;
    sbit motor=P0^0;

    unsigned char asc,ok[2],r[4],a,i,oxoa, a,m[20],j,temp[10],temp1[10];

    \*prototypes*/
    void cmdwrt_lcd(unsigned char cmd);
    void serial_transmit(unsigned char *srstr);
    void command(unsigned char d[]);
    void serial_tx(unsigned char srda);
    void delay1();

    void gsm_send() { command("AT"); delay1(); command("AT+CMGF=1"); delay(65000); delay(65000); serial_transmit("AT+CMGS="); serial_tx('"'); serial_transmit("9710362655"); serial_tx('"'); serial_tx(0x0d); serial_tx(0x0a); delay(65000); delay(65000); delay(65000); delay(65000); serial_transmit("Vehicle Thefted "); serial_tx(0x0a); serial_transmit("Send Stop message to stop the vehicle"); serial_tx(0x0a); delay(650); serial_tx(0x1A); delay(65000); delay(65000); delay(65000); delay(65000); }
    void gsm_send1() { command("AT"); delay1(); command("AT+CMGF=1"); delay(65000); delay(65000); serial_transmit("AT+CMGS="); serial_tx('"'); serial_transmit("9710362655"); serial_tx('"'); serial_tx(0x0d); serial_tx(0x0a); delay(65000); delay(65000); delay(65000); delay(65000); serial_transmit("Your Vehicle has been stopped"); serial_tx(0x0a); delay(650); serial_tx(0x1A); delay(65000); delay(65000); delay(65000); delay(65000); }

    void wait_0x0a() { do { a=serial_rx(); }while(a!=0x0a); }
    void rec_msg() { //recevingmessage unsigned char i=0; do

    { while(RI==0); temp[i]=SBUF; i++; RI=0; } while(temp[i-1]!=0x0A); }
    void check_ok()
    { unsigned char i; for(i=0;i<=3;i++) //receving OK// { while(RI==0); temp1[i]=SBUF; RI=0; }
    } void command(unsigned char d[]) { serial_transmit(&d[0]); cmdwrt_lcd(0x80); //display_lcd(&d[0]); serial_tx(0x0d); wait_0x0a(); check_ok(); temp1[2]='\0'; delay(65000); delay(65000); cmdwrt_lcd(0xc0); }
    void delay1() { delay(65000);delay(65000);delay(65000); }
    void gsm_read() { command("AT"); delay1(); command("AT+CMGF=1"); delay1(); command("AT+CGSMS=1"); delay1(); command("AT+CMGD=1"); delay1(); cmdwrt_lcd(0x01); cmdwrt_lcd(0x80); display_lcd("Waiting for Msg"); for(j=0;j<=15;j++) { while(RI==0); //recevingmessage m[j]=SBUF; RI=0; } delay1(); cmdwrt_lcd(0xC0); display_lcd(&m[0]); delay1(); cmdwrt_lcd(0x01); cmdwrt_lcd(0x80); serial_transmit("AT+CMGR=1"); display_lcd("AT+CMGR=1"); serial_tx(0x0d); wait_0x0a(); wait_0x0a(); wait_0x0a(); rec_msg(); delay1(); temp[4]='\0'; cmdwrt_lcd(0xc0); display_lcd(&temp[0]); delay1(); delay1(); if(temp[0]=='S'&& temp[1]=='t'&&temp[2]=='o'&&temp[3]=='p') { motor=0; cmdwrt_lcd(0x01); cmdwrt_lcd(0x80); display_lcd("Vehicle Stopped"); gsm_send1();

    }

    }
    void main() { serial_init(); lcd_init(); P0=0x00; display_lcd("VEHI.THEFT ALERT"); cmdwrt_lcd(0xC0); display_lcd("SYSTEM USING GSM"); motor=1; delay(65000); delay(65000); delay(65000); delay(65000); while(1) { if(rf==0) { cmdwrt_lcd(0x01); display_lcd(" VEHICLE THEFTED"); gsm_send(); gsm_read(); while(rf==0); } } }

    lcd.c:-

    include <REGX51.H>

    sbit rs = P3^5;
    sbit rw = P3^6;
    sbit en = P3^7;

    void delay(unsigned int dela) { unsigned int i; for(i=0;i<dela;i++); }

    void cmdwrt_lcd(unsigned char cmd) { P1 = cmd; rs = 0; rw = 0; en = 1; delay(15); en = 0; delay(150); }

    void datawrt_lcd(unsigned char datas) { P1 = datas; rs = 1; rw = 0; en = 1; delay(15); en = 0; delay(150); }

    void display_lcd(unsigned char *lcdstr) { while (*lcdstr !='\0') { datawrt_lcd(*lcdstr); lcdstr++; } }

    void lcd_init() { cmdwrt_lcd(0x38); cmdwrt_lcd(0x0C); cmdwrt_lcd(0x01); cmdwrt_lcd(0x80); }

    SERAIL.c:-

    #include <REGX51.H>

    #include"header.h"
    //void datawrt_lcd(unsigned char datas);

    void serial_init() { TMOD = 0x20; TH1 = 0xFD; SCON = 0x50; TR1 = 1; }

    void serial_tx(unsigned char srda) { SBUF = srda; while(TI == 0); TI = 0; }

    void serial_transmit(unsigned char *srstr) { while(*srstr != '\0') { serial_tx(*srstr); //datawrt_lcd(*srstr); srstr++; } }

    unsigned char serial_rx() { unsigned char rbuf; while(RI == 0); RI = 0; rbuf = SBUF; return rbuf; }

    HEADER.h:-

    #ifndef HEADER_H
    #define HEADER_H

    extern void serial_tx(unsigned char);
    extern void serial_transmit(unsigned char *);
    extern unsigned char serial_rx();
    extern void serial_init();
    extern void lcd_init();
    extern void display_lcd(unsigned char *);
    extern void datawrt_lcd(unsigned char);
    extern void cmdwrt_lcd(unsigned char);
    extern void delay(unsigned int);

    #endif

    getting error as
    linking...
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: SERIAL_RX MODULE: SERIAL.obj (SERIAL)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _SERIAL_TRANSMIT MODULE: SERIAL.obj (SERIAL)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _SERIAL_TX MODULE: SERIAL.obj (SERIAL)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: SERIAL_INIT MODULE: SERIAL.obj (SERIAL)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: LCD_INIT MODULE: LCD.obj (LCD)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _DISPLAY_LCD MODULE: LCD.obj (LCD)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _DATAWRT_LCD MODULE: LCD.obj (LCD)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _CMDWRT_LCD MODULE: LCD.obj (LCD)
    *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: _DELAY MODULE: LCD.obj (LCD)
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?SERIAL_INIT?SERIAL
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_SERIAL_TRANSMIT?SERIAL
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?SERIAL_RX?SERIAL
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_DISPLAY_LCD?LCD
    *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?LCD_INIT?LCD
    Program Size: data=60.0 xdata=0 code=1087

Children
No data